Tieniti in attesa del dispositivo di root 14.04

2

Ci sono un sacco di risposte e tutorial su come risolvere questo problema, ma non ero in grado di applicare nessuna delle soluzioni nel mio caso.

Ecco la mia situazione:

  • Ho perfettamente funzionante Ubuntu 12.04
  • Ho installato Ubuntu 14.04
  • l'errore si è verificato durante il tentativo di avvio 14.04 (la 12.04 funziona correttamente)

Ho una chiavetta USB con 14.04 e lavoro 12.04, quindi sono in grado di applicare ulteriori correzioni o eseguire il debug.

L'esecuzione di sudo grub-update mi dà:

> Generating grub.cfg ... Found linux image:
> /boot/vmlinuz-3.5.0-52-generic Found initrd image:
> /boot/initrd.img-3.5.0-52-generic Found linux image:
> /boot/vmlinuz-3.5.0-46-generic Found initrd image:
> /boot/initrd.img-3.5.0-46-generic Found linux image:
> /boot/vmlinuz-3.5.0-45-generic Found initrd image:
> /boot/initrd.img-3.5.0-45-generic Found linux image:
> /boot/vmlinuz-3.5.0-23-generic Found initrd image:
> /boot/initrd.img-3.5.0-23-generic Found memtest86+ image:
> /boot/memtest86+.bin Found Ubuntu 14.04 LTS (14.04) on /dev/sda6 
> done

Una delle soluzioni che ho provato è stata premere e su grub menu e sostituire l'ID con /dev/sda6 , ma non cambia nulla.

Che cosa sta causando il problema e c'è un modo semplice per risolvere il grub usando il 12.04?

    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-52-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-52-generic ...'
    linux   /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-52-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-46-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-46-generic ...'
    linux   /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-46-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-45-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-45-generic ...'
    linux   /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-45-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-23-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-23-generic ...'
    linux   /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-23-generic
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-24-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
    initrd /boot/initrd.img-3.13.0-24-generic
}
    
posta gotqn 15.07.2014 - 22:46

2 risposte

4

Due possibili cause dell'errore sopra riportato sono (supponendo che l'installazione non sia completamente interrotta):

a) Grub non sta caricando la root corretta per l'avvio di 14.04

b) La voce per root in fstab 14.04 e / o initrd è rotta.

Dati i commenti in questione, sembra improbabile che a) sia la causa. Il motivo è che la sostituzione con root = / dev / sda6 in grub non ha aiutato. Le voci di grub 12.04 sembrano corrette, ma è probabile che l'attuale installazione di grub sia attualmente dalla 14.04 (può essere controllata dalle voci mostrate nella pagina di avvio di grub anteriore sarebbe di 14.04 e 12.04 sarà nella schermata alternativa). Quindi la sostituzione con 12.04 grub può essere provata prima però, come accennato, probabilmente non è il problema. Dall'ambiente di lavoro 12.04:

sudo grub-install /dev/sda

Verifica che grub abbia un timeout impostato per abilitare la selezione di un'opzione: sudo gedit /etc/default/grub , sia GRUB_HIDDEN_TIMEOUT che GRUB_TIMEOUT devono essere non zero dire 10 (per il timeout di 10sec), quindi eseguire sudo update-grub . Il riavvio mostrerà ora 12.04 nella schermata di avvio anteriore mentre 14.04 sarà nella schermata alternativa. Se 14.04 ora funziona, abbiamo finito e possiamo installare il grub di 14.04 eseguendo sudo grub-install /dev/sda dall'ambiente 14.04. Altrimenti proverò a correggere b) come accennato in seguito.

Ci sono due modi per andare su b). Uno è quello di avviare da live CD, montare l'installazione esistente e quindi ripararlo. Altro è di risolvere dall'installazione di lavoro 12.04. Elaborerò il 2 °, anche se la prima opzione sarà abbastanza simile con l'unica differenza che è l'avvio in Live CD invece dell'installazione esistente di 12.04.

Dopo l'avvio in 12.04, prima rilasciare nella shell di root per evitare ripetute invocazioni di sudo : sudo -i .

Ora monteremo l'installazione 14.04 da qualche parte (diciamo /mnt/trusty ) e chroot in essa, che renderà l'installazione 14.04 come la nuova radice per quella shell (e renderà efficace la shell come 14.04). Nei vecchi giorni Linux questo era per lo più sufficiente per operare in un ambiente 14.04 da una shell, ma nei kernel più recenti la maggior parte dei file di dispositivo in /dev è diventata dinamica e sostituita dal daemon udev , quindi richiede la creazione manuale di molte cose prima Tuttavia, per i nostri scopi di fissare il file fstab / initrd dovrebbe andare bene così com'è. Ancora dovremo fare un paio di cose per evitare avvertimenti / errori - copiare l'attuale mtab e mount proc.

mkdir /mnt/trusty
mount /dev/sda6 /mnt/trusty
cp /etc/mtab /mnt/trusty/etc/mtab

A questo punto siamo pronti per controllare e correggere fstab, prima di chroot ing, quindi rigenerare l'immagine initrd del kernel 14.04. Quindi aprilo: gedit /mnt/trusty/etc/fstab e controlla che la prima riga non commentata abbia l'UUID corretto per mount point of root (/). In questo caso abbiamo visto che UUID del root / dev / sda6 di 14.04 è ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 , quindi controlla che fstab dica anche lo stesso altro, correggi l'UUID, salva fstab e chiudi. Ora possiamo rigenerare l'initrd:

chroot /mnt/trusty
mount -t proc proc /proc
update-initramfs -k all -c

Questo dovrebbe terminare senza errori. Quindi smontare / proc, uscire da chroot environment e smontare 14.04:

umount /proc
exit
umount /mnt/trusty

Ora riavvia e prova a partire dal 14.04. Se ora inizia correttamente, sostituisci con grub 14.04 come accennato prima: sudo grub-install /dev/sda dall'ambiente 14.04. Sarà anche una buona idea rigenerare initrd dall'interno dell'ambiente 14.04 solo nel caso in cui l'ambiente del chroot abbia alcune differenze: sudo update-initramfs -k all -c .

    
risposta data sumwale 19.07.2014 - 00:32
1

Ho ricevuto lo stesso messaggio di errore e nulla ha aiutato. Nel mio caso, l'errore si è rivelato corruzione del file system. Non riusciva a leggere dal disco.

L'ho risolto eseguendo fsck sulle mie unità linux (/ dev / sdaN) con l'opzione -f . In questo modo ho forzato fsck a controllare l'unità per gli errori (e non solo a leggere il flag dall'ultimo controllo) e a correggere manualmente gli errori trovati.

Una volta risolti gli errori, il mio sistema era di nuovo online dopo un riavvio. Spero che questo aiuti.

    
risposta data Projjwal 06.12.2015 - 13:55

Leggi altre domande sui tag