2개의 32GB RAID1 디스크가 있는 PERC 카드가 장착된 Dell 730xd가 있습니다. 먼저 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
}
"복구" OS는 두 번째 시스템의 LVM 볼륨을 마운트했으며 해당 OS에서 파일을 제대로 보고 수정할 수 있었습니다.
문제는 두 번째 시스템이 다음 오류로 인해 부팅되지 않는다는 것입니다.
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
시스템이 정상적으로 시작됩니다.
이 시점에서 나는 어떻게 진행해야 할지 완전히 혼란스럽습니다.