我/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 subvol 移动到 ext2 分区?
我设法使用来自 LiveUSB 的引导修复来做到这一点。
在开始之前,我建议创建子卷的快照,
@
以防出现问题。缩小
/
分区以留出 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 超时就可以了。
还有另一种方法可以解决 btrfs 文件系统上的超时问题。
你可以加
并
/etc/default/grub
运行sudo update-grub
。但请确保您始终可以使用 ESC 或其他键进入 UEFI 设置。