Pagina 1 di 1

[RISOLTO] Problema con il boot e lilo

Inviato: mar 30 ago 2011, 16:32
da elvis
Salve, mi serve una mano perchè sto cominciando a impazzire, a causa anche di arrugginimento post-vacanze.
Il problema è che non riesco più a bootare la partizione di slackware, e nasce dall'aggiunta di un secondo hdd al pc, in realtà un ssd che contiene solamente Seven.

Innanzitutto vi descrivo la situazione hardware: ho 6 porte sata, dalla 1 alla 4 impostate in modalità ahci, e la 5 e la 6 in modalità IDE. L'hdd meccanico è collegato a una delle porte ide (come device primario) e l'ssd in una delle ahci (come device secondario). Tutto questo perchè è l'unica combinazione che ho trovato che non crea problemi a Windows, problemi che se serve spiegherò su richiesta.

Questo è l'output di fdisk -l, fatto da una live di opensuse:
(sda1 e sda4 sono partizioni ntfs vuote, sda2 contiene la root di slackware e sda3 la sua /home, sdb1 contiene C di Seven)

Codice: Seleziona tutto

linux:/home/linux # fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcf75795f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       50993   409601241    7  HPFS/NTFS
/dev/sda2   *       50994       55856    39062047+  83  Linux
/dev/sda3           55857       68305    99996592+  83  Linux
/dev/sda4           68306      121601   428100120    7  HPFS/NTFS

Disk /dev/sdb: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2ac42ac3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        7296    58605088+   7  HPFS/NTFS
Usando invece il dvd di slack, mi ritrovo con le lettere scambiate (quando uso liloconfig), ossia l'ssd è /dev/sda e l'hdd è /dev/sdb, e già qui non capisco il perchè.

Detto ciò, all'inizio in fase di boot di slackware avevo un kernel panic che ora non ricordo nei dettagli (era prima delle vacanze), oggi ho cercato più volte di reinstallare lilo, ma il risultato è stato solo di passare dal kernel panic a un errore del tipo:

"errore durante il filesystem check: /sbin/e2fsck - errore mentre tento di aprire la partizione /dev/sda2 - il superblock non può essere letto o non descrive un filesystem ext2 corretto."

e dopodichè mi chiede di loggarmi come root (chiedendo la password root di slackware) o di riavviare la macchina.

Il lilo.conf attuale è: (solo i pezzi principali)

Codice: Seleziona tutto

boot = /dev/sdb
....
image = /boot/vmlinuz
root = /dev/sdb2
label = Slackware
read-only
....
other = /dev/sda1
label = Windows
table = /dev/sda
Come appunto potete vedere, liloconfig usato dal dvd di slack, mi ha visto l'hdd come sdb e l'ssd come sda. Da quel che penso invece, durante il boot non gli va bene, lo immagino da quel "/dev/sda2 che non contiene un filesystem ext2 valido". Da dove spunta fuori quel /dev/sda2 visto che nel lilo.conf c'è scritto che la / si trova in /dev/sdb2?
Perchè invece lilo riesce a bootare senza problemi windows?

Preciso che liloconfig l'ho usato in modalità expert, poichè in quella simple c'erano vari warning (tra cui ricordo un "map table e superblock su dischi differenti") e un errore fatale che ora mi sfugge, ricordo che era un errore riguardo "boot = /dev/root", mi pare. Se c'è bisogno di più precisione, vado a rivederlo.

Mi pare di aver detto tutto, spero di essere stato chiaro.

Re: Problema con il boot e lilo

Inviato: mar 30 ago 2011, 17:19
da 414N
Mi è successo anche a me tempo fa, anche se ora non ricordo di preciso come feci a risolvere.
Puoi comunque risolvere in modo più semplice e robusto sfruttando gli UUID delle partizioni (sia in lilo.conf sia in fstab), che non cambiano anche andando a spostare gli spinotti sulla scheda madre.
Dato che ne ho già dibattuto con un altro utente, ti rimando a quel thread. Se hai problemi con l'inglese e a capire quanto ho scritto là, fammi un fischio che vedo di tradurtelo qui.

Re: Problema con il boot e lilo

Inviato: mar 30 ago 2011, 22:06
da elvis
La parte iniziale mi sembra fattibile, invece non ho capito quella finale, in sostanza cosa dovrei scrivere in lilo.conf al posto di "boot = /dev/sdb"

Re: Problema con il boot e lilo

Inviato: mar 30 ago 2011, 22:15
da 414N
elvis ha scritto:La parte iniziale mi sembra fattibile, invece non ho capito quella finale, in sostanza cosa dovrei scrivere in lilo.conf al posto di "boot = /dev/sdb"
L'opzione boot è l'unica (a quanto mi risulti) non compatibile con gli UUID delle partizioni, percui devi cambiarla in modo che rispecchi il disco che il BIOS ti avvia, in modo che lilo finisca nel suo MBR. Le opzioni root per le varie immagini dei kernel, invece, supportano gli UUID.

Re: Problema con il boot e lilo

Inviato: mar 30 ago 2011, 22:54
da elvis
Quindi si tratta di staccare l'hdd con windows, avviare il pc e bootare l'altro hdd (che a questo punto verrà visto come /dev/sda), scrivere nel lilo.conf "boot = /dev/sda" e "root = uuid relativo", e poi installare lilo su quest'unico hdd presente?
La parte di windows la lascio così in modo che ricollegando il secondo hdd riesce a bootare sia windows (cosa che faceva già prima) sia slackware poichè ora trova l'uuid univoco?

Re: Problema con il boot e lilo

Inviato: mer 31 ago 2011, 8:58
da 414N
elvis ha scritto:Quindi si tratta di staccare l'hdd con windows, avviare il pc e bootare l'altro hdd (che a questo punto verrà visto come /dev/sda), scrivere nel lilo.conf "boot = /dev/sda" e "root = uuid relativo", e poi installare lilo su quest'unico hdd presente?
La parte di windows la lascio così in modo che ricollegando il secondo hdd riesce a bootare sia windows (cosa che faceva già prima) sia slackware poichè ora trova l'uuid univoco?
Direi che puoi farlo anche senza staccare il disco. Basta che battezzi il disco giusto prima dell'installazione di lilo, magari aiutandoti con fdisk -l.
Le incongruenze a livello di nomi dei dispositivi sono probabilmente da imputare a diverse versioni del kernel di opensuse e di slackware.
Domanda: sicuro che la root di slackware non abbia problemi al filesystem? Hai provato (sia da opensuse che dal dvd di slackware) a lanciare un fsck su di essa?

Re: Problema con il boot e lilo

Inviato: gio 1 set 2011, 22:36
da elvis
Dal dvd di slackware, ho i seguenti output:

Codice: Seleziona tutto

root@slackware:/# fsck /dev/sdb2
fsck from util-linux-ng 2.17.2
fsck: fsck.ext4: not found
fsck: Error 2 while executing fsck.ext4 for /dev/sdb2

root@slackware:/# e2fsck /dev/sdb2
/dev/sdb2: clean
l'output di e2fsck mi fa pensare che il filesystem sia a posto, mentre fsck non so perchè, ma non viene eseguito, almeno da quello che mi sembra.

Per quanto rigarda lilo, in fase di boot sono tornato al vecchio kernel panic originario, il classico
"kernel panic - not syncing : VFS: unable to mount root FS on unknown-block"

che si presenta sia mettendo "boot = /dev/sda" sia "boot = /dev/sdb" nel lilo.conf


domanda scema, non è che il problema è in /etc/fstab ?
se provassi a cambiare tutti i /dev/sdan che ci sono in /dev/sdbn ?

EDIT: ci ho provato e come risultato lilo non parte proprio... .

Re: Problema con il boot e lilo

Inviato: gio 1 set 2011, 23:44
da 414N
elvis ha scritto: l'output di e2fsck mi fa pensare che il filesystem sia a posto, mentre fsck non so perchè, ma non viene eseguito, almeno da quello che mi sembra.
Prova a forzare il controllo di e2fsck col parametro -f.
elvis ha scritto: Per quanto rigarda lilo, in fase di boot sono tornato al vecchio kernel panic originario, il classico
"kernel panic - not syncing : VFS: unable to mount root FS on unknown-block"
Questo errore indica che la partizione di root indicata durante il boot è sbagliata. Puoi aggiustare lilo oppure provare al volo specificando manualmente la partizione da montare nella riga di comando di lilo, nel seguente modo:

Codice: Seleziona tutto

NomeImmagineDaAvviare root=/dev/sdXn
Se il problema è solo un nome di dispositivo sbagliato, facendo varie prove in questo modo dovresti arrivare a montare almeno la root partition. Può darsi che anche fstab debba essere aggiustato, ma si può fare dopo.
elvis ha scritto:che si presenta sia mettendo "boot = /dev/sda" sia "boot = /dev/sdb" nel lilo.conf
L'opzione boot=X di lilo.conf serve solo a dire a lilo dove andare ad installare il bootloader.
Lilo verrà installato nel MBR del disco indicato (/dev/sda o /dev/sdb). Questa opzione non influenza in alcun modo l'avvio di Linux come invece fa l'opzione root.
elvis ha scritto: domanda scema, non è che il problema è in /etc/fstab ?
se provassi a cambiare tutti i /dev/sdan che ci sono in /dev/sdbn ?
EDIT: ci ho provato e come risultato lilo non parte proprio... .
Nel post che ti ho riportato ho suggerito a y33t di sostituire tutte le occorrenze di nomi di dispositivi sia in lilo.conf (nelle opzioni root=) sia in fstab con i rispettivi UUID. Sempre in quel post ho riportato come effettuare le sostituzioni.
L'unica accortezza aggiuntiva riguarda l'opzione boot: dato che questa non supporta un UUID (perché indicano solo le partizioni, non i dischi interi), devi essere certo che il disco che vai ad indicare corrisponda a quello che il BIOS avvia per primo. Dato che da una distro all'altra (probabilmente per questione di kernel diversi) i nomi dei dischi cambiano, cerca di rimanere il più "coerente" possibile usando il disco di installazione di Slackware.

Re: Problema con il boot e lilo

Inviato: gio 1 set 2011, 23:49
da elvis
Ecco il problema allora, gli uuid li ho messi solo al posto di /dev/sdb2 (sia in lilo-conf che in fstab), mentre il resto è rimasto come prima.

Ora provo e vedo che succede.

Re: Problema con il boot e lilo

Inviato: ven 2 set 2011, 0:25
da elvis
Allora, sto scrivendo da slackware, finalmente sono riuscito ad avviare la / usando come parametro dalla riga di comando "root=/dev/sdb2"

resta da capire perchè il relativo uuid messo nel lilo.conf non riesce a far avviare il tutto automaticamente. Ho appena ricontrollato è l'uuid è giusto, non è che per caso le virgolette non ci vanno? ( quelle in root="UUID=blabla" )

nell'fstab attualmente ci sono tutti gli uuid, tranne al posto di /dev/fd0 e quelli sotto, visto che non saprei cosa metterci.


EDIT: assurdo, è bastato mettere "root=/dev/sdb2" anche in lilo.conf per risolvere il problema....

mi chiedo perchè non ci abbia provato prima, ero convinto che ci andava scritto per forza "root=/dev/root", oppure con gli uuid. Vabbè, pazienza.

A questo punto non saprei se ripristinare l'fstab originale, togliendo gli uuid, magari c'è qualche comando che lo fa in automatico?
Grazie comunque per l'aiuto e la pazienza!

Re: Problema con il boot e lilo

Inviato: ven 2 set 2011, 0:34
da targzeta
elvis ha scritto:resta da capire perchè il relativo uuid messo nel lilo.conf non riesce a far avviare il tutto automaticamente. Ho appena ricontrollato è l'uuid è giusto, non è che per caso le virgolette non ci vanno? ( quelle in root="UUID=blabla" )
Dal man di lilo.conf:

Codice: Seleziona tutto

The root filesystem may also be specified by a LABEL= or UUID= directive, as in '/etc/fstab'.  In this case, the argument to root= must be enclosed in quotation marks, to avoid a syntax error on the second equal sign, e.g.:

    root="LABEL=MyDisk"
    root="UUID=5472fd8e-9089-4256-bcaa-ceab4f01a439"
Emanuele

Re: Problema con il boot e lilo

Inviato: ven 2 set 2011, 8:15
da 414N
elvis ha scritto:Allora, sto scrivendo da slackware, finalmente sono riuscito ad avviare la / usando come parametro dalla riga di comando "root=/dev/sdb2"
resta da capire perchè il relativo uuid messo nel lilo.conf non riesce a far avviare il tutto automaticamente.
Torna a fare un controllo incrociato, magari con questi due comandi:

Codice: Seleziona tutto

ROOT=`grep '/ ' /etc/mtab | cut -d'/' -f3`
ls -l /dev/disk/by-uuid/ | grep $ROOT
Dovrebbe riportarti una riga riguardante il solo UUID della partizione che hai attualmente montata come root (/).
elvis ha scritto: A questo punto non saprei se ripristinare l'fstab originale, togliendo gli uuid, magari c'è qualche comando che lo fa in automatico?
Io terrei gli UUID. Metti caso che tu aggiunga un disco in futuro e che i nomi dei device cambino di nuovo: con gli UUID non avresti nessun problema, mentre se tornassi ai nomi dei dispositivi saresti da capo.