Проснулся в ожидании корневого устройства 14.04

Существует множество ответов и уроков, как это исправить, но я не смог применить ни одно из решений в моем случае.

Вот моя ситуация:

  • У меня отлично работает Ubuntu 12.04
  • Я установил Ubuntu 14.04
  • ошибка произошла при попытке загрузить 14.04 (12.04 работает нормально)

У меня USB-флешка с 14.04 и работает 12.04, поэтому я могу применять исправления или отлаживать дальше.

Запуск sudo grub-update дает мне:

> 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

Одним из решений, которое я попробовал, было нажать e на grub menu и заменить идентификатор на /dev/sda6, но ничего не изменилось.

Что является причиной проблемы, и существует ли простой способ исправить личинку, используя 12.04?


enter image description here

enter image description here

<час>

enter image description here enter image description here

    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
}
2
задан 18 July 2014 в 23:17

2 ответа

Две возможных причины для вышеупомянутой ошибки (предполагающий, что установка не полностью повреждается):

a) Личинка не загружается, корректные поддерживают начальную загрузку 14,04

b) Запись для корня в fstab и/или initrd 14,04 установок повреждается.

Учитывая рассматриваемые комментарии, это выглядит маловероятным, что a) был бы причиной. Так как причиной была та замена корнем =/dev/sda6 в личинке, не помог. 12,04 записей личинки выглядят корректными, но вероятно, что фактическая установка личинки, в настоящее время от 14,04 (может быть проверен от записей, показанных на передней странице начальной загрузки личинки, имел бы 14,04, и 12.04 будет на альтернативном экране). Так замену 12,04 личинками можно попробовать сначала, хотя, как упомянуто, это вероятно не проблема. От работы 12,04 сред:

sudo grub-install /dev/sda

Действительно подтвердите, что личинка имеет некоторый набор тайм-аута, чтобы позволить выбрать опцию: sudo gedit /etc/default/grub , и GRUB_HIDDEN_TIMEOUT и GRUB_TIMEOUT должны быть ненулевыми, говорят 10 (для 10secs тайм-аут) и затем работают sudo update-grub. Перезагрузка теперь покажет 12.04 на переднем экране начальной загрузки, в то время как 14.04 будет на альтернативном экране. Если 14.04 теперь работы затем мы сделаны и можем просто установить 14.04's личинка путем выполнения sudo grub-install /dev/sda от 14,04 сред. Иначе мы попытаемся зафиксировать b), как упомянуто затем.

Существует два способа пойти о b). Нужно загрузиться с живого CD, смонтировать существующую установку и затем зафиксировать его. Другой должен зафиксировать от работы 12,04 установок. Я уточню 2-й, хотя 1-я опция будет довольно похожей с единственной разницей, являющейся загружающимся в живой CD вместо существующих 12,04 установок.

После начальной загрузки в 12,04, сначала заскочите в корневую оболочку для предотвращения повторенный sudo вызовы: sudo -i.

Теперь мы смонтируемся, эти 14,04 установок где-нибудь (сказать /mnt/trusty) и chroot в него, который сделает эти 14,04 установок как новый корень для той оболочки (и эффективно сделает оболочку как 14.04 одну). В старые дни Linux это было главным образом достаточно для работы в 14,04 средах от оболочки, но в более новых ядрах большинство файлов устройств в /dev стали динамичными и замененными udev демон, таким образом, это требует ручного создания многих вещей сначала. Однако в наших целях зафиксировать fstab/initrd это должно быть прекрасным, как. Тем не менее мы должны будем сделать несколько вещей избежать, чтобы предупреждения/ошибки - скопировали текущий mtab и смонтировали proc.

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

В этой точке мы готовы проверить и зафиксировать fstab, прежде chrootлуг, затем повторно создайте изображение initrd 14,04 ядер. Так откройте его: gedit /mnt/trusty/etc/fstab и проверьте, что первая непрокомментированная строка имеет корректный UUID для точки монтирования корня (/). В этом случае мы видели, что UUID 14.04's корень/dev/sda6 ee707b14-31a7-4f86-a6e5-1b9aa38bdd68, так проверьте, что fstab также говорит, что то же еще исправляет UUID, сохраняет fstab и близко. Теперь мы можем повторно создать initrd:

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

Это должно закончиться без ошибок. Затем размонтируйте/proc, выход из системы от chroot среда и размонтирование 14.04:

umount /proc
exit
umount /mnt/trusty

Теперь перезагрузка и попытка, запускающаяся 14.04. Если это теперь запускается прекрасный, то замените 14.04's личинка, как упомянуто прежде: sudo grub-install /dev/sda от 14,04 сред. Также будет хорошая идея повторно создать initrd из 14,04 сред на всякий случай, chrooted среда имела некоторые различия: sudo update-initramfs -k all -c.

4
ответ дан 18 July 2014 в 23:17

Я получил то же сообщение об ошибке, и ничто не помогло. В моем случае ошибка оказалась повреждениями файловая система. Этому не удавалось читать из диска.

я зафиксировал его путем выполнения fsck на моих дисках Linux (/dev/sdaN) с опция-f . Тем путем я вынудил fsck проверить диск на наличие ошибок (и не только считать флаг из последней проверки) и вручную исправил ошибки, которые это нашло.

, Как только ошибки были зафиксированы, моя система назад была онлайн после перезагрузки. Я надеюсь, что это помогает.

1
ответ дан 18 July 2014 в 23:17

Другие вопросы по тегам:

Похожие вопросы: