Задний план
Я настраиваю сервер с программным RAID1. Сюда входит зеркалируемый раздел / boot (сопоставленный с md0). Моя цель состоит в том, чтобы, если один из двух жестких дисков, содержащих ОС (sdc и sdd) выйдет из строя, я все равно смогу загрузиться с помощью grub2.
Проблема
Я проверил свою текущую настройку, физически отключив один из жестких дисков. Когда я это делаю, я не могу загрузиться, поскольку grub ищет раздел md0, который, кажется, доступен только тогда, когда оба диска присутствуют и работают. Вот сообщение об ошибке:
Volume group "vg_testfs" not found
Cannot process volume group vg_testfs
lvmetad is not active yet, using direct activation during sysinit
Cannot process volume group vg_testfs
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Reading all physical volumes. This may take a while...
/run/lvm/lvmetad.socket: connect failed: no such file or directory.
Что я пытался
Прочитав некоторую документацию, я попытался создать следующий файл сценария, который не работал после запуска grub-update:
кот /etc/grub.d/11_recovery1
#!/bin/sh -e
echo "Adding recovery 1"
cat << EOF
menuentry "recovery 1 - bootable when 1 disk fails" {
set root=(hd0,1)
linux /boot/vmlinuz root=/dev/sdc1
initrd /boot/initrd.img
}
EOF
Возможные решения
Мне интересно, можно ли настроить grub для загрузки дополнительных записей на один программный диск с RAID, когда другой отсутствует. Если нет, следует ли мне просто собрать систему с нуля, не используя RAID1 для раздела / boot, и вместо этого иметь отдельные файлы grub на каждом из дисков / загрузочных разделов?
Я никогда раньше не использовал grub, и мне сложно понять, с чего начать! Любая помощь приветствуется. Спасибо
Больше информации
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
sdb
sdc
├─sdc1 linux_raid_member testfs:0 4efe8212-0000-0000-0000-000000000001
│ └─md0 ext4 04d5c4d4-0000-0000-0000-000000000002 /boot
├─sdc2
└─sdc5 linux_raid_member testfs:1 7d1b235d-0000-0000-0000-000000000003
└─md1 crypto_LUKS 41e69905-0000-0000-0000-000000000004
└─md1_crypt LVM2_member 7wHoCZ-0000-0000-0000-00000000000005
├─vg_testfs-lv_swap swap 8112ce83-0000-0000-0000-000000000006 [SWAP]
└─vg_testfs-lv_root ext4 bbe5d21b-0000-0000-0000-000000000007 /
sdd
├─sdd1 linux_raid_member testfs:0 4efe8212-0000-0000-0000-000000000001
│ └─md0 ext4 04d5c4d4-0000-0000-0000-000000000002 /boot
├─sdd2
└─sdd5 linux_raid_member testfs:1 7d1b235d-0000-0000-0000-000000000003
└─md1 crypto_LUKS 41e69905-0000-0000-0000-000000000004
└─md1_crypt LVM2_member 7wHoCZ-0000-0000-0000-00000000000005
├─vg_testfs-lv_swap swap 8112ce83-0000-0000-0000-000000000006 [SWAP]
└─vg_testfs-lv_root ext4 bbe5d21b-0000-0000-0000-000000000007 /
fdisk -l
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 111.8 GiB, 120040980480 bytes, 234455040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3c424eec
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 2048 976895 974848 476M fd Linux RAID autodetect
/dev/sdc2 978942 234452991 233474050 111.3G 5 Extended
/dev/sdc5 978944 234452991 233474048 111.3G fd Linux RAID autodetect
Disk /dev/sdd: 111.8 GiB, 120040980480 bytes, 234455040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x33a774c6
Device Boot Start End Sectors Size Id Type
/dev/sdd1 * 2048 976895 974848 476M fd Linux RAID autodetect
/dev/sdd2 978942 234452991 233474050 111.3G 5 Extended
/dev/sdd5 978944 234452991 233474048 111.3G fd Linux RAID autodetect
Disk /dev/md0: 475.7 MiB, 498794496 bytes, 974208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/md1: 111.3 GiB, 119471603712 bytes, 233342976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/md1_crypt: 111.3 GiB, 119469506560 bytes, 233338880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/vg_testfs-lv_swap: 11.2 GiB, 11999903744 bytes, 23437312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/vg_testfs-lv_root: 100.1 GiB, 107466457088 bytes, 209895424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes