gf_*_*gf_ 5 boot debian thinkpad uefi
我的一位客户使用联想 Thinkpad T450s 大约一年了。这台机器正在运行 Debian jessie,内核是 jessie-backports,现在4.5+73~bpo8+1
。已刷写/安装了最新的 UEFI 版本。操作系统以“UEFI 模式”安装,有一个额外的EFI
分区等。直到大约四个星期前,这个设置坚如磐石和稳定:Lenovo Thinkpad 和 Debian,可能出什么问题?
四个星期以来,在每次启动时,机器都会显示我在主题中输入的错误。这是一张图片:
按下Esc将继续启动过程,该过程“运行良好”……再持续两周。然后消息从
按 Esc 继续或按 F1 进入设置。
到
清理是或否
(可悲的是,我没有这个图像)。
我的客户点击了“是”,删除了存储,就我目前看到的所有这些,这使得机器无法启动。之后,我恢复了“debian”启动项,机器再次运行良好,启动正常,等等。这种情况又持续了几天;自 ~ 一周以来,每次启动时都会再次弹出该消息。
我尝试在四天不同的日子里四次联系联想支持,每次在电话队列中花费大约 30 分钟后就放弃了。
最近几天,我使用了我所有的 $(your-favorite-search-engine-here)-skills,但几乎一无所获:这是从哪里来的,如何调试,最重要的是,如何解决这个问题。按照目前的情况,我猜机器很快就会再次无法启动。
任何指针高度赞赏!
自 3.8 版以来efivarfs
的Linux 内核将 UEFI 变量存储抽象为.
efivarfs
如果mount | grep '^efivarfs'
没有返回任何内容,您可以efivarfs
使用以下命令进行挂载:
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
Run Code Online (Sandbox Code Playgroud)
现在,您可以浏览/sys/firmware/efi/efivars
以查看是否有任何变量脱颖而出。
efivarfs
没有磁盘使用的概念,但它确实按大小报告每个变量。此命令按大小升序对变量进行排序:
ls -lh /sys/firmware/efi/efivars | sort -k5 -h
Run Code Online (Sandbox Code Playgroud)
这是我使用您提供的信息所能带给您的最大程度。接下来,您需要弄清楚是什么在 UEFI 变量 NVRAM 中占用了如此多的空间。
在Arch Linux的维基建议删除/sys/firmware/efi/efivars/dump-*
文件/变量,如果存在的话,虽然它并没有提到什么创造这些变量。
正如聊天中所讨论的,一种方法是拍摄 UEFI 变量的快照,按照联想固件的建议刷新它们,重新安装 Debian 的 EFI 引导,再次拍摄快照,等待 UEFI 变量再次填满,然后拍摄一个更多快照。然后,您将能够比较快照以查看发生了什么变化,并希望确定是什么导致有问题的变量或变量占用了如此多的空间。
如果所有其他方法都失败了,您可以返回到传统引导。