diff --git a/simulatore.html b/simulatore.html
index 5013661..0b8e90c 100644
--- a/simulatore.html
+++ b/simulatore.html
@@ -3416,9 +3416,22 @@ $ rm /mnt/verifica.txt
return termPrint("mdadm: opzione non supportata. Digita 'help'.","err");
}
if(c0==="unplug"){
- let diskId=t[1];
- if(diskId&&diskId.state===DiskState.SPARE){diskId.state=DiskState.REMOVED; return;}
- return termPrint("unplug: specifica il disco spare da rimuovere (simulazione). Esempio: unplug /dev/sdX","err");
+ const dev=t[1];
+ if(!dev){
+ return termPrint("unplug: specifica il disco spare da rimuovere (simulazione). Esempio: unplug /dev/sdX","err");
+ }
+ const spareIndex=state.spares.findIndex(d=>d.dev===dev);
+ if(spareIndex===-1){
+ return termPrint(`unplug: ${dev} non รจ uno spare o non esiste.`,`err`);
+ }
+ const spare=state.spares[spareIndex];
+ spare.state=DiskState.REMOVED;
+ state.spares.splice(spareIndex,1);
+ pushDmesg("warn",`${dev}: unplugged dallo spare`);
+ termPrint(`unplug: ${dev} rimosso.`,`ok`);
+ render();
+ scenarioCheck();
+ return;
}
if(c0==="lsblk"){termPrint(lsblk(),"dim");scenarioActionDiag();render();scenarioCheck();return;}
if(c0==="fdisk"&&t[1]==="-l"){termPrint(fdiskL(),"dim");scenarioActionDiag();render();scenarioCheck();return;}