Come md
vengono assemblati i dispositivi all'avvio in Ubuntu? È /etc/mdadm/mdadm.conf
davvero il fattore rilevante qui?
Il mio mdadm.conf
è suono e l'ho verificato mentre ero nell'ambiente del CD di ripristino. Durante l'esecuzione mdadm -A --scan
trova e assegna i nomi dei dispositivi come desiderato. Il mdadm.conf
contiene AUTO -all
per eliminare tutto l'automatismo dall'assemblaggio delle matrici.
Quello che devo fare è essere in grado di assemblare automaticamente i md
dispositivi come indicato mdadm.conf
al momento dell'avvio o che durante l'assemblaggio onora il super-minor
valore per l'array 0.9 e name
(apparentemente <hostname>:<super-minor>
) per gli array 1.2 e fa la cosa giusta senza mdadm.conf
. Quale pezzo del puzzle mi manca?
Ho il seguente problema. Esistono due md
dispositivi con RAID1 ( md0
e md1
) e uno con RAID6 ( md2
). Mi riferisco a loro con i nomi dei dispositivi desiderati . md0
ha meta-data versione 0.9, le altre due hanno versione 1.2. md0
le mappe /
e le altre due non sono rilevanti per l' avvio .
L'unità di avvio è GPT partizionata. C'è una colla "BIOS Boot Partition" ( sda1
) su di essa. grub-install --no-floppy /dev/sda
riporta il successo.
md0 == sda3 + sdb3
md1 == sda2 + sdb2
md2 == sdc + sdd + sde + sdf + sdg + sdh
sda1
esdb1
sono "BIOS Boot Partition" ciascuna
GRUB2 è felice con l' /boot/grub/devicemap
ho dato e ho aggiunto part_gpt
, raid
, mdraid09
e ext2
ai moduli di precarico in GRUB2.
Dato che avevo ancora il mio volume di root nell'ambiente di salvataggio, ho semplicemente montato tutto e poi chroot
inserito in esso:
mkdir /target
mount /dev/md0 /target
mount -o bind /dev /target/dev
mount -o bind /dev/pts /target/dev/pts
mount -o bind /sys /target/sys
mount -o bind /proc /target/proc
chroot /target /bin/bash
Da lì ho resettato super-minor
on md0
(con meta-data 0.9) e name
on md1
e md2
. Ho anche verificato che funzionava con mdadm --detail ...
. A parte questo, mi sono adattato /etc/default/grub
, corro update-grub
e anche grub-install --no-floppy /dev/sda
e grub-install --no-floppy /dev/sdb
.
Dopodiché, all'avvio, vengo sempre rilasciato nella initramfs
shell di salvataggio, perché non è stato possibile montare il file system di root. Il motivo, dopo aver verificato, /proc/mdstat
sembra essere che il rispettivo md
dispositivo non viene nemmeno assemblato e avviato. Per non parlare del fatto che le altre due unità (versione 1.2 dei metadati) ricevono un numero di dispositivo da qualche parte nell'intervallo 125..127.
Nota: GRUB2 proviene dal disco di avvio. Quindi almeno è stato incorporato correttamente. Il problema è la transizione dal rootfs
file system radice iniziale al file radice corretto.
/etc/fstab
. L'installazione non si basa sui nomi, vorrei comunque che fossero così;)
Not to mention that the other two (meta-data version 1.2) drives receive a device number somewhere in the 125..127 range
. Non so abbastanza su come Ubuntu assembla i volumi dei raid per rispondere al problema più grande.
/dev/mdX
esattamente per questo motivo. Usa/dev/md/NAME
invece. Questo non cambierà mai.