PDA

View Full Version : RAID0 come root filesystem - kernel panic :(


DjMix
28-05-2004, 21:47
Ho sistemato due dischi in raid 0, i dischi son da 20 giga divisi in 3 partizioni: swap, root e dati. Come boot loader uso lilo. Il supporto al raid0 è compilato staticamente nel kernel. Quando il pc parte, il kernel viene caricato e comincia a fare il boot, ma quando attiva il controller e inizializza i raid non riesce:

md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27

md: Autodetecting RAID arrays.
md: autorun ...
md: considering hdc3 ...
md: adding hdc3 ...
md: hdc2 has different UUID to hdc3
md: adding hdb3 ...
md: hdb2 has different UUID to hdc3
md: created md1
md: bind<hdb3>
md: bind<hdc3>
md: running: <hdc3><hdb3>
md: personality 2 is not loaded!
md :do_md_run() returned -22
md: md1 stopped.
md: unbind<hdc3>
md: export_rdev(hdc3)
md: unbind<hdb3>
md: export_rdev(hdb3)
md: considering hdc2 ...
md: adding hdc2 ...
md: adding hdb2 ...
md: created md0
md: bind<hdb2>
md: bind<hdc2>
md: running: <hdc2><hdb2>
md: personality 2 is not loaded!
md :do_md_run() returned -22
md: md0 stopped.
md: unbind<hdc2>
md: export_rdev(hdc2)
md: unbind<hdb2>
md: export_rdev(hdb2)
md: ... autorun DONE.

Ovviamente a questo punto dovrebbe montare il root filesystem, ma dato che si trova nel raid, non lo fa...

Facendo il boot da un altro disco, non in raid, con lo stesso identico kernel, da lo stesso errore ma successivamente lo trova giusto e /proc/mdstat mostra tutto corretto:

Personalities : [raid0]
md1 : active raid0 hdb3[0] hdc3[1]
33234112 blocks 4k chunks

md0 : active raid0 hdb2[0] hdc2[1]
6359296 blocks 16k chunks

unused devices: <none>

Come si fa a farlo fare direttamente al kernel? Seguendo le indicazioni di md.txt, ho impostato questo su lilo.conf:

image=/vmlinuz
label="Linux RAID"
read-only
append="root=/dev/md0 md=0,/dev/hdb2,/dev/hdc2 md=1,/dev/hdb3,/dev/hdc3"

ma non funziona niente.... qualche aiuto?

Duncan
28-05-2004, 22:09
devi fare una piccola partizione dove mettere /boot magari in RAID 1 altrimenti non ti partirà mai. Ne LILO ne GRUB supportano il RAID software, quindi l'unico modo per aggirare il problema è mettere il kernel in una partizione in mirror


questo è il mio raidtab


# /boot
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 64
persistent-superblock 1
device /dev/sda1
raid-disk 0
device /dev/sdb1
raid-disk 1

# /
raiddev /dev/md1
raid-level 0
nr-raid-disks 2
chunk-size 64
persistent-superblock 1
device /dev/sda5
raid-disk 0
device /dev/sdb5
raid-disk 1

DjMix
28-05-2004, 22:16
c'è una cosa che non capisco. Lilo e grub servono per caricare linux, no? poi della faccenda si deve occupare lui da solo... nel momento in cui mi da kernel panic lilo non centra più nulla! Quindi il problema deve stare tutto sul kernel... o sbaglio?

Duncan
29-05-2004, 00:11
secondo me sbagli... perchè dalle guide che ho letto io non è possibile far partire il sistema da un RAID 0 SW

Magari ti carica qualcosa perà riesce a leggiere il primo stripe del kernel ... poi da li si incasina magari...

DjMix
29-05-2004, 00:21
Beh ora come ora ho fatto partire il sistema, con lilo installato in un disco normale, e come root il raid... usando initrd
ora sistemo meglio la faccenda poi vedo di eliminare completamente il disco normale e vediamo che succede