Initramfs 无法为 LVM 卷挂载 sysroot

Initramfs 无法为 LVM 卷挂载 sysroot

我有一台配备 PERC 卡的 Dell 730xd,该卡上有两个 32GB RAID1 磁盘。首先,我使用 Grub 标准分区(引导、系统、交换)设置 Alpine Linux。这工作得很好。我将其称为“恢复”,因为此安装旨在成为系统的恢复控制台。

该系统有这样的设置:

/dev/sda1 => /boot
/dev/sda2 => /root
/dev/sda3 => swap

接下来,我在“kube”系统的第二个磁盘上安装了 Alpine Linux,它使用 LVM,因此我可以在运行时使用快照来备份系统。然后,我更新了“/dev/sda2”分区上的 /boot/grub/grub.cfg 文件以包含新系统中的相关部分,以下是这些部分:

insmod lvm

# omitted a lot of noise

menuentry 'Kube' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-lts-advanced-f6950bf5-5672-475a-a71e-3791696330eb' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd1,msdos1'
        search --no-floppy --fs-uuid --set=root 83f256b9-7313-4412-8d21-efc6772c09d8
        echo    'Loading Linux lts ...'
        linux   /vmlinuz-lts root=/dev/mapper/vg0-lv_root ro modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4 rootdelay=15
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-lts
}

menuentry 'Recovery' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-lts-advanced-aadb875b-c5de-4c88-9da2-642a53ac270f' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        search --no-floppy --fs-uuid --set=root 1cd02d74-bf82-455d-9c71-e14f5717c386
        echo    'Loading Linux lts ...'
        linux   /vmlinuz-lts root=UUID=aadb875b-c5de-4c88-9da2-642a53ac270f ro modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-lts
}

“恢复”操作系统从第二个系统挂载 LVM 卷,并且从该操作系统我可以很好地查看和修改文件。

问题是第二个系统无法启动并出现以下错误:

mount: mounting /dev/vg0/lv_root on /sysroot failed: No such file or directory
Mounting root failed.
initramfs emergency recovery shell launched. Type 'exit' to continue boot
sh: can't access tty: job control turned off

如果我运行这些命令:

lvm vgchange -ay
mount -t ext4 /dev/vg0/lv_root /sysroot
mount -t ext4 /dev/sda1 /sysroot/boot
exit

系统启动正常。

此时我对如何继续感到完全困惑。

相关内容