当前位置: 首页 > 科技观察

从损坏的LinuxEFI安装中恢复

时间:2023-03-21 13:25:58 科技观察

在过去十年左右的时间里,Linux发行版在安装之前、期间和之后偶尔会出现故障,但我总有办法恢复系统并继续正常工作。但是,Solus损坏了我的笔记本电脑。GRUB恢复。不行,重装。还没有!Ubuntu拒绝安装,目标设备报这样的错误,一会儿这样,一会儿那样。哇。我以前没有遇到过这样的事情。我的测试机已经变成一块废砖了。我应该绝望吗?不,绝对不是。让我告诉你如何解决它。问题详情这一切都始于Solus尝试安装自己的引导加载程序-goofiboot。无论出于何种原因,它都没有成功完成安装,给我留下了一个无法启动的系统。通过BIOS引导后,我进入了GRUB恢复终端。安装失败,我尝试在终端中手动修复它,使用我在广泛的GRUB2指南中描述的各种命令。但仍然没有工作。然后我尝试按照GRUB2和EFI指南安装中的建议从LiveCD恢复;CD本身是只读的。它允许用户出于任何目的运行操作系统,而无需安装它或对计算机配置进行任何更改)。我使用efibootmgr工具创建了一个引导条目,确保将其标记为有效。正如我们在指南前面所做的那样,这之前工作得很好。嘿,现在那也不管用了。我正在尝试将完整的Ubuntu安装到与Solus相同的分区,希望安装程序能给我一些有用的信息。但是Ubuntu无法完成安装。报错:无法安装到/target。回到我们开始的地方。该怎么办?手动清除EFI分区显然,我们的EFI分区存在严重问题。快速回顾一下,如果您使用的是UEFI,则需要一个单独的FAT-32格式分区。该分区用于存储EFI引导映像。例如,当您安装Fedora时,Fedora引导映像被复制到EFI子目录。每个操作系统都存储在自己的目录中,通常是/boot/efi/EFI//。EFI分区内容在我的G50机器上,有许多针对各种发行版的测试条目,包括:centos、debian、fedora、mx-15、suse、Ubuntu、zorin等。这里还有一个goofiboot目录。但是,efibootmgr不会在其菜单中显示goofiboot条目。显然这里出了点问题。sudoefibootmgr-d/dev/sdaBootCurrent:0001Timeout:0secondsBootOrder:0001,0005,2003,0000,2001,2002Boot0000*LenovoRecoverySystemBoot0001*ubuntuBoot0003*EFINetwork0forIPv4(68-F7-28-4D-D-D1-A1-A1)EFINetwork0forIPv4(68-F7-28-4D-D-D1-A1-A1)28-4D-D1-A1)Boot0005*WindowsBootManagerBoot0006*fedoraBoot0007*suseBoot0008*debianBoot0009*mx-15Boot2001*EFIUSBDeviceBoot2002*EFIVD/CDROMBoot2003*EFINetwork...附言上面的输出是通过在LIVE会话中运行clear命令生成的!所有非默认和非Microsoft条目然后重新开始。显然,有些东西被破坏了,阻止了新发行版设置自己的引导加载程序。所以我删除了/boot/efi/EFI分区下除了Boot和Windows之外的所有目录。同时,我还通过删除所有额外条目来更新引导管理器。efibootmgr-b-B***,我重装了Ubuntu,仔细监控了GRUB的安装配置过程。这一次,它顺利完成了。正如预期的那样,有一些错误和一些无效条目,但整个安装过程完成得很好。安装错误信息安装成功信息补充阅读如果你不喜欢这种手动修复,你可以阅读:Boot-Info手册,里面有自动工具帮你恢复系统Boot-repair-cd自动恢复工具下载页面总结如果您的系统由于损坏的EFI分区而严重崩溃,那么您可能需要遵循本指南中的建议。删除所有非默认条目。如果您使用Windows进行多重启动,请确保您没有修改任何与Microsoft相关的内容。然后相应地更新启动菜单,以便删除损坏的条目。重新运行所需分发的安装设置,或尝试前面描述的不太严格的修复。我希望这篇小文章能为您节省一些时间。我对Solus对我的系统所做的更改感到恼火。这些事情本不应该发生,恢复过程本应该更简单。不管怎样,虽然事情看起来很糟糕,但解决起来并不难。您只需要删除损坏的文件并重新开始。您的数据应该不受影响,您应该能够进入实时系统并继续工作。开始吧。快点。关于作者:我叫IgorLjubuncic。38岁,已婚,无子女。我现在是一家云技术公司的高级工程师,前端新手。2015年初之前,我在全球最大的IT公司之一的工程计算团队担任操作系统架构师,开发新的基于Linux的解决方案,优化内核,并在Linux上实现一些好的想法。在此之前,我是一个为高性能计算环境设计创新解决方案的团队的技术负责人。其他一些头衔包括系统专家、系统开发人员或类似职位。自2008年以来,所有这些都是我的爱好,但有薪工作。还有什么比这更令人满意的呢?从2004年到2008年,我通过在医学影像行业担任物理学家来养活自己。我的工作重点是解决问题和开发算法。为此,我广泛使用Matlab,主要用于信号和图像处理。此外,我还获得了几种主要工程方法的认证,包括MEDIC六西格码绿带、实验设计和统计工程。