/boot
我在带有 btrfs 分区(subvol=@)的UEFI 系统上安装了 Ubuntu 18.04 。
由于 Ubuntu 最近的变更,我总是遇到 grub 超时 30 秒的情况。如果/boot
位于 btrfs 分区上,则这是设计使然。
部分/grub.cfg
function recordfail {
set recordfail=1
# GRUB lacks write support for btrfs, so recordfail support is disabled.
}
...
if [ "${recordfail}" = 1 ] ; then
set timeout=30
我认为如果我创建一个单独的 ext2/boot
分区,问题就会解决。
问题是,如果上述假设正确,我如何boot
从 btrfs 子卷移动到 ext2 分区?
答案1
我设法使用 LiveUSB 的 Boot-repair 来完成此操作。
在开始之前,我建议创建@
子卷的快照,以防出现问题。
缩小
/
分区以留出 1-2 GB 的可用空间gparted
创建
ext2
分区。将分区挂载
/
到/mnt
挂载新
ext2
分区到/media
跑步
cp -a /mnt/@/boot/* /media
编辑
/mnt/@/etc/fstab
并添加新ext2
分区的挂载/boot
。/
删除旧引导sudo rm -r /mnt/@/boot
跑步
sudo umount /mnt && sudo umount /media
运行
boot-repair
并执行默认检查。
一切都应该正常工作,并且 grub 超时现在正常。
答案2
还有另一种方法可以解决 btrfs 文件系统上的超时问题。
你可以加
GRUB_RECORDFAIL_TIMEOUT=0
并/etc/default/grub
运行sudo update-grub
。
但请确保您始终可以使用 ESC 或其他键进入 UEFI 设置。