md raid не установлен

Задний план

Я запускаю Centos 7. Первоначально он работал на одном диске, который выглядел примерно так:

1 200M EFI System (/boot/efi) 2 500M Microsoft basic (/boot) 3 465.1G Linux LVM LVM VG centos - LVM LV ext4 centos-root (/) - LVM LV swap centos-swap (swap) 

Это было лишь временное решение, поскольку оно первоначально предполагалось установить на RAID-массив Linux RAID. Сегодня я перебрался сюда. В настоящее время это выглядит так:

 Both new disks have this partition layout: 1 200M EFI System (/boot/efi) 2 457.6G Linux RAID /dev/md0 RAID1 (for boot and LVM) 3 8G Linux RAID /dev/md1 RAID0 (so 16GB total, for swap) /dev/md0 looks like this: 1 500M Linux filesystem (/boot) 2 457G Linux LVM (centos-root is migrated to this) LVM now has only one LV, centos-root 

/etc/mdadm.conf выглядит так:

 ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=main.centos.local:0 UUID=5b5057b4:4235ba4b:5342dfda:acf63302 devices=/dev/sda2,/dev/sdb2 ARRAY /dev/md1 level=raid0 num-devices=2 metadata=1.2 name=main.centos.local:1 UUID=f82a8c99:9b391d83:4efc9456:9e9bad98 devices=/dev/sda3,/dev/sdb3 

/etc/fstab выглядит так:

 /dev/mapper/centos-root / xfs defaults 0 0 UUID=fcb5f82f-ce6b-460b-800f-329e010bc403 /boot xfs defaults 0 0 UUID=C532-14AE /boot/efi vfat umask=0077,shortname=winnt 0 0 /dev/md1 swap swap defaults 0 0 

blkid выводит это (только соответствующие записи):

 /dev/sdb1: SEC_TYPE="msdos" UUID="C532-14AE" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="ed301bbd-c15c-40af-ae75-bf238d0e6270" /dev/sda1: SEC_TYPE="msdos" UUID="C532-14AE" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="f3a76412-41a0-4e04-9b04-ad1c159133cf" /dev/md0p1: LABEL="boot" UUID="fcb5f82f-ce6b-460b-800f-329e010bc403" TYPE="xfs" PARTLABEL="primary" PARTUUID="df8d6481-c6ce-423a-b5d5-205d355e5653" /dev/md0p2: UUID="7LfywM-oPHy-MTEt-swlI-EVbZ-opTo-m82E6R" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="19e7f9d5-a955-4036-8338-03a748faa1f6" /dev/mapper/centos-root: UUID="deaa9788-b487-4991-adf7-2945788fb6cd" TYPE="xfs" 

У меня есть сценарий, который автоматически монтирует другой раздел EFI в /boot/efi_[device] , а когда ядро ​​обновляется, grub.cfg копируется в этот раздел, чтобы синхронизировать все.

/dev/sda1 и /dev/sdb1 синхронизируются сценарием (я это проверил), поэтому не должно быть проблемой, что fstab монтирует один из них в /boot/efi (это также означает, что если один диск был удален из-за сбоя, система по-прежнему гарантирует загрузку). Я мог бы поменять swap в LV, чтобы упростить все, но RAID0 получает лучшую производительность (для чего это стоит), и я получаю дополнительные 16 ГБ пространства.

Я перенес LV из старого диска в новый PV, используя следующие команды:

 pvcreate /dev/md0p2 vgextend centos /dev/md0p2 pvmove /dev/sdg3 vgreduce centos /dev/sdg3 

Затем я восстановил initramfs с помощью dracut (после резервного копирования оригинала) и, наконец, регенерировал grub.cfg. Впоследствии я установил новые разделы /boot и /boot/efi и скопировал все.

проблема

После отсоединения старого диска и загрузки, dracut не может найти мои RAID-массивы и, конечно же, раздел /boot и мой LVG. Похоже, что просто не вызывать mdadm --assemble на /dev/md0 и /dev/md . Я могу сделать это только из приглашения dracut , после чего lvm_scan находит мой LVG, я могу связать /dev/centos/root с /dev/root , и система продолжает загружаться без каких-либо проблем после выхода из приглашения. Кажется, все должно быть именно там, где должно быть.

Доступно обновление ядра, поэтому я попытался установить его (предполагая, что в первый раз я что-то испортил, когда регенерировал файлы initramfs и grub.cfg), но без кубиков. Система все еще терпит неудачу точно так же. Это верно, когда я загружаюсь из раздела EFI вручную (как и должно быть, так как они идентичны).

Ссылка на rdsosreport.txt на pastebin

Что мне здесь не хватает? Как я могу сделать так, чтобы собрать массивы?

Документация dracut предполагает, что любые массивы RAID-массива md должны быть автоматически собраны и что параметр rd.md.uuid должен использоваться только в том случае, если вы хотите, чтобы определенные массивы были собраны как часть процесса загрузки.

Кажется, что на самом деле массивы не собираются автоматически и на самом деле собираются только тогда, когда rd.md.uuid параметр rd.md.uuid (для каждого массива, который необходимо собрать). Может быть, так как параметр rd.lvm.lv уже установлен, что он каким-то образом вмешивается в md , но у меня нет времени проверить это.

Короче говоря, добавление параметров rd.md.uuid для обоих моих массивов в переменную GRUB_CMDLINE_LINUX в /etc/default/grub , а затем восстановление конфигурации grub исправило проблему для меня.