Non ho provato questo comando su Ubuntu (per ovvi motivi), quindi non sono sicuro che Ubuntu ne consentirà l'esecuzione.
L'ho fatto. rm -rf / --no-preserve-root
era in esecuzione in una sessione di root aperta direttamente sulla macchina, mentre ero collegato anche ssh
da un'altra macchina, usando anche l'account di root.
Quello che succede è che inizi a ricevere molti messaggi come:
rm: impossibile rimuovere '/ ...': operazione non consentita
o:
rm: impossibile rimuovere '/ ...': dispositivo o risorsa occupata
Sorprendentemente, la ssh
connessione è rimasta aperta fino alla fine dell'operazione. È solo quando ho chiuso la connessione e ho provato a riaprirlo che è apparso un errore:
Lettura dal socket non riuscita: connessione reimpostata dal peer
Sulla macchina rimangono quattro directory:
/dev
. Qui sono memorizzati i file del dispositivo.
/proc
—In file system in memoria creato dal kernel.
/run
, una posizione standardizzata del file system per i demoni.
/sys
. Ciò consente di ottenere informazioni sul sistema e sui suoi componenti.
Ciò significa che non è rimasto molto, e non c'è molto da fare lì. Non puoi ls
(anche se durante l'utilizzo Tab, i nomi delle directory e dei file sono ancora visualizzati). Puoi cd
in diverse directory, e anche echo
cose, ma comandi come cat
non sono più disponibili.
Non c'è sudo
neanche.
shutdown -h now
e anche reboot
scomparso, quindi l'unica opzione sembra abbassare manualmente la macchina. Logout ( exit
) non funziona, anche se mostra un bel testo "logout".
Una volta che provi a riavviare il computer, ti viene presentato un bel errore GRUB 15 e quindi non succede nulla, a quel punto potresti iniziare a pensare che rm
potresti aver fatto qualcosa di male al tuo sistema.
Puoi farlo anche tu
No, aspetta, non farlo sulla tua macchina!
Quello che puoi fare invece è eseguire una macchina virtuale . Le VM hanno il vantaggio di rendere la sperimentazione davvero semplice. Dato che stai usando Ubuntu, potresti essere interessato da vmbuilder . Questo è uno strumento che ti consente di distribuire macchine virtuali in pochi minuti (la documentazione ufficiale afferma che può essere eseguita "in circa un minuto", ma il tempo effettivo, anche su hardware veloce, è di circa due-tre minuti .
Al termine della distribuzione, hai un ambiente con cui puoi giocare. Se finisci per distruggerlo, non importa: dispieghi di nuovo la macchina e due minuti dopo puoi continuare.
Se usi software come VMWare, potresti anche essere interessato alle istantanee ( tieni presente che il VMWare Player gratuito non ha questa funzione; devi acquistare VMware Workstation). Si noti che Hyper-V è gratuito e supporta le istantanee (ma è necessario eseguire Windows).
Il vantaggio degli snapshot è che puoi prenderne uno in pochi millisecondi. Il rollback a un'istantanea richiede più tempo, ma spesso è una questione di secondi. Questo rende la sperimentazione ancora più semplice e veloce.
Questa sperimentazione non si limita al sistema operativo stesso. Puoi fare tutto ciò che riguarda il software. Hai un'applicazione sospetta? Provalo in una macchina virtuale: se è un virus, non farà alcun danno. Vuoi testare un'operazione su un database, dato che potrebbe influenzare l'ambiente? Provalo in una macchina virtuale.
E se lo facessi su una macchina reale, senza test?
Succedono cose brutte. Nota che rm
ti protegge da te stesso: rm -rf /
non funzionerà: devi usarlo --no-preserve-root
. Tuttavia, cosa succederebbe se riuscissi effettivamente a rimuovere tutto per errore?
rm
scollega solo i file , ma i dati sono ancora presenti sul disco rigido. Ciò consente di ripristinarlo in un secondo momento (motivo per cui non dovresti semplicemente eliminare i tuoi dischi rigidi con dati sensibili quando non funzionano più).
Ciò significa che devi solo avere un PC di riserva con un alloggiamento del disco rigido per recuperare effettivamente quasi tutti i file. L'importante è evitare di scrivere qualsiasi cosa sul disco rigido da recuperare: i dati scritti sovrascriveranno i file non collegati.
Come notato dall'articolo nel commento di 200_success , se agisci in modo intelligente, puoi riavere la macchina anche senza un PC di riserva. Se ti interessano solo i dati, non mi preoccuperei: recuperarli con un PC di riserva è molto più semplice.
rm -rf /
non elimina nulla senza--no-preserve-root
.