PVE 8.3安装不成功重启后进grub解决方法
问题:安装PVE 8.3重启后不能正确进入PVE,而是自动进入grub rescue模式(grub命令行)。
解决:主要方案。解决思路为手动加载内核和启动文件,结合gpt具体解决步骤如下:
- 查找内核文件(vmlinuz)、启动文件(initrd)位置内核文件和启动文件都在
1
2ls
# (proc) (pve-root) (pve-server) (hd0) (hd0,gpt3)...pve-root/boot
下。可以通过ls (pve-root)/
查看里面有什么东西。要注意的是,括号()
和分隔符/
都不可以少! - 设置根分区
1
set root=(lvm/pve-root)
- 加载内核这里稍微解释一下:这条指令做两件事情,一个是加载内核到内存,再一个是指定内核应该挂载哪个根文件系统。如果是一个正常的OS,就应该挂载一个物理卷(Volume),比如/dev/sda1;如果是PVE,默认就是逻辑卷/dev/mapper/pve-root。可以回想一下hyper-v的操作,你需要指定vhdx内核和磁盘;在Linux启动时,虽然并没有像 VHDX 这样的单一文件封装整个系统,但内核和根文件系统的加载过程相当于为系统提供了类似的结构——内核加载文件,根文件系统提供整个操作系统环境。
1
linux /boot/vmlinuz-<version> root=/dev/mapper/pve-root
- 加载
initrd
文件initrd是Initial RAM Disk的缩写,它是一个临时的、压缩的文件系统映像,内核启动时会先加载它,执行一些初始化操作,再最终加载根文件系统。在启动时,内核需要一些额外的驱动程序和程序来帮助挂载根文件系统。特别是对于复杂的系统(例如使用 LVM、RAID、加密磁盘等),initrd 提供了必要的工具来加载这些文件系统或设备。它包括各种驱动程序、系统初始化程序(用于挂载真正的文件系统)还有一些系统工具。1
initrd /boot/initrd.img-<version>
- 启动
1
boot
- 更新引导
1
update-grub