我有一台配备 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
系统启动正常。
此时我对如何继续感到完全困惑。