LINUX.ORG.RU

grub, ntloader, дуалбут


0

1

Есть винда на sda1(hda1) и линукс на sdb(hdb), корень на sdb3, /boot на sdb1. Диски IDE.
Обе системы по отдельности грузятся из своих загрузчиков,
если в биосе выставить приоритет загрузки с того или иного диска.

Не получается настроить тот или иной загрузчик так, чтобы из него грузить обе системы.
В ntloader пробовал подставлять бутсектор с sdb, не идет загрузка линукса.
В grub вот такое, тоже винду не грузит.
default=0
timeout=20
splashimage=(hd0,0)/grub/splash.xpm.gz
title Fedora (2.6.35.13-92.fc14.i686)
root (hd0,0)
kernel /vmlinuz-2.6.35.13-92.fc14.i686 ro root=UUID=71691abb-dafe-47d3-be12-046d73b3d6d6 rd_NO_LUKS rd_NO_LVM rd_NO_M
D rd_NO_DM LANG=ru_RU.UTF-8 KEYBOARDTYPE=pc KEYTABLE=ru rhgb quiet
initrd /initramfs-2.6.35.13-92.fc14.i686.img
title os1
root (hd0,1)
rootnoveryfy
makeactive
chainloader +1

Подтолкните на правильный путь.
update-grub - отсутствует, os-prober установил, ничего нового.

★★★★★

Последнее исправление: ansky (всего исправлений: 1)

А что получается вместо ожидаемой загрузки GRUB/Windows? Зависание/чёрный экран?

Попробуйте:
title os1
rootnoverify (hd0,0)
makeactive
chainloader +1

AITap ★★★★★
()

Забекапте mbr с ntloader, затем установите на этот ЖД grub, скопируйте mbr с grub, затем верните mbr с ntldr и пропишите скопированный mbr с grub в ntldr.

kostik87 ★★★★★
()

Венда хочет грузиться с (hd0) всегда. Поэтому когда граб грузится с /dev/sdb, он становится первым в BIOS. Лучше поставить grub на /dev/sda, но можно и в этой ситуации использовать команду граба map, чтобы поменять местами винты при загрузке венды.

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

Я знаю, что загрузчик Windows, так же как и MS-DOS состоит из двух частей, первая часть по своей сути не менялась от первых реализаций MS-DOS и представляет собой код, который находит активный раздел, загружает с него загрузчик и передаёт на него управление, когда я описывал то что предлагаю я опустил эти подробности и писал абстрактно с использованием терминов, которые использовал ТС., но сути предложенного мной способа это не меняет. Если тс хочет вызыать grub из ntldr, то grub должен стоять на том же ЖД, с которого происходит загрузка, иначе ТС нужно грузится с другого ЖД, где стоит grub, используя переназначение активного ЖД

map hd0 hd1
map hd1 hd0

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

>иначе ТС нужно грузится с другого ЖД, где стоит grub, используя переназначение активного ЖД

Не нужно. Можно просто поставить grub на /dev/sda и не парить никому мозг. Загрузчик из MBR, который тупо чейнлоадит загрузчик из раздела, не нужен. К тому же уже предложенный мной ранее map не всегда работал у меня (примеры не приведу, давно было).

gentoo_root ★★★★★
()

Спасибо всем. С вашей помощью, с помощью курения доков, с помощью кирки,
лопаты, какой-то матери и метода научного тыка справился.

В итоге: линуксовый диск поставил на sda, виндовый на sdb. grub.conf выглядит так:
default=0
title Fedora (2.6.35.13-92.fc14.i686)
root (hd0,0)
kernel /vmlinuz-2.6.35.13-92.fc14.i686 ro root=UUID=71691abb-dafe-47d3-be12-046d73b3d6d6 rd_NO_LUKS rd_NO_LVM rd_NO_M
D rd_NO_DM LANG=ru_RU.UTF-8 KEYBOARDTYPE=pc KEYTABLE=ru rhgb quiet
initrd /initramfs-2.6.35.13-92.fc14.i686.img
title Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

Что важно:
«map (hd0) (hd1)» - скобочки здесь обязательны.
«rootnoverify (hd1,0)» - здесь наверное можно и «root (hd1,0)», но обязательно "(hd1,0)".
Вроде как, на этот момент map еще не сработали, поэтому диск hd1, а не hd0.

Я не хотел ставить груб на виндовый диск,
чтобы была возможность в любом случае снять один из дисков и грузиться с любого оставшегося.

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