在Linux上執行rm -rf操作會導致設備永久變磚嗎?
01-13
在Cnbeta上看到這樣一則新聞:在Linux筆記本上執行這句命令就能導致設備永久變磚_Linux_cnBeta.COM
大概講的是在Linux中以root執行rm -rf -no-preserve-root /命令後就徹底無法啟動了,我對Linux不是很了解,但知道這個命令會刪除根目錄(包括EFI分區)下的全部文件,當然不能啟動。不過該文章中特別提到了MSI筆記本經過這個命令後會正式變磚,不可修復。GitHub上也曾發起討論:開發者表示EFI啟動數據的目錄不應該是完全可寫的。運行一句命令就能讓硬體變磚這原本就是不合理的。之前還看到過百度知道上這樣的提問作死,在手機上玩命令「rm -rf --no-preserve-root /」(在root下用最高,答主一致表示這樣只能換主板,連線刷模式都救不了。我知道EFI啟動時會經過SEC-PEI-DXE-BDS-TSL這五個階段。PEI階段會載入EFI驅動(能否理解為Bootloader),BDS階段掃描ESP分區內容,顯示開機管理界面選擇啟動路徑。但問題是除了TSL階段已經移交操作系統,啟動的前四個階段應該都是由主板上的EEPROM和FLASH來存儲的。即使不接硬碟,也應該可以啟動主板上自帶的EFI BIOS等應用。前文鏈接里在Linux中執行rm -rf命令只能刪除掛載磁碟的內容,怎麼就能讓電腦無法啟動無法修復呢?同理,安卓手機雖然不是採用EFI模式啟動,但操作系統損壞後通過Bootloader模式線刷底包時,Bootloader應該也是存儲在手機主板上Flash中的固化程序,也應該不會因為rm -rf就被刪掉而失效的。看新聞也不像文科生小編寫的,想請教新聞中的一條rm -rf -no-preserve-root 命令真的可以讓設備永久變磚嗎。
會,但是(我懶得看文章)出事的是 efivars 不是 efi 分區。
efivars 是對於 EFI NVRAM 抽象成的文件系統,某著名引導程序默認掛載的時候用的是讀寫模式。esp 分區在硬碟上,efivars 在主板上。更新:efivars 還順便抽象了 EEPROM,所以刪的時候也順便清空了…… @imbushuo
全刪了的話主板那塊 NVRAM 都空了,如果你的主板生產商沒想到這件事的話那的確是開機不了的。EEPROM 空了更沒救。
所以啊,你們不要以為 rm 刪除的是磁碟。rm 這一發刪除的是所有從 / 可以一路下去碰到的文件系統裡面的所有的東西啊…既然有人問這個問題,好,我就讓你看看什麼叫從刪庫到跑路。。。。
可以看到,現在連開reboot,init 0/6 這樣的命令都執行不了了,也就是說,連開關機都不行了。。。。。。。
一般不會特殊情況會,文中都說了:「一般並不會產生什麼硬體的破壞性結果。但在MSI的筆記本上, 運行這條命令有可能導致徹底清除EFI引導分區。」硬體的firmware之類的固件信息在之類的信息os中只要不會被寫被損壞就不會變磚只是系統會崩,特殊情況下一些硬體本身配置信息在os下可寫被刪除了肯定就成磚了。
本來只是個案,到那些新聞里就變成必然事件了,archlinux論壇的這個帖子已經消失了,那個樓主還在2月1號發了另一個正常的問題帖子,也許只是個誤會,
Running "rm -rf a€「no-preserve-root /" Command In Linux Can Kill Some Laptops Permanently
原文提到已經umount所有除了/,
也就是說不是下面我說的1,-------------------------看你怎麼理解"變磚"了,
1,很多發行版下,efi分區都掛載在/boot/efi,rm有可能在當機前把這個目錄清空了,efi分區清空了自然無法引導進系統,就算電腦同時裝有其他系統也通通進不了,但這隻影響硬碟,用Linux的應該不至於處理不了一個引導分區,2,路徑忘了,
也許就在/sys/firmware/efi/efivars附近,反正有這麼個地方,存的是efi引導記錄,就是主板的boot選項,就是efibootmgr查詢的地方,不清楚叫什麼,但是存的是記錄在主板上的東西,這附近的東西亂刪可能就比較嚴重了,但是好像正常是沒有目錄的寫許可權的,到底會怎樣我也沒敢試過,如果個人沒有辦法重新寫入,
大概就只能返廠換主板吧,有許可權 且 在根目錄 執行才會
推薦閱讀:
※為什麼許多EDA工具(如Cadence 和Synopsys)只有Linux版本?
※*nix系統中, /tmp文件夾里的文件, 會佔用系統內存嗎?
※usb的端點是什麼?
※Unix的內存分配方式是否有缺點,能否改進?
※PV、TPS、QPS是怎麼計算出來的?