Это CentOS 6.4 со всеми обновлениями внутри Virtualbox OSE (довольно старая версия). Вся информация ниже относится к ВМ, я не думаю, что есть какие-либо проблемы на хосте.
/boot это отдельная файловая система ext2 для /dev /sda1 (hd0,0)
Что я сделал:
- cp /boot/grub/menu.lst /boot/grub/menu.lst.old
- vi /boot/grub/menu.lst
После перезагрузки меню grub не отражает сделанные мной изменения (некоторые изменения в командной строке ядра). Загрузка не удалась, потому что старая команда больше не может работать.
Если в командной строке grub я звоню
- cat (hd0,0)/grub/menu.lst новое содержимое будет показано, как ожидается
- cat (hd0,0)/grub/menu.lst.old старое содержимое будет показано как ожидается
Если я интерактивно повторю свои изменения в команде grub, редактирование загрузки будет успешным.
Я повторил это много раз. Скопировали menu.lst (чтобы блочный список изменился), но это всегда одна и та же проблема. Grub "видит" новую версию в команде cat, но не в ее меню.
На машине только один диск, на одном диске только один раздел ext2 (остальное - LVM2), один раздел ext2 содержит только 1 файл с именем menu.lst. Таким образом, любая путаница с дисками, разделами или путями должна быть исключена.
(По какой-то странной причине grub показывает один и тот же диск 5 раз: hd0, hd8, hd9, hd10 и hd11, но все они имеют одинаковое содержимое, и корень правильно установлен как (hd0,0), поэтому я не думаю, что это должно быть причиной проблемы)
Таким образом, кажется, что старый menu.lst был скопирован в какое-то скрытое место, и grub использует его из этого скрытого места для своего меню. Редактирование файла не изменило "скрытое место". Но для первого файла есть комментарий
# Note that you do not have to rerun grub after making changes to this file
во-вторых, я вполне уверен, что я делал такие обновления много раз назад во времена, когда Ubuntu все еще использовал устаревший grub, и в-третьих, я понимаю, что grub может читать файловые системы ext2 (может команда grub's cat поддерживает это), так что должно быть нет причин для "скрытого места".