Bug 27916 - После обновления grub, система не загружается, выводя ошибку "Error: file not found"
: После обновления grub, система не загружается, выводя ошибку "Error: file not...
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/grub2-pc)
: unstable
: all Linux
: P3 blocker
Assigned To:
:
: http://www.altlinux.org/Grub#.D0.9A.D...
:
:
: 27685
  Show dependency tree
 
Reported: 2012-11-02 18:28 by
Modified: 2012-11-23 02:45 (History)


Attachments
/etc/sysconfig/grub2.rpmnew (1.31 KB, text/plain)
2012-11-04 13:02, real@altlinux.org
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2012-11-02 18:28:34
Симптомы:
* После надписи "Grub loadig", выводятся ошибки "Error: file not found", затем
изображение на мониторе чернеет и система зависает.
Нет возможности воспользоваться rescue консолью в grub.

В режиме rescure, обнаружилось, что не работает grub-autoupdate, выодя ошибку
"GRUB_AUTOUPDATE_DEVICE is not set, update grub manually if needed".
------- Comment #1 From 2012-11-03 04:52:30 -------
Это более чем на одной машине проявляется? Т.е. выключать машину до исправления
этой баги категорически не рекомендуется? Если так, то важность надо сменить с
major на critical, IMHO.
------- Comment #2 From 2012-11-03 08:47:21 -------
Если это проявляется более чем на одной машине, то это полный блокер, конечно
же.
------- Comment #3 From 2012-11-03 10:38:15 -------
Пока это замечено ровно на одной машине, потому я убрал blocker.
------- Comment #4 From 2012-11-03 20:35:54 -------
(посоветовавшись) Не, собственно _обновления_ до 2.00 это уже никак не
касается.

(In reply to comment #2)
> Если это проявляется более чем на одной машине,
> то это полный блокер, конечно же.
Даже если только на одной из наблюдаемых, то может вылезти на N у людей. 
Потому и просил в devel@ по возможности тестировать заранее.

Оргвыводы: сборкой grub2-pc и выкатыванием тестового таска следовало
озадачиться до начала чтения про EFI, чтобы окошко на тестирование было минимум
в неделю.
------- Comment #5 From 2012-11-04 12:05:01 -------
"Пока это замечено ровно на одной машине"

На моей тоже замечено, благо, на другом харде был другой ALT, восстановился
откатыванием grub2-pc на предыдущую версию.
------- Comment #6 From 2012-11-04 12:12:25 -------
(В ответ на комментарий №5)
> "Пока это замечено ровно на одной машине"
> 
> На моей тоже замечено, благо, на другом харде был другой ALT, восстановился
> откатыванием grub2-pc на предыдущую версию.

Поднял до blocker

Проверьте http://git.altlinux.org/tasks/83618/ , пожалуйста.
------- Comment #7 From 2012-11-04 12:18:19 -------
(In reply to comment #5)
> На моей тоже замечено
О!  А тогда расскажи, используешь ли LVM и/или RAID (2 amike: ты бы тоже
уточнил), помимо проверки сборки из task #83618.

Пожалуйста, перед попытками grub-install /dev/sdX вручную обязательно запусти
grub-autoupdate и если будет ругаться на GRUB_AUTOUPDATE_DEVICE -- прицепи свой
/etc/sysconfig/grub2 или скопируй сюда `grep AUTO` по нему же.
------- Comment #8 From 2012-11-04 12:24:34 -------
"А тогда расскажи, используешь ли LVM и/или RAID"

Нет.
------- Comment #9 From 2012-11-04 12:25:47 -------
"перед попытками grub-install"

Не использую. А теперь и grub2-pc поставил на холд. Буду ждать сообщений, что
бага исчезла.
------- Comment #10 From 2012-11-04 12:27:33 -------
sysconfig-то покажи хоть.
------- Comment #11 From 2012-11-04 12:30:03 -------
В смысле ls /etc/sysconfig/ ?

acpid               harddisk              keyboard         sshd
anacronjobs         harddisks             klogd            static-routes
autofs              hddtemp               limits           static-routes~
bluetooth           hsqldb                limits.d         syslogd
bridge              i18n                  mdadm            syslog-ng
clock               i18n~                 mouse            system
clock.rpmnew        i18n.rpmnew           mpi-selector     transmission-daemon
clock.rpmsave       i18n.rpmsave          network          usb
console             init                  network~         uwsgi
consolefont         installkernel         network.rpmnew   uwsgi~
consolefont.rpmnew  installkernel~        network.rpmsave  wpa_supplicant
desktop             installkernel.rpmnew  network-scripts  wpa_supplicant~
dhcpd               ip6tables             ntpd             xfs
ebtables            ip6tables_modules     openvpn          xinetd
ethtool             ip6tables_params      portmap.rpmsave  xinitrc
ethtool~            iptables              postgresql       xrandr
framebuffer         iptables~             qemu-kvm         xserver
grub2               iptables_modules      rawdevices       xserver~
grub2~              iptables_params       rpcbind          xserver.rpmnew
grub2.bak           ipw3945d              samba
grub2.rpmnew        irqbalance            sendmail
halt                kernel                squid
------- Comment #12 From 2012-11-04 12:50:17 -------
Не, в смысле 
> прицепи свой /etc/sysconfig/grub2 или скопируй сюда `grep AUTO` по нему же.

Но раз там есть /etc/sysconfig/grub2.rpmnew, то хорошо бы и его приложить.  И
`fdisk -l`, если не жалко.

Пока не получается понять, на чём, кроме слишком большого
/boot/grub/i386-pc/core.img при первом разделе с 63-го сектора, может
взорваться автообновление.

Также и просьба уточнить -- какие именно симптомы у тебя наблюдаются, в
точности описанные amike@ или "что-то похожее"?
------- Comment #13 From 2012-11-04 13:02:03 -------
Created an attachment (id=5621) [details]
/etc/sysconfig/grub2.rpmnew
------- Comment #14 From 2012-11-04 13:05:02 -------
> sudo grep AUTO /etc/sysconfig/grub2
#GRUB_AUTOUPDATE_DEVICE='/dev/sda '
#GRUB_AUTOUPDATE_FORCE='no'
GRUB_AUTOUPDATE_CFG=true
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg

> fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes, 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x324299af

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *     4096575   156296384    76099905    f  W95 расшир. (LBA)
/dev/sda2              63     3068414     1534176   83  Linux
/dev/sda3         3068415     4096574      514080   83  Linux
/dev/sda5         4096638     8193149     2048256   82  Linux своп / Solaris
/dev/sda6         8193213     9253439      530113+  83  Linux
/dev/sda7         9253503    50219189    20482843+  83  Linux
/dev/sda8        50219253    58412339     4096543+  83  Linux
/dev/sda9        58412403    66605489     4096543+  83  Linux
/dev/sda10       66605553   156296384    44845416   83  Linux

Пункты таблицы разделов расположены не в дисковом порядке

Disk /dev/sdb: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4fb6aec1

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1   *          63    12594959     6297448+  82  Linux своп / Solaris
/dev/sdb2        12594960   348160679   167782860   83  Linux
/dev/sdb3       348160680   351309419     1574370   83  Linux
/dev/sdb4       351309420   625137344   136913962+   5  Расширенный
/dev/sdb5       351309483   352353644      522081   83  Linux
/dev/sdb6       352353708   353397869      522081   83  Linux
/dev/sdb7       353397933   395343584    20972826   83  Linux
/dev/sdb8       395343648   403729514     4192933+  83  Linux
/dev/sdb9       403729578   625137344   110703883+  83  Linux

Disk /dev/sdc: 160.0 GB, 160041885696 bytes, 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e0a39

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   *          63     4192964     2096451   83  Linux
/dev/sdc2         4192965    46138679    20972857+  83  Linux
/dev/sdc3        46138680    54524609     4192965   82  Linux своп / Solaris
/dev/sdc4        54524610   312576704   129026047+   5  Расширенный
/dev/sdc5        54524673    62910539     4192933+  83  Linux
/dev/sdc6        62910603    71296469     4192933+  83  Linux
/dev/sdc7        71296533    72340694      522081   83  Linux
/dev/sdc8        72340758   312576704   120117973+  83  Linux

"какие именно симптомы у тебя наблюдаются"

Просто груб высказывает приветствие, 4 одинаковых сообщения об ошибке
(заметить, что там, не получается, ибо очень быстро исчезает), затем пустой
экран с сообщением о превышении допустимой частоты.
------- Comment #15 From 2012-11-04 22:16:46 -------
(In reply to comment #14)
> #GRUB_AUTOUPDATE_DEVICE='/dev/sda '
Во, спасибо.  Эта заремареная запись -- из упакованного файла по умолчанию, а
вот почему не была добавлена разремареная (возможно, при обновлении с
grub-0.9x) -- придётся понять.

Насколько понимаю по bug #24114, кроме alterator-grub и $EDITOR эту строчку
туда добавить некому (обдумываю добавление триггером либо проверку
файл-триггером).

> /dev/sda2              63     3068414     1534176   83  Linux
> /dev/sdb1   *          63    12594959     6297448+  82  Linux своп / Solaris
> /dev/sdc1   *          63     4192964     2096451   83  Linux
Т.е. на всех дисках 63-й сектор уже занят, ага.

> Просто груб высказывает приветствие, 4 одинаковых сообщения об ошибке
> (заметить, что там, не получается, ибо очень быстро исчезает), затем пустой
> экран с сообщением о превышении допустимой частоты.
Значит, то же самое.

BTW можешь рассказать историю загрузчиков на этой машинке -- т.е. с какого
образа был установлен этот корень и с каким загрузчиком, и если образ версии
давнее 6.0 -- как именно был установлен сам загрузчик?
------- Comment #16 From 2012-11-05 03:48:13 -------
"BTW можешь рассказать историю загрузчиков на этой машинке -- т.е. с какого
образа был установлен этот корень и с каким загрузчиком, и если образ версии
давнее 6.0 -- как именно был установлен сам загрузчик?"

Дык это... не помню уже, дело было более 4 лет назад. Ставил ALT 4.0, а дальше
уже и не вспомнить. Я даже не помню, что там изначально ставилось: lilo или
grub.
------- Comment #17 From 2012-11-05 20:44:35 -------
В 4.0 как раз lilo -- я вот и пытаюсь понять, как на этих хостах появился и был
настроен grub.  Потому как если сугубо вручную, то разумным вариантом будет
предупреждать и не пытаться самодеятельничать; что и сделано в 2.00-alt3 (прошу
тестировать http://git.altlinux.org/tasks/83727/, завтра-послезавтра пойдёт в
сизиф).

Соответственно добавь, пожалуйста, вручную в /etc/sysconfig/grub2 строчки

GRUB_AUTOUPDATE_DEVICE='/dev/sda '
GRUB_AUTOUPDATE_FORCE='no'

и выполни grub-mkconfig -o /boot/grub/grub.cfg (позаимствовал в -alt3 из
дебиана однострочный update-grub с этим вызовом для удобства).

2 amike: ты тоже, плюс расскажи об истории загрузчика и как он вообще без этой
переменной выжил (хотя это относительно понятно, см. тж. bug #24114).
------- Comment #18 From 2012-11-06 06:32:54 -------
"GRUB_AUTOUPDATE_DEVICE='/dev/sda '"

А пробел обязательно?
------- Comment #19 From 2012-11-06 12:49:41 -------
(In reply to comment #18)
> А пробел обязательно?
Насколько понимаю, нет -- но привёл ровно в том виде, в котором добавляет
alterator-grub.
------- Comment #20 From 2012-11-06 16:22:46 -------
"я вот и пытаюсь понять, как на этих хостах появился и был
настроен grub"

Очень просто: apt-get install grub lilo-

Это ещё до grub2 было. А вот какие ещё были телодвижения, уже не вспомнить, но,
кажется, MBR руками ставился, хотя могу и ошибаться...
------- Comment #21 From 2012-11-06 17:08:21 -------
В пакет добавлены предупреждалки, на вики добавлены уточнения процедуры ручной
замены загрузчика, это всё проверено на стендах и минимум трёх живых людях --
считаю вопрос в разумной мере исчерпанным.

Если вдруг у кого возникнет точная формулировка условий, при которых можно
автоматизировать добавление GRUB_AUTOUPDATE_DEVICE -- переоткрывайте/пишите.
------- Comment #22 From 2012-11-15 12:41:54 -------
После сегодняшнего обновления и перезагрузки в меню grub был только один пункт:
memtest

Посмотрел grub2.spec

%post pc
%_sbindir/grub-autoupdate || {
    echo "** WARNING: grub-autoupdate failed, NEXT BOOT WILL LIKELY FAIL NOW"
    echo "** WARNING: please run it by hand, record the output offline,"
    echo "** WARNING: make sure you have bootable rescue CD/flash media handy"
    echo "** WARNING: and try \`grub-install /dev/sdX' manually"
} >&2


Попробовал запустить команду в консоли:

$ sudo /usr/sbin/grub-autoupdate; echo $?         
WARNING: GRUB_AUTOUPDATE_DEVICE not set in /etc/sysconfig/grub2
WARNING: run grub-install /dev/sdX if needed
0

Наверно по этой причине я не видел никаких предупреждений при обновлении.
------- Comment #23 From 2012-11-15 13:00:55 -------
(In reply to comment #22)
> $ sudo /usr/sbin/grub-autoupdate; echo $?         
> WARNING: GRUB_AUTOUPDATE_DEVICE not set in /etc/sysconfig/grub2
> WARNING: run grub-install /dev/sdX if needed
> 0
Это нормально, см. окрестности второго exit 0 в /usr/sbin/grub-autoupdate --
ненулевой статус оставлен для сбоев grub-install.

> Наверно по этой причине я не видел никаких предупреждений при обновлении.
1) а этих двух big fat warning тоже не было?
2) там ещё триггер лежит -- он тоже промолчал?

Дело в том, что автоматизировать прописывание GRUB_AUTOUPDATE_DEVICE я не хочу
по причине чреватости такой самодеятельности, а если кто-то вручную переезжал
на GRUB по тогда ещё не полному описанию (эту фичу сделали несколько позже, см.
bug #24114) -- придётся единовременно довершить начатое также вручную. 
Страничка http://www.altlinux.org/Grub была соответственно дополнена.

Т.е. переоткрывать эту багу можно, но хорошо бы с соображениями по желаемому
поведению: не banner(1) же выводить с учётом того, что переезд на grub
осуществлялся исключительно руками, а инсталер GRUB_AUTOUPDATE_DEVICE пишет.
------- Comment #24 From 2012-11-15 13:24:15 -------
> > Наверно по этой причине я не видел никаких предупреждений при обновлении.
> 1) а этих двух big fat warning тоже не было?
> 2) там ещё триггер лежит -- он тоже промолчал?

файл-триггер промолчал.
судя по коду файл-триггера первый запуск egrep вычитывает весь stdin и для
второго egrep'а уже ничего не достаётся
------- Comment #25 From 2012-11-15 15:28:32 -------
Н-да, и впрямь глупость в триггере сморозил, спасибо.
После добивания -efi намерен вернуться к остаточным вопросам по -pc; учту.
------- Comment #26 From 2012-11-23 02:36:36 -------
Учтено в 2.00-alt5, ещё раз спасибо.
------- Comment #27 From 2012-11-23 02:45:03 -------
(В ответ на комментарий №26)
> Учтено в 2.00-alt5, ещё раз спасибо.

И Вам спасибо.