[bglug] Problemi con Software RAID1 e LILO ... lungo

Andrea Flori andrea@moltimedia.it
Mar 26 Ago 2003 14:34:36 CEST


> Andrea Flori wrote:
> > Scusate se disturbo, ma NON ne riesco proprio a venire a capo !
> [snip]
>
> nessun disturbo.

Grazie Diego ! Sei il primo che mi risponde ! (ho tentato - senza successo -
su newsgroup e altre ml)
>
> > Vi informo che LILO precedentemente (6 -9 mesi va) funzionava ...ora
> > non so perche' non mi si installa e mi da ..."Fatal: Filesystem would
> > be destroyed by LILO boot sector: /dev/md1"
>
> Purtroppo e' difficile capire dove stia esattamente il problema senza
> fare
> un'analisi approfondita.
> Alcune ipotesi plausibili:
> - hai una versione di LILO che non supporta direttive del tipo
> boot=/dev/md0

Lilo - latest 22.5.7.2 - compilato da me :-)
dai vari doc. "sembrerebbe" che gestisca meglio i dischi raid !

> - alcune versioni di LILO in combinazione con alcune versioni di bios
> non
> "capiscono" dove si trovi /dev/md0

una delle novita' degli ultimi lilo e proprio quella che si cerca da solo i
dischi che
appartengono ad un raid (usa i VolumeID dei dischi per referenziarli in modo
corretto)
(caccia un occhi a lilo.txt e vedrai che becca giusti sda1+sdb1=md1
sda2+sdb2=md0)

>
> > momentaneamente ho risolto in lilo con boot = /dev/fd0 (mi installa
> > lilo sul floppy) ma la cosa ovviamente e' MOLTO scomoda ...
>
> concordo sulla scomodità :-)
>
>  > In allegato trovate tutto quanto ho ritenuto potesse essere utile ...
>
> Bravo!
> Sei stato molto esausitivo, praticamente un esempio da seguire *per
> tutti*
> quelli che cercano aiuto.
>
> > Personalmente ho verificato che la tabella delle partizioni di
> > /dev/md0 (devmd0.txt x chi vuole curiosare)
> > e' corretta (in effetti e' vuota e presenta solo il valore 55AA nei
> > byte finali)
>
> In realtà quella non e' una tabella delle partizioni.

In effetti sono stato impreciso. NON e' un MBR (con la tab delle part
primarie), ma e' un BOOT RECORD

Quello che ho scoperto in questi mesi e' che tutte, dico TUTTE le partizioni
(FAT32, FAT16, NTFS, etc...)
hanno al loro inizio un boot record (i primi 512 byte) che deve TERMINARE
con 0x55AA

fate una prova con fdisk /dev/hda1,2,3,4 e digitate 'x' (opzioni estese) 'd'
(dump del boot sector)

ANCHE la partizione di SWAP linux che NON ha un file system (non ha cioe'
una struttura dati)
ha un boot record valido (cioe' che termina con 0x55AA)

La differenza sostanziale tra questi boot sector e l'MBR e' che quest'ultimo
contiene negli ultimi 64 byte prima di 0x55AA
la tabella delle 4 partizioni primarie ...

(da devsda.txt)
0x1B0: 00 00 00 00 00 00 00 00 B3 A5 B3 A5 00 00 80 01
0x1C0: 01 00 FD FE 3F 03 3F 00 00 00 C5 FA 00 00 00 00
0x1D0: 01 04 FD FE FF FF 04 FB 00 00 9A 63 01 01 00 FE
0x1E0: FF FF 82 FE FF FF 9E 5E 02 01 BE 32 0F 00 00 00
0x1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA

a 0x1BE a 0x1FD abbiamo i 64 byte della tabella delle partizioni
ad esempio a 0x1E2 = '82' abbiamo la partizione di swap (0x1DE-1EF)
0x1FE-FF = 0x55AA = MAGIC # CODE #

(tips: se cambiate ad una partizione 0x55AA in 0x0000 e fate fdisk sulla
partizione fdisk vi informera' della cosa e vi proporra' di correggerla con
un comando 'w')

> Allo stato attuale del kernel linux credo non sia possibile partizionare
> un software RAID device, e anche se lo fosse, sarebbe un'operazione
> concettualmente sbagliata. Per ottenere una funzione concettualmente
> simile devi utilizzare LVM, ma questa e' un'altra storia....
>
> [snip]
> > Ho trovato un'opzione con cui posso 'costringere' lilo a forzare
> > l'installazione nel boot-record, ma prima di farlo vorrei capire:
>
> non farlo.
>

in realtà quello di cui mi sto sempre piu' convincendo e' che POSSO farlo
(-F x forzare lilo)
nel senso che md1 contiene un bootsector sporco che ha di corretto solo gli
ultimi 2 byte (0x55AA)
le partizioni a cui fa riferimento sono ovviamente 'inconsistenti' anche
come numero di settori, cilindri e testine

> > 1) Perche' esiste quel boot record, chi l'ha creato e perche' non e'
> > nullo come quello di md0 ...
>
> non e' un boot record, e' l'inizio della partizione RAID1 che viene
> interpretato a modo suo da fdisk.

come dicevo prima ogni partizione inizia con un bs quindi
in realta' si, e' un boot-record (cosi come lo e' quello di md0 = stesso
tipo di RAID e di filesystem)
solo che chissa' per quale motivo NON e' 'vuoto' come l'altro

>
> > 2) perche' prima lilo mi si installava senza problemi e dopo invece
> > no? Hanno per caso aggiunto qualche check + approfondito a lilo ?
>
> in che condizioni era il "prima"? (che hard disk, versione di lilo,
> macchina,
> configurazione del RAID, distribuzione, ecc)

la macchina da un punto di vista hw NON e' cambiata.
Ho sempre e solo provveduto ad aggiornamenti sw.

La mia ultima analisi e' questa...
ormai LILO lo seguo dai rilasci di inizio giugno in poi ed in tutti i readme
si faceva
via via riferimento a correzioni di problemi e di bachi sui sistemi raid
dove a volte
si installava sputtanando le partizioni (lilo -u ripristinava i
BootSector/MBR rovinati con la copia di backup)

La situazione che mi vede coinvolto probabilmente e' l'opposto !
il raid /dev/md1 e' * SEMPRE * stato caratterizzato da un bootsector
inconsistente ma
solamente ultimamente lilo fa dei check approfonditi per evitare di
sovrascrivere bootsector contenti filesystem
che non conosce... ed in effetti il warning con il quale esce e' abbastanza
esplicito ...

A questo punto quello che mi servirebbe e' un DiskEditor per cambiare * A
MANO * i bytes della
partizione in oggetto (tipo il buon vecchio Norton Disk Editor...)

* * * Conoscete qualcosa ?!? * * *

>
> > 3) c'e' modo di far girare GRUB su una partizione RAID1 ?
>
> l'ultima volta che ho controllato (non molto tempo fa) Grub non
> supportava
> boot da partizioni RAID

Gia' . Il casino e' che Grub legge a 'run-time' le partizioni alla ricerca
del kernel da leggere ed eseguire...
finche' non gli aggiungono il supporto per la gestione delle partizioni 'FD'
(Autorilevamento Linux) ed
almeno del RAID 1 (a me questo basterebbe!) nulla da fare ...

>
> Per risolvere ti consiglio di utilizzare una entry in lilo.conf del tipo
> :
>
> boot=/dev/sda

si, questo l'avevo gia' provato sia con /dev/sda che con /dev/sdb .. ma mi
si blocca a 'LI'
(NON ho RI - provato ma era in uno degli ultimi tentativi fatti ...)
>
> oppure se vuoi la ridondanza del boot record fra i vari hard disks:
>
> boot=/dev/md0
> raid-extra-boot="/dev/hda,/dev/hdc"

raid-extra-boot="/dev/Sda,/dev/Sdb"

questo invece non va proprio ...
il solito messaggio di "FileSytem may be destroyed..."

>
> stando attento ad utilizzare una versione di LILO recente.
> (per esempio quello incluso in RedHat 9.0 non supporta la direttiva
> raid-extra-boot)

Ho scaricato * SEMPRE * l'ultima LILO disponibile ...
purtroppo RedHat arriva sempre tardi ...

>
> Ciao :-)

Grazie 1000 !

Sono convinto che 'alla fine chi la dura la vince'

Andrea :-I

>
> -- 
> Diego Tironi - diego@tironi.net
> PGP DH/DSS Key ID: 0x23570D06
> Fingerprint: 17CB 8495 2471 9AD9 C052  A8E7 3602 1BC7 2357 0D06
> Veritas vos liberabit
>
>
> -- 
> Mailing list info: http://lists.linux.it/listinfo/bglug
>
> BgLUG-biz! - il mercatino del BgLUG:
> http://alsoftech.com/mailman/listinfo/bglug-biz_alsoftech.com



Maggiori informazioni sulla lista bglug