grub + gpt + freebsd zfs root

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
dvg_lab
сержант
Сообщения: 291
Зарегистрирован: 2007-07-02 22:51:25
Откуда: Москва

grub + gpt + freebsd zfs root

Непрочитанное сообщение dvg_lab » 2009-08-22 20:23:05

имеется разметка диска в GPT, корень на ZFS и желание грузить фрю через GRUB, у когонить получился такой финт ушами? Известно что официальный grub не поддерживает zfs, только в версии от opensolaris но я как-то с опенсолярисом не дружу (может зря?) получается единственный способ загрузиться через grub это использовать chainloader, но как тоже не ясно потому что и бутлоадер от фри становится в mbr и grub тоже становится в mbr. Как бы их подружить? Нужна и фря на ноуте и убунта. :(
FreeBSD the power to serve.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Alex Keda » 2009-09-20 20:47:45

ф топку гробы ваши
Убей их всех! Бог потом рассортирует...

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение f_andrey » 2009-09-20 21:42:17

Зачем в этой связке Grub?
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-23 23:11:50

Alex Keda писал(а):ф топку гробы ваши
Лис а как быть если есть ZFS на Фри, и нужна вторая ось кого использовать в качестве загрузчика?
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Alex Keda » 2011-01-24 23:13:48

1 ОС - 1 диск
Убей их всех! Бог потом рассортирует...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-24 23:18:31

Alex Keda писал(а):1 ОС - 1 диск
Не согласен... Если винт один... Если это новт...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Alex Keda » 2011-01-24 23:32:36

виртуалбокс юзайте
Убей их всех! Бог потом рассортирует...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-25 0:03:18

Alex Keda писал(а):виртуалбокс юзайте
интерсно...

Это-же не наши методы!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Гость
проходил мимо

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Гость » 2011-01-25 8:25:29

fox писал(а):
Alex Keda писал(а):виртуалбокс юзайте
интерсно...

Это-же не наши методы!
Почему?

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-25 11:03:55

Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение manefesto » 2011-01-25 12:33:42

вторая ось не нужна...
хотя у меня их на десктопе две
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-25 13:02:24

manefesto писал(а):вторая ось не нужна...
хотя у меня их на десктопе две
Ну что за однозначность такая...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Гость
проходил мимо

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Гость » 2011-01-25 13:19:43

fox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надо :smile:

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-25 18:58:22

Гость писал(а):
fox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надо :smile:
Ну так вот как достичь загрузчика без MBR?
Да пребудет с нами сила!!!
Всех убью, один останусь!

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Dark_ASU » 2011-01-26 0:37:42

fox писал(а):
Гость писал(а):
fox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надо :smile:
Ну так вот как достичь загрузчика без MBR?
можно погугли.
Я когдато линь из окон грузил.

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-26 0:41:30

Dark_ASU писал(а):
fox писал(а):
Гость писал(а):
fox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надо :smile:
Ну так вот как достичь загрузчика без MBR?
можно погугли.
Я когдато линь из окон грузил.
максимум что я находил так это grub2

и тоже не вариант манов ненашёл...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Dark_ASU » 2011-01-26 1:03:44

там создается сжатый образ загрузчика. Который из батника грузится в оперативу и там разворачивается. Далее он считывает секцию мбр переходит по указаному образу и загружает то что есть. В принципе так можно грузить что угодно и от куда угодно.

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение fox » 2011-01-26 1:06:11

Dark_ASU писал(а):там создается сжатый образ загрузчика. Который из батника грузится в оперативу и там разворачивается. Далее он считывает секцию мбр переходит по указаному образу и загружает то что есть. В принципе так можно грузить что угодно и от куда угодно.
Да, но речь идёт о GPT а не MBR!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Гость
проходил мимо

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Гость » 2011-01-26 16:44:47

dvg_lab писал(а):имеется разметка диска в GPT, корень на ZFS и желание грузить фрю через GRUB, у когонить получился такой финт ушами?
Да, zfs v6 и v28. А есть какие-то трудности помимо глюкалово^Wавтоопределения FS в grub-probe? Создавай (grub-mkimage) и заливай (grub-setup) образ вручную. Напр.
http://forums.freebsd.org/showthread.php?t=20718
dvg_lab писал(а):Известно что официальный grub не поддерживает zfs,
уже несколько месяцев поддерживает. Бери grub2 из bazaar репозитория.

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение Dark_ASU » 2011-01-26 23:49:33

да какая разница что считывать задай правильно сектора с каких начинать читать и все


devel
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-03-06 15:51:58

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение devel » 2011-03-08 21:59:00

M1cRO писал(а):http://m1cr0.blogspot.com/2011/02/grub2 ... buntu.html
сделал так, всё ок
скомпилировать его (grub2 из репозитария) таки удалось на FreeBSD Current (не совсем красиво, но что важно - система грузится нормально из рутового раздела на zfs v28. Что ещё примечательного: gpt +hybrid partitions. Нормально грузятся системы как с GPT, так и с "гибридизированного" раздела)
подробности компиляции (если кому интересно) здесь: https://savannah.gnu.org/bugs/?32676#comment3

НО:
пока не понятно как грузить систему без вот этого вот:

Код: Выделить всё

          kfreebsd /@/boot/kernel/kernel
          kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
          kfreebsd_module_elf /@/boot/kernel/zfs.ko
          kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
          set kFreeBSD.vfs.root.mountfrom=zfs:z
не то чтобы я против такого способа (ведь он работает)... но имхо незачем grub'у знать столько интимных подробностей... лучше бы просто пнуть загрузчик, и пусть он сам уже отрабатывает, при этом правильно отработав всё, что в loader.conf прописано

devel
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-03-06 15:51:58

Re: grub + gpt + freebsd zfs root

Непрочитанное сообщение devel » 2011-03-13 0:57:20

devel писал(а): НО:
пока не понятно как грузить систему без вот этого вот:

Код: Выделить всё

          kfreebsd /@/boot/kernel/kernel
          kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
          kfreebsd_module_elf /@/boot/kernel/zfs.ko
          kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
          set kFreeBSD.vfs.root.mountfrom=zfs:z
не то чтобы я против такого способа (ведь он работает)... но имхо незачем grub'у знать столько интимных подробностей... лучше бы просто пнуть загрузчик, и пусть он сам уже отрабатывает, при этом правильно отработав всё, что в loader.conf прописано
наконец-то настали выходные и выпало время разобраться. В принципе всё весьма логично. Отпишу здесь, может кому пригодится и сэкономит время...
Итак, задача была позволить grub2 грузить FreeBSD с корневого раздела на zfs (разметка диска: gpt) и при этом не пользоваться сервисом стандартного лоадера (а не явно в конфиге grub'a дублировать всё необходимое содержимое loader.conf). Задача решается с помощью стандартной фичи grub'a: пнуть альтернативный загрузчик (т.е. воспользоваться chainloader). Для этого нужно:
1) найти альтернативный загрузчик (в нашем случае это pmbr);
2) загрузить его, тем самым передав ему управление.
очевидно, чтобы это сработало, нужен раздел freebsd-boot кула будет записан bootcode (gptzfsboot), так как задача pmbr найти раздел freebsd-boot и загрузить с него bootcode. В моём случае такого раздела не было, пришлось создавать (причём, пришлось потеснить bios-boot диск grub'a... теснить можно ровно настолько, чтобы не "обрезать" инсталлированный туда core.img. в моём случае это было около 70К.).

Код: Выделить всё

#
# исходное состояние
#
[silent@t410][/home/silent]gpart show
=>       34  625142381  ada0  GPT  (298G)
         34        512     1  bios-boot  (256K)
        546  420335454     2  freebsd-zfs  (200G)
  420336000   61432560     3  linux-data  (29G)
  481768560  143373855     4  linux-data  (68G)

#
# выделяем место под freebsd-boot
#
[silent@t410][/home/silent]sudo gpart resize -s 256 -i 1 ada0
ada0p1 resized
[silent@t410][/home/silent]gpart show
=>       34  625142381  ada0  GPT  (298G)
         34        256     1  bios-boot  (128K)
        290        256        - free -  (128K)
        546  420335454     2  freebsd-zfs  (200G)
  420336000   61432560     3  linux-data  (29G)
  481768560  143373855     4  linux-data  (68G)

#
# инициализируем freebsd-boot
#
[silent@t410][/home/silent]sudo gpart add -b 290 -t freebsd-boot ada0
ada0p5 added
[silent@t410][/home/silent]gpart show
=>       34  625142381  ada0  GPT  (298G)
         34        256     1  bios-boot  (128K)
        290        256     5  freebsd-boot  (128K)
        546  420335454     2  freebsd-zfs  (200G)
  420336000   61432560     3  linux-data  (29G)
  481768560  143373855     4  linux-data  (68G)

#
# устанавливаем partition bootcode (он же stage[12])
#
[silent@t410][/home/silent]sudo gpart bootcode -p /boot/gptzfsboot -i 5 ada0
всё, теперь в /boot/grub/grub.conf достаточно такой записи:

Код: Выделить всё

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    chainloader /@/boot/pmbr
}
(конечно же при условии, что core.img уже включает в себя модуль biosdisk, part_gpt, zfs, иначе ничего не будет... так же в load.cfg при создании core.img (с помощью grub-mkimage) были сразу заданы для удобства переменные root и prefix, в моём случае это были '(hd0,gpt2)' и '(hd0,gpt2)/@/boot/grub' соответственно).

PS:
по идее, если есть куда выложить добро grub'a (/boot/grub/*), то для загрузки freebsd с корневого zfs раздела, вовсе необязательна поддержка zfs (врочем grub2 тоже тогда необязателен, можно и старой версией пользоваться с патчами для gpt). Ведь pmbr можно записать куда угодно (например в последний сектор того же bios-boot раздела или даже раздела freebsd-boot.. главное чтобы там было свободно хотя бы 512 байт), потом просто chainloader'у сказать что-то вроде:

Код: Выделить всё

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    chainloader (hd0,gpt1)N+1
}
# где N - номер блока в разделе, куда был записан pmbr