Antecedentes
Estou executando o Centos 7. Originalmente, ele estava sendo executado em um único disco que parecia com isso:
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)
Esta era apenas uma solução temporária, como originalmente deveria estar instalada em um array RAID1 de software Linux. Eu comecei a migrar hoje. Isto é o que parece atualmente:
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
é assim:
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
é assim:
/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
envia isto (somente entradas relevantes):
/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"
Eu tenho um script que monta automaticamente a outra partição EFI em /boot/efi_[device]
, e quando o kernel é atualizado, o grub.cfg é copiado para essa partição para manter tudo em sincronia.
/dev/sda1
e /dev/sdb1
são mantidos em sincronia pelo script (eu verifiquei isso), então não deve ser um problema que fstab monte um para /boot/efi
(isso também significa que se uma unidade foi removido devido a falha, o sistema ainda está garantido para inicializar). Eu poderia ter colocado swap em um LV para simplificar as coisas, mas o RAID0 obtém um desempenho melhor (pelo que vale a pena) e eu ganho 16GB extras de espaço.
Eu migrei o LV da unidade antiga para a nova PV usando os seguintes comandos:
pvcreate /dev/md0p2
vgextend centos /dev/md0p2
pvmove /dev/sdg3
vgreduce centos /dev/sdg3
Então eu regenerei o initramfs com dracut
(depois de fazer o backup do original), e finalmente recuperei o grub.cfg. Depois, montei as novas partições /boot
e /boot/efi
e copiei tudo de volta.
Problema
Depois de desconectar a unidade antiga e inicializar, o dracut não consegue encontrar as matrizes RAID e, é claro, a partição /boot
e também a minha LVG. Parece que simplesmente não está chamando mdadm --assemble
on /dev/md0
e /dev/md
. Sou capaz de fazer exatamente isso a partir do prompt dracut
, depois do qual lvm_scan
encontra meu LVG, posso vincular /dev/centos/root
a /dev/root
e o sistema continua inicializando sem problemas depois de sair do prompt. Tudo parece estar exatamente onde deveria estar.
Houve uma atualização de kernel disponível, então eu tentei instalá-lo (assumindo que eu estraguei algo da primeira vez ao regenerar os arquivos initramfs e grub.cfg), mas sem dados. O sistema ainda falha da mesma maneira. Isso é verdade quando eu inicializo a partir da partição EFI manualmente (como deveria ser, pois os dois são idênticos).
Link para rdsosreport.txt em pastebin
O que estou perdendo aqui? Como faço para dracut montar meus arrays?