LINUX.ORG.RU

Загрузчик, понимающий UUID — есть?


0

0

...А то я воткнул еще один винчестер, и пипец, карасики — GRUB всплыл кверху брюхом, Error 22 и все такое. Потому что MBR-то нашелся, а остальной код он пошел искать на другом носителе, так как BIOS взял и все перенумеровал.

Хочу, чтобы можно было привязать загрузчик еще с MBR по UUID, или чтобы он хоть как-то раздуплял, с какого именно диска загружен выполняемый MBR.

★★★★★

ну так как раз grub и понимает (включая и legacy, и grub2)

вот пример для legacy

title		2.6.28.10
uuid		0b4675b4-968f-4116-aad2-b79425xxxxxx
kernel		/vmlinuz-2.6.28.10 root=/dev/disk/by-uuid/e11b5609-b5c8-49ca-9239-79539ayyyyyy acpi_osi=Linux vga=792 ro quiet
initrd		/initrd.img-2.6.28.10

вот для grub2

menuentry "2.6.28.10" {
	search --no-floppy --fs-uuid --set 0b4675b4-968f-4116-aad2-b79425xxxxxx
	insmod	vbe
	set	gfxpayload=1024x768x32
	linux	/vmlinuz-2.6.28.10 root=UUID=e11b5609-b5c8-49ca-9239-79539ayyyyyy ro  acpi_osi=Linux quiet
	initrd	/initrd.img-2.6.28.10
}
pupok ★★
()
Ответ на: комментарий от pupok

Следующий постер прав — у меня не стартует GRUB. Если включить IDE-режим в биосе, то стартует, если AHCI — нет. Не то чтобы для линюкса была разница, AHCI он сам включает, но я еще и хакинтош хочу организовать рядышком, а он этого и не умеет.

shimon ★★★★★
() автор топика

Думаю проблематично запихать поддержку UUID в 440 байт кода.

Могу предложить следующий костыль (сам не пробовал): в начале _каждого_ диска делать небольшой boot-раздел, причём на всех дисках он должен быть одинакового размера. Потом объединить эти boot-разделы в программный RAID1 и залить туда содержимое /boot. Тогда по идее груб загрузится в любом случае, независимо от наличия/отсутствия конкретных дисков и того, в каком порядке их видит БИОС.

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

Можно и без RAID1, но тогда содержимое /boot будет сложнее обновлять из-за необходимости копировать одно и то же на все разделы.

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

> Могу предложить следующий костыль (сам не пробовал): в начале _каждого_ диска делать небольшой boot-раздел, причём на всех дисках он должен быть одинакового размера.

Хм!.. Как тот батюшка говорил: что грех и невелик, но мудрость какова!..

Это может и сработать.

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

>> Могу предложить следующий костыль (сам не пробовал): в начале _каждого_ диска делать небольшой boot-раздел, причём на всех дисках он должен быть одинакового размера.

> Это может и сработать.

нет, это работать не будет. У тебя не грузится stage1.5 которая живёт в секторах 1-62 http://en.wikipedia.org/wiki/GNU_GRUB#Boot_process , это "неразмеченная область" и ни в какой /boot раздел она не входит. Эта stage1.5 живёт в отдельной размеченной области с персональным UUID/GUID только если у тебя не MBR а GPT. Можешь попробовать поставить GPT http://www.linux.org.ru/view-message.jsp?msgid=4117349 , но радикальный способ -- это конечно обновить BIOS на менее глючный.

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

нет, это работать не будет. У тебя не грузится stage1.5 которая живёт в секторах 1-62 http://en.wikipedia.org/wiki/GNU_GRUB#Boot_process , это «неразмеченная область» и ни в какой /boot раздел она не входит. Эта stage1.5 живёт в отдельной размеченной области с персональным UUID/GUID только если у тебя не MBR а GPT.

Да, про механизм работы GRUB'а в деталях я не знал, так что так как я сказал - действительно работать не будет. Но можно установить stage1.5 опять таки на все диски. Если не ошибаюсь, именно так делается, когда boot-раздел расположен на программном RAID1, и нужно обеспечить возможность загрузки, когда один из дисков отсутствует.

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