мирное сожительство Ubuntu, Windows и FreeBSD с GRUB2(совет от тов. BallRocK по результатам долгих совместных ковыряний)здесь мы рассмотрим, как правильно установить на один жесткий диск Windows, FreeBSD и Ubuntu, а также наладить их загрузку через grub2.
первое и главное правило: не создавайте BSD-разделы через установщик FreeBSD!
вместо этого разделы мы будем создавать через fdisk. загружаемся с liveCD Ubuntu 9.10 и запускаем fdisk для жесткого диска, на который будет производится установка (узнать его можно с помощью "sudo fdisk -l", в нашем примере это /dev/sda)
sudo fdisk /dev/sda
Создаем разделы. Если разделы уже есть, советую забэкапиться, а потом удалять их (сделаеть это можно командой d, после чего он спросит номер раздела). Приведенный ниже пример илюстрирует создание разделов для 3-х операционных систем: windows 7, FreeBSD 8.0, Ubuntu 9.10. При этом на FreeBSD планируется использоваться файловую систему ZFS
в строке
Команда (m для справки):
вводим "n" для создания нового раздела
программа спросит, какой тип раздела использовать - первичный (primary) или расширенный (extended). выбираем первичный, введя "p"
(сейчас мы создаем раздел для Windows. Его не обязательно делать первым, если Windows лицензионный. Главное чтобы он был primary)
fdisk запросит номер раздела - выбираем "1"
Номер раздела (1-4): 1
в следующем пункте оставляем значение по умолчанию, просто нажав Enter:
Первый цилиндр (1-24321, по умолчанию 1): 1
далее видим строку вида
Last цилиндр, +цилиндры or +size{K,M,G} (1-24321, по умолчанию 24321):
нас просят задать объем создаваемого раздела. для создания раздела в 60 гигабайт укажем "+60G"
теперь нам нужно указать тип свежесозданного раздела.
(указав тип, мы не создаем файловую систему, и при установке ОС раздел нужно будет отформатировать, но тип нужно обязательно указывать для того, чтобы при установке система правильно опознала раздел, а не предложила заново разметить диск!)для задания типа раздела используется команда "t"
Команда (m для справки): t
выберите раздел "1". далее программа запросит тип раздела (тип задается шестнадцатеричным кодом, список кодов можно посмотреть, введя "L"). для NTFS-раздела укажите "7"
Шестнадцатеричный код (введите L для получения списка кодов): 7
программа выдаст сообщение об успешном завершении операции
Системный тип раздела 1 изменен на 7 (HPFS/NTFS)
теперь аналогичным образом создадим раздел для FreeBSD. здесь создадим так называемый "слайс", разделы внутри него будут созданы уже при установке FreeBSD. для создания нового раздела используем команду "n". в качестве типа раздела выбираем primary, введя "p"
(для установки FreeBSD раздел обязательно должен являться первичным!). в качестве номера раздела указываем "2". увидев следующий запрос:
Первый цилиндр (7835-24321, по умолчанию 7835):
просто нажимаем Enter. fdisk создаст новый раздел сразу после предыдущего. далее укажем размер создаваемого раздела (в примере ниже - 4608 мегабайт)
Last цилиндр, +цилиндры or +size{K,M,G} (7835-24321, по умолчанию 24321): +4608M
(первый слайс будет содержать всего 2 партиции: / равный 512m и swap 4096m так как у меня 2 гигабайта оперативной памяти. Создается всего две партиции, т.к. для ZFS нужно выделять полностью слайс, иначе воспользоваться ей не получится)
теперь зададим тип свежесозданного раздела, для чего введем команду "t". выберем 2-й раздел, указав номер "2". в качестве типа раздела для BSD-слайса нужно указать "a5".
Шестнадцатеричный код (введите L для получения списка кодов): a5
если все успешно, видим сообщение
Системный тип раздела 2 изменен на a5 (FreeBSD)
по аналогии с вышеописанным создадим BSD-слайс для ZFS. создадим новый раздел командой "n". выберем тип primary ("p") и номер раздела "3". номер первого цилиндра оставим по умолчанию, нажав Enter. зададим размер раздела (в нашем случае 55 гигабайт):
Last цилиндр, +цилиндры or +size{K,M,G} (8423-24321, по умолчанию 24321): +55G
установим тип раздела. выполнив команду "t", выберем третий раздел. в качестве типа раздела снова укажем "a5"
теперь все готово, можно применить изменения и выйти. для этого вводим "w".
для Ubuntu разделы можно сейчас не размечать. при установке она с этой задачей справится, придется только ставить в расширеный раздел ее.
в первую очередь нужно устанавливать Windows, а дальше разницы нет.
при установке FreeBSD
не изменяйте слайсы, а только создайте нужные разделы внутри них! также не устанавливайте BSD-загрузчик.
после установки всех систем остается добавить пункт загрузки FreeBSD в меню grub2. для этого добавим в "/etc/grub.d/40_custom" следующую запись:
menuentry "FreeBSD 8.0" {
set root=(hd0,1,a)
chainloader +1
}
вместо "(hd0,1,a)" укажите ваш раздел, на котором установлена FreeBSD. кроме того, после строки с "set root" рекомендуется добавить еще такую строку:
search -u uuid_раздела -n -s
где "uuid_раздела" - UUID раздела с FreeBSD
убедитесь, что ваш "40_custom" заканчивается пустой строкой, сохраните файл и выполните
sudo update-grub
теперь в меню grub2 будут все три установленные системы.
подробнее о grub2 читайте
здесь