LaoBlog

Debian Sparc: access to raid1 with lvm partition with linux sparc live cd


Ovvero, come accedere alle partizioni su dischi in raid 1 con lvm attraverso una distribuzione linux su live cd.Mi è capitato, durante l'aggiornamento di una Ultra10 Sparc, di non riuscire più ad effettuare il boot del sistema operativo. Passando infatti da Debian Lenny a Squeeze, è stato aggiornato il kernel, e come mi era accaduto per l'aggiornamento al kernel 2.26, anche col nuovo 2.32 la macchina non partiva più. Avevo infatti modificato il silo.conf in modo da partire col kernel 2.32 appena installato, anziché col collaudato 2.18. Dovevo quindi modificare silo.con in modo da partire col kernel 2.18. Nessun problema per questo, in quanto la partizione di /boot, formattata in ext2, non è, ovviamente in raid. Avevo quindi staccato il disco contenente la partizione di /boot, collegato ad un altro pc, modificato silo.conf in modo da partire col kernel 2.18. Rimettendo poi il disco nell'Ultra 10, riavvio la macchina, ma mi attendeva un'amara sorpresa: una volta partito OpenBoot, il caricamento di SILO non si completava: analogamente a LILO, la scritta non era completa, indice di un errore nel caricamento. Appariva solamente # SI. A questo punto ho deciso di tentare di reinstallare silo, ma per questo dovevo avere accesso alla partizione di /root, che stava su raid 1 in un volume logico all'interno di un volume group. Mi sono allora impossessato del live cd SystemRescue per SPARC, scaricabile dal sito omonimo (occhio che la versione SPARC è più vecchia di quella per architettura x86). Ho quindi individuato il nome del dispositivo cdrom sulla mia Ultra10, dove era montato come Secondary Slave. Appena accesa e comparso il prompt di OPenBoot (quindi PRIMA di arrivare al caricamento di SILO). ho premuto STOP+A per interrompere il caricamento (da notare che utilizzo una tastiera sun type5, se la vostra è diversa dovete trovare la giusta combinazione di tasti); ho quindi digitato:# nvalias cdrom /pci@1f,0/ide@.../cdrom@3,0:fQuesto comando assegna al dispositivo montato come secondary slave l'alias "cdrom".Poi:# boot cdromA questo punto dovrebbe partire il live cd SystemRescue che avevo posto nel lettore. Così infatti è stato.Una volta caricato il sistema operativo, dando per scontato che le partizioni erano INTEGRE, che raid e volumi fossero completi e coerenti, senza cioè errori, ho proceduto per accedere ai dati sui miei dischi (hda ed hdc) nel seguente modo, sempre come utente root:Prima ho caricato i moduli necessari:# modprobe raid1# modprobe dm-modPoi creato il file /etc/mdadmin.conf per permettere il riconoscimento del raid al sistema live:# mdadm --examine --scan /dev/hda2 >> /etc/mdadm.confAssemblato il raid:# mdadm -A -sVerificato lo stato del raid:#cat /proc/mdstat Personalities : [raid1] active raid1 hda2[0] hdc2[1] 14850752 blocks [2/2] [UUPoi coi comandivgscanlvscanho verificato che Volume Group e Logical Volume fossero a posto (come nel mio caso mi aspettavo)Se tutto è ok, si possono attivare i Volume Group (nel mio caso ne ho uno solo):# vgchange -a -yPoi ho creato un punto di mount e montato il Logical Volume(volume logico):# mkdir /mnt/root# mount /dev/Volumegroupname/Logicalvolumename /mnt/root# cd /mnt/rootPoiché SystemRescueCD usa zsh come shell, mentre sulla mia ULtra10 c'è bash, ho creato un link simbolico in modo tale che il sistema non si lamentasse dell'assenza di zsh quando si effettua il chroot:# ln -s /bin/bash /mnt/root/bin/zshQuindi ho dato i seguenti comandi:# chroot /mnt/root# mount -a# siloconfigIl comando siloconfig (che ho scoperto solo al momento), permette di reinstallare SILO; è quindi diverso il comportamento fra SILO e LILO, poiché per reinstallare il secondo, si dà il comando # lilo mentre per il primo il comando # silo effettua semplicemente una verifica della sintassi del contenuto del file silo.conf. Invece # siloconfig senza parametri legge il contenuto di silo.conf all'interno della partizione di /boot, e lo reinstalla Infine i comandi:# exitper uscire da chroot sul mio raid1,# rebootper riavviare la macchina. Al termine devo togliere il cd dal lettore per permettere il riavvio del sistema Debian. Se l'ordine di boot o i dispositivi non sono esatti, alla comparsa del prompt di OpenBoot occorrerà indicare il corretto dispositivo ove andare a cercare il bootloader SILO. Nel mio caso l'ordine di avvio è cdrom e poi il disco Primary Master, perciò una volta tolto il cd dal lettore, il sistema si è avviato correttamente dal disco rigido hda.Paura passata...