Очень мне нравится данный загрузчик, работает как часы и еще мощно конфигурируется. Но вот недавно столкнулся с одним нюансом, о котором и хочу рассказать.
Предистория.
В моей системе используется один жесткий диск (sda1), который полностью отдан во владение Kubuntu 7.10. И вот на днях, возникла необходимость установить Windows-XP на отдельный жесткий диск.
Отключив свой жесткий диск с Kubuntu, и подключив диск для Windows как второй SATA была произведена установка системы, после чего первый винт был возвращен на свое место. Но при загрузке второй операционки, возникли реальные трудности.
Теперь задача - добиться загрузки обоих систем выбором соответствующего пункта из загрузчика.
Параметры Grub.
Основные параметры загрузчика задаются в файлах menu.lst и device.map, которые находятся в директори /boot/grub/.
В Kubuntu, по-умолчанию, файл device.map выглядит так:(hd0) /dev/sdaа строки загрузки в menu.lst - вот так (с сокращенной строкой root=UUID):title Ubuntu 7.10, kernel 2.6.22-14-genericНу а теперь о тех изменения, которые пришлось внести в конфигурационные файлы загрузчика Grub.
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=... ro quiet splash locale=ru_RU
initrd /boot/initrd.img-2.6.22-14-generic
quiet
title Ubuntu 7.10, kernel 2.6.22-14-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=... ro single
initrd /boot/initrd.img-2.6.22-14-generic
title Ubuntu 7.10, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
quiet
Шаг 1.
Создаем, а точнее добавляем появившийся диск в "карту" загрузчика. Для этого в файле /boot/grub/device.map добавляем строку того устройства, который подключили. В моем случае выглядит так:(hd0) /dev/sdaКак я понимаю, цифра после слова hd показывает порядковое состояние винта по контроллерам. Т.е. получается что для SATA-дисков будет такая нумерация:
(hd1) /dev/sdb
Ну а для IDE-дисков соответственно:
и так далее..
Шаг 2.
Тут необходимо учитывать, что Windows "желает" грузиться только с первого диска. А так как он реально находится на втором HDD, то его необходимо "обмануть". Делается это командой map. С ее помощью можно отобразить hd0 как hd1 и hd1 как hd0 - иначе, можно виртуально переставлять жесткие диски.
В итоге, добавленные строки дополнительного пункта меню для загрузки еще одной операционки в файл /boot/grub/menu.lst выглядят так:title Windows-XPВот и все! Все грузится, все работает.
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader +1
:-)
Заключение.
Полезные ссылки, которые помогли решению данного вопроса:
10 Апрель 2008
Настройка Grub для второго HDD.
Автор:
SIR
на
9:20
Ярлыки: Загрузчик GRUB, СИСТЕМА -
Подписаться на:
Комментарии к сообщению (Atom)




10 коммент.:
Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Placa de Vídeo, I hope you enjoy. The address is http://placa-de-video.blogspot.com. A hug.
Спасибо за информацию, очень помогло.
:-)
menu.lst немогу открыть для изменения блокнотом. У меня загрузчик читает hd1.0 вместо нужного hd0.1 и все время приходится при загрузке вручную менять, но почемуто не сохраняет. Я бы хотел поправить но вот такая проблема, прошу помощи. Думаю, что прав у меня недостаточно для изменения, попробую под root зайти.
2 piod:
Конечно же права root-а здесь нужны без вариантов. К примеру в (K)Ubuntu я бы редактировал в консоли так (как вариант):
$ sudo nano /boot/grub/menu.lst
..а в Debian-е так:
$ su-
# nano /boot/grub/menu.lst
Вместо nano можно ваш любимый редактор..
:)
Прикольная вещь оказывается.
Куда пропал Автор? почему нет новых постов уже пол года?
Очень надеюсь возобновить активность блога с Новогодних праздников. Написать есть о чем..
Спасибо за статью про Grub. Жаль, что вы блог свой забросили =(
гы)
Отправить комментарий