(решено)grub сошёл с ума

Vadim, это знамение! Самое время отказываться от глючного и костыльного grub2 в пользу lilo, например. ;)
Для экспериментов можно генерировать конфиг в другое место
grub-mkconfig -o ~/111111
Lupus pilum mutat, non mentem.
Aivar
Только syslinux!!
Ошибки в тексте-неповторимый стиль автора©
Вот вы смеётесь а тут не знаешь что делать.С грубом вообще ни разу проблем не было с тех пор как перешёл на линукс,первый раз такое.Поэтому и не сильно вникал в разные нюансы его настроек.
Ещё заметил,когда генерируешь настройки grub.cfg почему-то в последнее время одна операционка несколько раз записывается.Вручную лишние пункты удалять приходилось или коментировать,раньше такого не было.
Может последние версии груба сами по себе глючные?
Linux Forever!
Всем спасибо,решил.Всё оказалось очень просто,удалил полностью grub,переименовал почему-то оставшуюся папку /boot/grub и файлы в /etc/default,установил по новой, потом grub-install /dev/sda , sudo grub-mkconfig -o /boot/grub/grub.cfg,всё прошло без ошибок,все системы нашлись и загружаются без проблем.Сейчас поудаляю переименованые файлы и всё .
Linux Forever!
Vadim
Всё оказалось очень просто,удалил полностью grub,переименовал почему-то оставшуюся папку /boot/grub
Вики надо было читать :)
Пакет grub – всего лишь инсталлятор загрузчика, и все его файлы расположены в /usr.
В /boot/grub (по умолчанию) находится именно загрузчик, который НЕ устанавливается при установке пакета, и НЕ удаляется при его удалении.

Шаманские действия с переустановкой, ничего, фактически, не меняют.
Проблема в том, что что-то меняет конфиг, но это не загрузчик, ибо он никогда свой конфиг не меняет.

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

Aivar
Vadim, это знамение! Самое время отказываться от глючного и костыльного grub2 в пользу lilo, например. ;)
Который на днях испустил свой последний выдох.

А вот вам простейший пример установки "глючного и костыльного" GRUB2.
Выполняем от рута две команды:
pacman -S grub
grub-install --boot-directory=/ /dev/sda
Создаём простой конфиг (ничего не подставляем, код работает как есть) в файле /grub/grub.cfg (не в /boot!)
set timeout=5
menuentry "Arch Linux" {
 probe -s UUID -u $root
 linux /boot/vmlinuz-linux root=UUID=$UUID rw
 initrd /boot/initramfs-linux.img
}
Это всё. Это уже работает. Никаких автогенераторов.
И никакие левые пакеты и скрипты даже не найдут настоящий конфиг груба, чтоб его изменить :)
Natrio
может если сделать отдельный раздел boot и будет как вы пишете.
я отдельный раздел boot никогда не создавал и создавать не буду.
в /boot/grub у меня находятся grub.cfg и ещё несколько файлов.когда я grub удалил переименовал папку //boot/grub, при установке
pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
папка /grub с конфигурационными файлами создалась новая,все глюки пропали.
ну а сам загрузчик находится не в /boot/grub а в MBR диска (начальный загрузчик – 446 байт), таблицы разделов - 4 первичных раздела (16 байт каждый)

ну а конфиг вручную создавать мне неудобно-на основном hdd три дистрибутива линукс и на usb hdd ещё два.
Linux Forever!
Vadim
может если сделать отдельный раздел boot и будет как вы пишете.
Наоборот! Мой пример не будет работать с отдельным разделом /boot , таково ограничение метода с автоопределением раздела – загрузчик должен стартовать именно с корня, тогда он правильно его определит.

Vadim
папка /grub с конфигурационными файлами
ну а сам загрузчик находится не в /boot/grub а в MBR диска
я отдельный раздел boot никогда не создавал и создавать не буду.

Сам загрузчик никак не может поместиться в 446 байт, там только ма-аленький стартовый код, запускающий ядро загрузчика (не путать с ядром Linux!) из промежутка между MBR и первым разделом, либо из специального раздела.

Все остальные файлы загрузчика (включая тот самый конфиг) в количестве много находятся в каталоге grub (вложенном в /boot/ по умолчанию), или там, куда указывал параметр grub-install --boot-directory= , и я предложил перенести его в корень, чтобы защитить его от несанкционированной перезаписи. Ещё раз для ясности – там находятся ВСЕ файлы загрузчика, а не только конфигурационные.
Другими словами, ваш груб, установленный из Арч, всё равно находится в корне Арч, а не какого-то другого дистрибутива, и не в MBR :)

Подробнее обо всём этом написано в вики.

Автогенерация конфига на три дистрибутива это действительно сложно и глючно, в таких случаях его тем более проще один раз составить вручную, а не доверять произволу скриптописцев, рискуя однажды опять получить незагружаемую систему после обновления неизвестно чего.

Vadim
все глюки пропали
Переустановка загрузчика никак не затрагивает скрипты, которые могут его поломать – они просто не являются его частью, и лежат совершенно в других местах, например в /etc/grub.d/
Natrio
Спасибо за советы.Почему-то в моём случае переустановка загрузчика помогла,хотя наверное это не правильно.Буду ещё читать вики и в других местах и сделаю как надо.
Linux Forever!
Natrio
Aivar
Vadim, это знамение! Самое время отказываться от глючного и костыльного grub2 в пользу lilo, например. ;)
Который на днях испустил свой последний выдох.
А вот вам простейший пример установки "глючного и костыльного" GRUB2.
Natrio, в последнее время вы редко появляетесь на форуме, поэтому не уловили иронии в моем посте.
 
Зарегистрироваться или войдите чтобы оставить сообщение.