我已经运行 ubuntu 服务器 20.04.LTS 两年了。从内核 5.4.0-62 开始,我发现了以下问题:每当我必须更新内核时,服务器就无法再启动。
编辑:它挂在“正在加载初始 RAM 磁盘”处。因此找到了 grub,我可以从菜单中进行选择。
我必须通过 USB 运行恢复并执行修复 grub 的步骤:安装根块设备,将 /proc /sys /dev 绑定到它,chroot,运行 grub-install、update-grub。然后服务器再次启动。
在正在运行的系统上运行 grub-install / update-grub 没有效果。
关于我的设置的细节:
- AMD FX(tm)-8350 八核处理器
- 技嘉 GA-990FXA-D3(老款,无 EFI/UEFI)
- 两个 SSD 作为 md 镜像。它们已分区。没有单独的启动分区。
- /root 分区是 ext4。
- /swap 分区
- zfs 镜像的分区。但无法从中启动。
- 另外两个 SSD 完全专用于 zfs
- 两个 Hdd,使用 zfs 作为备份
我猜想这与 dkms 和 zfs 有关,但我不知道如何分析错误。由于这是我的生产性家庭服务器,上面有多个虚拟机和服务,因此我无法永久重启它。
的结果:
sudo fdisk -l 2>/dev/null | egrep "Disk /|/dev/" | sed "s#^/dev/#Part /dev/#" | awk '{print $2}' | sed 's/://' | xargs -n1 -IX sudo sh -c "hexdump -v -s 0x80 -n 2 -e '2/1 \"%x\" \"\\n\"' X | xargs -n1 -IY sh -c \"case \"Y\" in '48b4') echo X: GRUB 2 v1.96 ;; 'aa75' | '5272') echo X: GRUB Legacy ;; '7c3c') echo X: GRUB 2 v1.97 oder v1.98 ;; '020') echo X: GRUB 2 v1.99 ;; *) echo X: Kein GRUB Y ;; esac\""
输出:
/dev/loop0: Kein GRUB 15d
/dev/loop1: Kein GRUB 15d
/dev/loop2: Kein GRUB fe5d
/dev/loop3: Kein GRUB 595d
/dev/loop4: Kein GRUB 595d
/dev/loop5: Kein GRUB ff5d
/dev/sdc: GRUB 2 v1.99
/dev/sdc1: Kein GRUB ebf
/dev/sdc2: Kein GRUB b12f
/dev/sdc3: Kein GRUB 00
/dev/sde: GRUB 2 v1.99
/dev/sde1: Kein GRUB 00
/dev/sde9: Kein GRUB 00
/dev/sdd: Kein GRUB 00
/dev/sdd1: Kein GRUB 00
/dev/sdd9: Kein GRUB 00
/dev/sda: GRUB 2 v1.99
/dev/sda1: Kein GRUB 00
/dev/sda2: Kein GRUB 00
/dev/sda3: Kein GRUB 00
/dev/sdb: Kein GRUB 00
/dev/sdb1: Kein GRUB 00
/dev/sdb9: Kein GRUB 00
/dev/md1: Kein GRUB 00
/dev/md0: Kein GRUB 00
/dev/sdf: Kein GRUB 00
/dev/sdf1: Kein GRUB 00
/dev/sdf9: Kein GRUB 415e
编辑:新信息(28.01.22),因为问题仍然存在。我拔掉了启动盘,只保留了两个带有 zfs 的备份盘。然后我安装了一个新的 SSD,并在其上安装了一个最小的 Ubuntu 20.04.3 LTS 服务器,但这个服务器也无法启动。
同时,我安装了四个内核版本:5.4.0-96 至 -89。我必须逐个尝试,包括恢复模式,直到我找到一个运行的版本,通常是恢复模式。所有其他版本要么停在“正在加载初始 RAM 磁盘”,要么您会看到启动一秒钟,然后显示屏变黑。我知道它不会进一步启动,因为它稍后不会对 ping 做出反应。
我怎样才能找出这里出了什么问题?
答案1
我建议比较一下正在/boot/grub
运行的系统上安装的分区和update-grub
在 chroot 中成功运行时的分区。这听起来好像有所不同(我以前也遇到过这个问题)。