Обновление ядра на USB-накопителе происходит сбой с ошибкой grub-probe

Я диагностирую некоторые проблемы с оборудованием с помощью установки Ubuntu 11.10 с USB-накопителя.

USB-накопитель был настроен с изображением 11.10 и методом pendrivelinux.com, как рекомендовано на веб-сайте Ubuntu. Объем USB-накопителя составляет 8 ГБ.

Мой ноутбук позволяет мне загружаться с USB напрямую, поэтому жесткий диск по-прежнему имеет загрузочную структуру в микро-стиле (Windows 7).

Немного поиграв с O / S (и узнав, что на моем жестком диске 15000 перераспределенных секторов), менеджер обновлений предложил мне установить некоторые обновления. Все обновлено правильно, за исключением обновления ядра (3.0.0.14).

Кажется, есть ошибка grub:

ubuntu@ubuntu:/dev$ sudo apt-get install
Reading package lists... Done  
Building dependency tree   
Reading state information... Done  
0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.  
3 not fully installed or removed.  
After this operation, 0 B of additional disk space will be used.  
Setting up linux-image-3.0.0-14-generic (3.0.0-14.23) ...  
Running depmod.  
update-initramfs: deferring update (hook will be called later)  
Examining /etc/kernel/postinst.d.  
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
update-initramfs: Generating /boot/initrd.img-3.0.0-14-generic  
cryptsetup: WARNING: failed to detect canonical device of overlayfs  
cryptsetup: WARNING: could not determine root device from /etc/fstab  
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).  
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1

, которая сохраняется каждый раз, когда я пытаюсь повторить установку. К счастью, система всегда остается в загрузочном состоянии, несмотря на сбой.

Нужно ли предпринимать какие-то особые шаги для обновления ядра? Есть ли у меня небольшая проблема с установкой, которую мне нужно решить вручную, чтобы обойти это?

По крайней мере еще у одного была такая же проблема в более старой версии O / S. Я предоставлю вывод mount (как было запрошено в предыдущем вопросе), когда снова получу доступ к ноутбуку.

Редактировать: результаты mount:

/cow on / type overlayfs (rw)   
proc on /proc type proc (rw,noexec,nosuid,nodev  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
fusectl on /sys/fs/fuse/connections type fusectl (rw)  
udev on /dev type devtmpfs (rw,mode=0755)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)  
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)  
/dev/sdb1 on /cdrom type vfat  (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)  
/dev/loop0 on /rofs type squashfs (ro,noatime)  
none on /sys/kernel/debug type debugfs (rw)  
none on /sys/kernel/security type securityfs (rw)  
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)  
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)  
none on /run/shm type tmpfs (rw,nosuid,nodev)  
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)  
gvfs-fuse-daemon on /home/ubuntu/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=ubuntu)

Редактировать # 2: Я определил, что утилита флешки pendrivelinux.com может играть роль в этом. Флешка, содержащая мой дистрибутив Ubuntu, отформатирована как FAT32, а устанавливаемый загрузчик на самом деле не GRUB, а SYSLINUX, согласно сценарию boot_info_script.

Имеет смысл, что grub-probe не может понять, что делать, учитывая, что grub вообще не участвует в процессе загрузки.

(Это заставляет меня задуматься, почему apt-get не проверяет загрузчик grub в качестве зависимости перед попыткой обновления ядра?)

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

Мой первый удар привел к тому, что система не загружалась - grub загружался, я мог нормально загрузить ядро, но не мог понять, что монтировать как root. Мне пришлось стереть и переустановить флэш-накопитель, чтобы снова начать работу.

1
задан 13 April 2017 в 15:23

2 ответа

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

Я нашел, как зафиксировать это. Строка, которая повреждает установку:

run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.0.0-15-generic /boot/vmlinuz-3.0.0-15-generic

(Версия ядра может отличаться на Вашей установке),

Отредактируйте проблематичный файл для комментария строки та Личинка обновления. Это - очень маленький файл, таким образом, это не слишком трудно.

Примечание: Если Вы хотите скопировать файл сначала (это обычно - мудрая идея), скопируйте его в другом каталоге (/root хороший, /tmp не начиная с него, привычка переживает перезагрузку). Если Вы делаете резервное копирование в той же папке (/etc/kernel/postinst.d/), это будет вызов также, и это перестанет работать.

Править /etc/kernel/postinst.d/zz-update-grub прокомментировать строку 15.

ПРЕЖДЕ:

    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
        exec update-grub
        ;;

ПОСЛЕ:

    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
#       exec update-grub
        ;;

Запустите скрипт конфигурации:

sudo dpkg --configure -a

Необходимо видеть большую отладку а НЕ ошибочную строку в конце.

Безусловно, повторно выполните конфигурацию. Это должно сразу закончиться без любых журналов:

sudo dpkg --configure -a

Теперь, можно восстановить zz-update-grub файл, на всякий случай Вы хотите установить другое ядро позже и grub начните работать с overlayfs.

5
ответ дан 13 April 2017 в 15:23

Вы решили свою проблему? У меня такая же ошибка здесь. Мне не нужно это исправлять, я могу легко переустановить систему на USB-накопителе, но мне нравится вызов:)

Умный способ исправить это - научить Grub понимать overlayfs, но я не знаю пакет, который я должен установить для этого (если есть). Поскольку моя флешка все еще загрузочная, я хочу заставить apt-get проигнорировать это предупреждение. И.Е. Считайте этот пакет установленным, даже если это не совсем так. Ну, технически, он был установлен правильно, только Grub не может обновить MBR. Это не имеет большого значения, так как загружает последнюю версию ядра.

Каждая попытка занимает некоторое время, потому что она пытается настроить пакет, но Grub терпит неудачу, затем пытается откатиться и Grub снова терпит неудачу ...

Я попробовал следующее безуспешно:

(apt-get -f is for fixing problems)
sudo apt-get -f install
sudo apt-get -f --force-yes install
sudo apt-get --force-yes install linux-image-3.0.0-15-generic
sudo apt-get install --force-yes linux-image-3.0.0-15-generic
sudo dpkg --force-all -i linux-image-3.0.0-15-generic
sudo apt-mark manual linux-image-3.0.0-15-generic
(the following command is the one that trigger the bug)
sudo dpkg --configure -a
sudo dpkg --configure --force-all -a
(I think the next one need the .deb file)
sudo dpkg --force-confmiss -i linux-image-3.0.0-15-generic
sudo dpkg --force-confold -i linux-image-3.0.0-15-generic
sudo dpkg --no-triggers -i linux-image-3.0.0-15-generic

... и многое другое ...

0
ответ дан 13 April 2017 в 15:23

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

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