rm /* -rf 該怎么恢復(fù)
前陣子把自己的工作電腦不小心進(jìn)行了刪根操作,但是發(fā)現(xiàn)網(wǎng)上似乎沒(méi)有有效的針對(duì)這個(gè)解決的文檔。
下面是我的故事:
某天在測(cè)試snoopy 審計(jì)log的時(shí)候,不小心進(jìn)行了如下操作:
進(jìn)行的操作
cd / ;
rm ./* -rf
執(zhí)行這段以后,如果你是中文系統(tǒng)會(huì)提示。
提示?**** 'usr'??是一個(gè)目錄
提示?****?'var'??是一個(gè)目錄
------
反應(yīng)過(guò)來(lái)已經(jīng)來(lái)不及了。這時(shí)候需要注意到,rm / -rf 是不會(huì)真正刪除所有的文件的,首要被 刪除的其實(shí)是一些軟連接。主要目錄是無(wú)法真正被刪除。當(dāng)然你的bin下的可執(zhí)行程序都無(wú)法使用了。
進(jìn)行恢復(fù)
當(dāng)你執(zhí)行刪根操作后,你的命令就只剩cd可以用了。別想著重啟進(jìn)行troubshooting,和恢復(fù)模式,因?yàn)閱?dòng)需要的init這個(gè)也被刪除了。
這時(shí)候你需要自己制作一個(gè)跟你系統(tǒng)版本一致的efi啟動(dòng)盤,我使用的是ubuntu20.04。
但是不要慌張,使用efiU盤啟動(dòng)try ubuntu也就是試用ubuntu,進(jìn)入到使用的系統(tǒng)后,執(zhí)行l(wèi)sblk
你可以看到原來(lái)的啟動(dòng)盤。
1.掛載原來(lái)的啟動(dòng)盤
mkdir /data? ?
mount /dev/mapper/lvm1 ?/data
cd /data
2.進(jìn)入到原系統(tǒng)盤,對(duì)比U盤啟動(dòng)的查看區(qū)別,有沒(méi)有明顯的缺少文件夾。
在ubuntu中,bin其實(shí)是個(gè)/usr/bin的軟連接,需要恢復(fù)這個(gè)軟連接。
cd /data;ln -s /usr/bin bin。
還有一些lib軟連接也要進(jìn)行恢復(fù),原硬盤中的boot文件夾一定不要亂動(dòng),此為原來(lái)的grub。
重啟后發(fā)現(xiàn)還是無(wú)法啟動(dòng),查看報(bào)錯(cuò),提示/sbin/init no such file。
到了init這一關(guān)其實(shí)已經(jīng)離開機(jī)啟動(dòng)一步之遙了,搶救有效。
/sbin/init 是個(gè)軟連接->指向 /lib/systemd/systemd
可以照搬U盤系統(tǒng)內(nèi)的 /lib/systemd/systemd
注意權(quán)限 ?755。
拷貝完重啟,奇跡發(fā)生。