在Linux笔记本上执行这句命令能致设备永久变砖 - 开源中国社区
float_left Icon_close
在Linux笔记本上执行这句命令能致设备永久变砖
oschina 2016年02月02日

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

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

阿里云高性能云服务器,2折起! >>> >>>  

上个月,有用户在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笔记本,由于应该也没多少人敢于做出这样的尝试,所以大约也就没有引起重视。

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

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:在Linux笔记本上执行这句命令能致设备永久变砖
分享
评论(62)
最新评论
0
0
真没注意这个,efi引导不是在硬盘上专门开辟的一个分区?我的笔记本就是,windows和linux各装各的引导,默认linux,启动时按f12可选系统。
0
别误导人,重装系统就行了
0
bios里面有nram之类的存储体 是可能被linux映射为存储区的。若果bios设计者没有发现这个问题,开放了写权限,笔记本变砖是有可能的。
0

引用来自“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实际是调了一次内核的功能。
盖一次楼看看!
0
我在虚拟机里试过这个操作。funny
0
笔记本储存bios的flash大多是spi的,编程器十来块,官网下个bios,刷进去就行了。搞不了的,我收砖!!
0
不会永久变砖,刷一下EFI就行了
0

引用来自“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
0
不要以为在虚拟机里执行rm -rf /就没事,如果你把宿主机的某个磁盘共享挂载进去了呢?
0
需要低格吗?
0

引用来自“sto”的评论

BIOS启动信息都删了,BIOS进不了,引导不了硬盘,除非拿专业设备重写BIOS.

引用来自“bhzhu203”的评论

BIOS不是只读的么?

引用来自“东方星痕”的评论

systemd 默认是挂载efivarfs 有读/写权限的.
efivarfs 删掉了, 就启动不了了.
(斜眼图)
0
只有msi有问题,说明这个问题主要还是msi的efi固件的问题。没有做到避免efi信息被删除造成的无法启动。
0
把 efivars 挂载为可写是 systemd 的默认策略,这下又带动了一波黑 systemd 的高潮
0
实在不明白,应该不行吧!这是固化在硬件里吗?
0
我决定把这一篇资讯收藏了,有点意思
0

引用来自“左蓝”的评论

我决定试一下。。。。
你历害
0
大不了换个主板,不过这举动造成的代价确实有点大
0

引用来自“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实际是调了一次内核的功能。
0

引用来自“ak_birdofprey”的评论

如果是EFI的问题的话。确实需要重新写主板的EFI

引用来自“aizi”的评论

问题是机都启动不了了,如何写

引用来自“ak_birdofprey”的评论

厂家刷BIOS的模式吧

引用来自“gugu&gigi”的评论

都一样的。现在PC上好像都能在系统中刷新BIOS或UEFI
还有的甚至可以在没有系统的情况下刷固件,熟称盲刷。
顶部