LINUX.ORG.RU
решено ФорумAdmin

Ошибка grub

 ,


0

1

Очень забавная проблема возникла, кручу второй день, никак концов найти не могу.

После очередного обновления ubuntu 18.04 в виртуалке не смогло прописаться новое ядро в grub с ошибкой

grub-probe: error: not a directory.
. В dmesg и логах тишина. Партиции не менялись, виртуальный диск - virtio, соответственно, в виртуалке - /dev/vda. При попытке выполнить команду
grub-probe -d /dev/vda2 --target=fs_uuid -v
всё в порядке, но последняя строка такая же:
grub-probe: error: not a directory.
Пробовал удалять /boot/grub и ставить
grub-install --target=i386-pc --boot-directory=/boot --verbose /dev/vda --recheck
ставится, но всё то же самое.

Виртуализация - kvm (виртуалка довольно старая, с i440fx), перегружать её пока не могу (да и с 99% она не загрузится быстро).

Какие есть ещё варианты, что покрутить? Систему 99,999% не ломали, лишних файлов нет, те, что из пакетов - не менялись, виртуалка наружу торчит лишь по http через проксирующий nginx, там тоже чисто в логах.

Вот, что получается, если запустить команду

strace /usr/sbin/grub-probe -t fs_uuid /boot/grub -v
(последние строчки): https://pastebin.com/bhEvmRCK

Deleted

По твоей проблеме не подскажу, но у меня тоже было несколько раз проблемы с виртуалками кему квм и грабом при обновлении версии кему. Я использую efi режим для всех виртуалок. После обновления виртуалка могла на загружаться из-за того, что граб не находил разделы вообще. Решалось хаком - включить поддержку ефи, запустить машину, увидеть ошибку, выключить машину, включить ефи, загрузиться.

anonymous ()
Ответ на: комментарий от anonymous

Тут efi даже не пахнет.

Виртуалки кручу уже много лет, никогда ни на legacy, ни на efi проблем не возникало.

Deleted ()

Пардон, конечно, что влезаю в калашный ряд. А

grub-probe -t hints_string -d /dev/vda
смотрели? Оно нормально и правильно видит имена?

Так-то судя по коду это errno, который возвращается из-за !canonicalize_file_name(). То есть как-то должно быть связано с тем, что некое устройство... «потерялось» )

Toxo2 ★★ ()
Ответ на: комментарий от Toxo2

...упс, с поправкой, что в 18.04 старый grub в котором нет hints_string, тогда bios_hints посмотреть.

Toxo2 ★★ ()
Ответ на: комментарий от Toxo2

Запустил, показал новую ошибку, но куда копать - всё равно не совсем понятно :)

grub-probe -t bios_hints /dev/vda
grub-probe: error: failed to get canonical path of `udev'.
Deleted ()
Ответ на: комментарий от Deleted

В Гугле люди говорят, что это может быть связано с тем, что zpool недоступен. Знаю, что вы поклонник ZFS. Если еще и внутри виртуалок у вас ZFS, то может быть ваш случай?

i have a similar problem
grub2-probe fails when 'zpool' is not in the path

sh-4.2# /usr/sbin/grub2-probe --target=device /
/usr/sbin/grub2-probe: error: failed to get canonical path of ‘ZoL-2316/ROOT/rhel7’.
sh-4.2# export PATH=$PATH:/usr/sbin
sh-4.2# /usr/sbin/grub2-probe --target=device /
/dev/nbd0p2
источник

Toxo2 ★★ ()
Ответ на: комментарий от Toxo2

Если еще и внутри виртуалок у вас ZFS

Нет-нет. ZFS снаружи, qcow2-образы лежат на ZFS, но внутри просто 2 раздела (vda1 swap и vda2 корень)

Deleted ()
Ответ на: комментарий от Infra_HDC

Нет, виртуалка работает и корень примонтирован же.

Deleted ()
Ответ на: комментарий от Deleted

Только сегодня дошло, что вы без "-d" запускали. Без device оно так и должно отвечать (или с вариантом failed to get canonical path of 'devtmpfs').

Впрочем, внимательнее прочитав стартовое сообщение, дошло ещё что это никак не поможет. Раз оно вам на fs_uuid отвечает правильно, а потом отваливается, то и на bios_hints ответит правильным hd0 и также отвалится.

Тогда сдаюсь. Разве только попробовать повторить вашу конфигурацию и воспроизвести ошибку у себя, когда делать будет нечего.

Toxo2 ★★ ()

Мимо крокодил: а какой раздел у тебя активный? Может сделать /boot отдельным разделом в начале диска?

Но если до обновления всё работало - время писать багрепорт.

anonymous ()
Ответ на: комментарий от anonymous

Может нужно сделать /dev/vda2 активнымии попробовать туда grub?

anonymous ()
Ответ на: комментарий от anonymous

/dev/vda1 - swap, /dev/vda2 - /

Корень активный.

Deleted ()

В общем, подготовился бэкапами, положил утащенный с другой виртуалки /boot/grub/grub.cfg и перегрузил хост со всеми виртуалками (пора уже, куча ядер новых прилетело с момента последней перезагрузки)

Все виртуалки (в т.ч. и проблемная) успешно загрузились, теперь update-grub проходит нормально. Такое решение проблемы мне, конечно же, не нравится. Но проблема решена.

Из разницы - когда возникала проблема, не генерились файлы boot.img и core.img в /boot/grub/ при «grub-install --target=i386-pc --boot-directory=/boot --verbose /dev/vda». После перезагрузки - генерятся.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.