我已经用多个版本的Linux、Windows 10和Chrome重新启动了我的宏碁Aspire CloudBook。因为每个人都有问题,所以要不停地来回走。现在我只能从USB引导Linux,什么也不能启动。efi分区满的原因。Efivars包含96个项目(/sys/固件/efi/efivars)。如何在没有分块系统的情况下重置efi分区?
发布于 2020-05-30 06:58:54
您可能有两个主要独立的问题:
/sys/firmware/efi/efivars
中一些过时的引导变量若要以受控方式清除过时的EFI引导变量,请使用efibootmgr
命令。
首先使用sudo efibootmgr -v
列出所有引导变量及其内容,并识别不需要的变量。引导项由BootXXXX
标识,其中XXXX是十六进制数字。请参阅BootCurrent
变量以标识您的系统当前正在引导的引导项。
然后,使用sudo efibootmgr -b XXXX -B
删除不再需要的引导项。
ESP可能已经安装在/boot/efi
或/boot
上,也可能是卸载的--不同的发行版处理ESP的方式不同。如果您有多个ESP,您将能够通过它的分区UUID来识别它。运行sudo efibootmgr -v
时,每个分区条目都将包含一个长的十六进制字符串,称为UUID (或者GUID)。使用sudo blkid
或lsblk -o +PARTUUID
,您可以列出分区的UUID,并在引导条目中找到与UUID匹配的ESP。
如果尚未挂载,则将其挂载,然后将其作为常规文件系统访问,并清除任何过时的引导加载程序。
ESP有一个标准化的目录布局:在ESP的顶层,应该有一个名为EFI
的目录,在它下面,每个OS供应商都可以创建自己的目录,将它们的引导加载程序/引导管理器放入其中。Windows的引导内容在Microsoft
子目录中,每个Linux发行版通常都有一个与其名称匹配的目录,依此类推。只需删除您不再安装的OSs的目录即可。
发布于 2018-05-28 19:49:27
EFI系统只是一个文件系统。你必须决定哪些数据对你很重要。
Efivars包含UEFI使用并存储在NVRam (可能是EEPROM)中的变量,但是96项并不是异常大的数量。
您需要检查EFI系统分区,并决定哪些文件是重要的。很可能您只是有许多不同的发行版引导加载器在那里。通常,每个发行版名称都是ESP的子目录,如果发行版不再使用,您可以删除这些子文件夹。
如果您正在使用EFI,那么内核的复制可能在ESP中,也许您有许多旧的内核版本。如果您使用像rEFInd或GRUB这样的引导加载程序,它会将一些资源文件存储在ESP中,但通常只存储它真正需要的文件。
您还可以拥有一个非常小的ESP (sub-50mb),所以正常的引导加载程序和资源只是在填充它。
https://unix.stackexchange.com/questions/446517
复制相似问题