Это баг минта или убунту?

Автор prof-alex, 30 мая 2010, 03:30

0 Пользователи и 1 гость просматривают эту тему.

prof-alex

В общем ковыряюсь с минтом Isadora. Задача сделать загрузочным внешний винт, подключаемый через USB.
В виртуалке его поставил, на реальном железе грузится. Но есть одна проблема, грузится если его в BIOS сделать первым диском, через F8 не работает. Причина в том, что grub2 привязан к томам по номерам (hd0,2), а подключаемый диск оказывается то первым, то вторым. Прибит он потому, что определение корня прописано так:
Цитироватьset root='(hd0,2)'
search --no-floppy --fs-uuid --set f6b63eb0-53cb-435e-a4db-2cb232dcbe30
Я залез на арчевское вики, нашел там следующее:
ЦитироватьПостоянное наименование устройств

Чтобы просмотреть UUIDs, наберите:

# blkid

Замените линию root следующей:

linux /vmlinuz26 root=/dev/disk/by-uuid/<UUID> ro

Тем не менее, вы ещё должны установить упоминание о Grub2's в раздел root. Чтобы сделать это, используйте команду search:

search --fs-uuid <UUID> --set root


Пример содержимого загрузочной записи, использующей Постоянное наименование устройств будет выглядеть так:

menuentry "Arch Linux" {
    search --fs-uuid 355ccb5c-99e1-400d-b612-451f9247e35e --set root
    linux /boot/vmlinuz26 root=/dev/disk/by-uuid/355ccb5c-99e1-400d-b612-451f9247e35e ro
    initrd /boot/kernel26.img
}
Некоторые отличия бросаются в глаза сразу. Поменял 'search --no-floppy --fs-uuid --set f6b63eb0-53cb-435e-a4db-2cb232dcbe30' на 'search --no-floppy --fs-uuid f6b63eb0-53cb-435e-a4db-2cb232dcbe30 --set root' - заработало.
Вроде файл /usr/lib/grub/grub-mkconfig_lib из убунтовских пакетов идёт, но что-то не вижу в гугле криков по этому поводу. У кого убунта, гляньте к Вашему grub-mkconfig_lib такой патч подходит?

[вложение удалено Администратором]

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра

dr.Faust

И как, прошу прощения, это глянуть?
Свобода информации - свобода личности!

prof-alex

О как-то не подумал. Нужно найти /usr/lib/grub/grub-mkconfig_lib, скопировать его куда-нибудь в "хомяк". Положить рядом grub-mkconfig_lib.patch.txt, и выполнить: patch -p0 --dry-run < grub-mkconfig_lib.patch.txt Он не должен ругаться на то, что патч не прикладывается.

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра

dr.Faust

Цитата: prof-alex от 30 мая 2010, 17:18О как-то не подумал. Нужно найти /usr/lib/grub/grub-mkconfig_lib, скопировать его куда-нибудь в "хомяк"...
Ой лениво...
Глянул глазами - приложится - куда денется:
Цитировать...тут чё-то...
 if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
   echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
 fi
...тут чё-то...

P.S.
А это такой механизм делать дельты текстовых файлов?
Прикольно.
Свобода информации - свобода личности!

prof-alex

Цитата: dr.Faust от 30 мая 2010, 21:00
А это такой механизм делать дельты текстовых файлов?
Прикольно.
Блин, это же unix! Операционка в которой есть уже всё, и написано оно очень давно:
ЦитироватьИнструменты GNU                         1993-09-22                                 DIFF(1)
Так что дельты файлов - это попытка адаптировать diff к бинарным файлам.

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра