在Linux笔记本上执行这句命令能致设备永久变砖

oschina
 oschina
发布于 2016年02月02日
收藏 47

上个月,有用户在Arch Linux论坛发帖提问,为什么他的笔记本在运行了一个简单的“rm -rf -no-preserve-root /”命令之后就完全没法启动了。有Linux基础的同学应该知道,运行这条命令其实很蠢,但一般并不会产生什么硬件的破坏性结果。但在MSI的笔记本上, 运行这条命令有可能导致彻底清除EFI引导分区。

http://static.cnbetacdn.com/article/2016/0201/b88b38037e52037.jpg

这 个在论坛上发帖的用户叫“9233”,他在帖子中说:“今天我和我的朋友在一台MSI笔记本上运行了rm -rf -no-preserve-root命令,因为我们想解决Arch安装膨胀的问题。当然我们也可以格式化根分区,然后重新安装Arch。”(后面他提了一 句说,instead we thought it would be fun seeing the GNOME installation die…)

实际上破坏系统的路径在/sys/firmware/efi/efivars,里面存储了采用EFI标准(老旧的BIOS的替代品)启动所需的信息。该文件夹被破坏之后,设备就无法启动了,笔记本正式变砖,不可修复。

GitHub之上就此还发起了讨论,开发者纷纷表示EFI启动数据的目录不应该是完全可写的。运行一句命令就能让硬件变砖这原本就是不合理的。当前该问题似乎仅影响到了MSI笔记本,由于应该也没多少人敢于做出这样的尝试,所以大约也就没有引起重视。

不过一台设备能如此轻而易举地彻底永久毁坏,这仍是个听来很恐怖的事情,即便运行这条命令本身就很愚蠢。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:在Linux笔记本上执行这句命令能致设备永久变砖
加载中

最新评论(62

SVD
SVD
h
hjhjsword
真没注意这个,efi引导不是在硬盘上专门开辟的一个分区?我的笔记本就是,windows和linux各装各的引导,默认linux,启动时按f12可选系统。
Derek_zhou
Derek_zhou
别误导人,重装系统就行了
m
manhood123
bios里面有nram之类的存储体 是可能被linux映射为存储区的。若果bios设计者没有发现这个问题,开放了写权限,笔记本变砖是有可能的。
小虫0302
小虫0302

引用来自“lieefu”的评论

小编都不懂技术么?

引用来自“catroll”的评论

+1

引用来自“开源中国首席辣条代理”的评论

不是小编不懂,是你们懂得不深。efi就是传统bios的演进形式。efi数据是存在主板中的flash上的。不是在硬盘上。数据没了efi就无法引导系统,你的电脑就变成的真正的裸机,无法安装系统。
其实这不关linux的事儿,是他们的efi没写好,好的 efi在启动后会通过设置寄存器关闭flash的写功能,以保护数据。

引用来自“catroll”的评论

原来如此。那 EFI 是出于什么理由挂载根目录下呢?有什么作用?如果没有挂载也不至于被删除啊~

引用来自“开源中国首席辣条代理”的评论

efi与传统的bios不同,传统bios与os交互是通过int中断。而efi则是直接通过函数调用,这就要求支持efi的os可以识别efi的部分数据结构,找到函数入口。sysfs下面挂的都不是真正的块设备,而是以文件系统方式组织的数据,每次访问sysfs实际是调了一次内核的功能。
盖一次楼看看!
Iridium
Iridium
我在虚拟机里试过这个操作。funny
Arathi
Arathi
不会永久变砖,刷一下EFI就行了
founder_1
founder_1

引用来自“lieefu”的评论

小编都不懂技术么?

引用来自“catroll”的评论

+1

引用来自“开源中国首席辣条代理”的评论

不是小编不懂,是你们懂得不深。efi就是传统bios的演进形式。efi数据是存在主板中的flash上的。不是在硬盘上。数据没了efi就无法引导系统,你的电脑就变成的真正的裸机,无法安装系统。
其实这不关linux的事儿,是他们的efi没写好,好的 efi在启动后会通过设置寄存器关闭flash的写功能,以保护数据。

引用来自“catroll”的评论

原来如此。那 EFI 是出于什么理由挂载根目录下呢?有什么作用?如果没有挂载也不至于被删除啊~

引用来自“开源中国首席辣条代理”的评论

efi与传统的bios不同,传统bios与os交互是通过int中断。而efi则是直接通过函数调用,这就要求支持efi的os可以识别efi的部分数据结构,找到函数入口。sysfs下面挂的都不是真正的块设备,而是以文件系统方式组织的数据,每次访问sysfs实际是调了一次内核的功能。
mark
eechen
eechen
不要以为在虚拟机里执行rm -rf /就没事,如果你把宿主机的某个磁盘共享挂载进去了呢?
返回顶部
顶部