Newsgroup: it.comp.os.linux.sys
Titolo: RAID 1 e partizioni non create sul device del raid...

Salve,
oggi mi sono ricordato di aver disabilitato, tempo fa, il check del RAID 
al boot.
Si tratta di 2 dischi in RAID 1.
Ho provato allora a far girare e2fsck -f -v -D /dev/md0, ma mi viene 
riportato questo
errore:
e2fsck 1.40.2 (12-Jul-2007)
La dimensione del filesystem (secondo il superblocco) è 47186913 blocco(i)
La dimensione fisica del device è 47186896 blocco(i)
È probabile che il superblocco o la tavola delle partizioni siano corrotti!
Annulla
? sì
Cercando su google ho scoperto di aver commesso un (grosso?) errore quando
ho creato il RAID, ovvero non ho creato le partizioni sul device del 
RAID... e visto
che mkraid scrive il superblocco del RAID alla fine delle partizioni, 
e2fsck non riconosce
il superblocco, e quindi:
fdisk -l /dev/md0
[sudo] password for franco:
Disco /dev/md0: 193.2 GB, 193277526016 byte
2 heads, 4 sectors/track, 47186896 cylinders
Units = cilindri of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000
Il disco /dev/md0 non contiene una tabella delle partizioni valida
Cosa fareste?
È circa un anno e mezzo che non viene effettuato alcun check, e al momento
sto facendo girare badblock (non destructive mode).
Grazie!
G.

 RAID...
Io direi che il tuo errore è stato l'opposto: hai creato prima due
filesystem, uno per ogni componente del raid, e poi hai creato il
raid: quindi i due superblock sono stati scritti sopra ai filesystem:
e questo crea il problema a e2fsck, perché il fs risulta più grosso
del device.
Invece dovevi creare prima il raid (così i superblock andavano sui
raw device) e poi un solo filesystem sul device virtuale del raid
(creato al netto dei superblock): in tal modo le due dimensioni, del
device virtuale e del fs, sarebbero state uguali.
In merito, vedi 
http://www.linuxjournal.com/article/5653
 al punto 8.
Francamente non so se ci siano modi immediati per rimediare. Mi viene
in mente qualcosa... ma se puoi fare un backup dei file sul raid, e
ricrearlo di bel nuovo, stavolta per bene, secondo me è meglio. 
Altrimenti - forse, e tenendo presente che non bene quel che dico -
potresti: smontare il raid, fermarlo, e agire su un solo device;
salvare da qualche parte il superblock di questo device (lo spazio di
17 blocchi... uhm, che non porti male!) copiandolo con dd;
restringere il fs di questo device alla dimensione di 47186896
blocchi; ricopiarci in coda il superblock salvato prima; verificare
che questo device sia a posto e usato da solo nel raid (marcando
l'altro come fallato) si comporti bene; ricreare il raid1 a partire
dal questo device.
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
__________________________________
Combatti l'AIDS col tuo computer: 
http://fightaidsathome.scripps.edu/

 Cosa fareste?
Il motivo lo ha spiegato Lem.
La soluzione è più semplice di quel che pensi.
Ipotizziamo /dev/md0 fatto da /dev/sda1 e /dev/sdb1
- boot da distro live
- disfi il raid rimuovendo il secondo device e poi lo stoppi
  mdadm --manage /dev/md0 --remove /dev/sdb1
  mdadm -S /dev/md0
- fai un fsck della sola partizione rimanente
  fsck -f /dev/sda1
- fai un resize2fs della sola partizione riducendo la partizione di qualche
un megabyte
  resize2fs -v /dev/sda1 [size - 10 MB]
- riavvii il device raid
  mdadm -A /dev/md0 /dev/sda1
- riestendi il filesystem sul device raid
  resize2fs -v /dev/md0
- riaggiungi la seconda partizione
  mdadm --manage /dev/md0 --add /dev/sdb1
(verifica la pare di riavvio del raid che non mi ricordo mai la sintassi
giusta) :-)
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 
Purtroppo non mi è possibile fare il backup, essendo circa 280gb di dati
che non so proprio dove mettere temporaneamente, e non ho soldi per
l'acquisto di un disco.
Quello che mi chiedevo, e mi rendo conto che non sia possibile dare una
risposta, è se corro grossi rischi a lasciare le cose così, e quindi a 
non far
girare fsck.
Ti ringrazio della risposta!
Ciao,
G.

   mdadm --manage /dev/md0 --add /dev/sdb1
Grazie per la risposta!
Ciao,
G.

 Come mai devo compiere questa operazione?
Perché i dati del raid (il superblocco) è scritto alla fine di ciascun
device a blocchi che compone il raid (nel tuo caso le partizioni). Sono
pochi bytes, ma io preferisco sempre restare largo.


 Cosa fareste?
Un po' tardi per rispondere, ma vedo che nessuno ti ha fornito la  
soluzione più semplice...
Non hai fatto nessun grosso errore, ma hai dimenticato di completare la  
procedura di ridimensionamento delle partizioni una volta creato il RAID.
Il messaggio di e2fsck è comprensibile, dato che hai fatto il RAID su una  
partizione esistente. Dato che il RAID si prende un blocco per uso suo, ne  
risulta una dimensione più piccola ma che non viene aggiornata nei dati  
della partizione.
La soluzione è ridimensionare (automaticamente, non a manina...) la  
partizione alla dimensione corretta, e hai già i tool necessari a farlo.
La procedura corretta è la seguente:
- unmount della partizione RAID
   umount /dev/md0
- e2fsck della partizione RAID
   e2fsck -f /dev/md0
   Quanto ti dà il messaggio di errore che hai indicato, rispondigli di  
procedere lo stesso. Non preoccuparti.
- ridimensionamento automatico della partizione RAID
   resize2fs /dev/md0
- rimonta la partizione RAID
   mount /dev/md0
...fatto! ora la partizione è a posto e e2fsck non si lamenta più.
Il messaggio di errore di fdisk ("Il disco /dev/md0 non contiene una  
tabella delle partizioni valida") invece non ti deve preoccupare, con le  
partizioni RAID di mdadm ti dirà sempre così.
Il sistema funziona e lo uso abitualmente. In genere quando preparo dei  
server prima faccio tutto il lavoro con un singolo drive, quando poi  
finalmente tutto gira a puntino lo "promuovo" a RAID ed eseguo la  
procedura che ti ho indicato.
Ciao
Walter