
grub + gpt + freebsd zfs root
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- dvg_lab
- сержант
- Сообщения: 291
- Зарегистрирован: 2007-07-02 22:51:25
- Откуда: Москва
grub + gpt + freebsd zfs root
имеется разметка диска в GPT, корень на ZFS и желание грузить фрю через GRUB, у когонить получился такой финт ушами? Известно что официальный grub не поддерживает zfs, только в версии от opensolaris но я как-то с опенсолярисом не дружу (может зря?) получается единственный способ загрузиться через grub это использовать chainloader, но как тоже не ясно потому что и бутлоадер от фри становится в mbr и grub тоже становится в mbr. Как бы их подружить? Нужна и фря на ноуте и убунта. 

FreeBSD the power to serve.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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
- Контактная информация:
- f_andrey
- майор
- Сообщения: 2651
- Зарегистрирован: 2007-12-26 1:22:58
- Откуда: СПб
- Контактная информация:
Re: grub + gpt + freebsd zfs root
Зачем в этой связке 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
Лис а как быть если есть ZFS на Фри, и нужна вторая ось кого использовать в качестве загрузчика?Alex Keda писал(а):ф топку гробы ваши
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Alex Keda
- стреляли...
- Сообщения: 35439
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
Не согласен... Если винт один... Если это новт...Alex Keda писал(а):1 ОС - 1 диск
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Alex Keda
- стреляли...
- Сообщения: 35439
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
интерсно...Alex Keda писал(а):виртуалбокс юзайте
Это-же не наши методы!
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- проходил мимо
Re: grub + gpt + freebsd zfs root
Почему?fox писал(а):интерсно...Alex Keda писал(а):виртуалбокс юзайте
Это-же не наши методы!
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- manefesto
- Группенфюррер
- Сообщения: 6934
- Зарегистрирован: 2007-07-20 8:27:30
- Откуда: Пермь
- Контактная информация:
Re: grub + gpt + freebsd zfs root
вторая ось не нужна...
хотя у меня их на десктопе две
хотя у меня их на десктопе две
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
Ну что за однозначность такая...manefesto писал(а):вторая ось не нужна...
хотя у меня их на десктопе две
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- проходил мимо
Re: grub + gpt + freebsd zfs root
Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надоfox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!

- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
Ну так вот как достичь загрузчика без MBR?Гость писал(а):Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надоfox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- сержант
- Сообщения: 258
- Зарегистрирован: 2009-10-31 22:13:04
- Контактная информация:
Re: grub + gpt + freebsd zfs root
можно погугли.fox писал(а):Ну так вот как достичь загрузчика без MBR?Гость писал(а):Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надоfox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Я когдато линь из окон грузил.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
максимум что я находил так это grub2Dark_ASU писал(а):можно погугли.fox писал(а):Ну так вот как достичь загрузчика без MBR?Гость писал(а):Каждому своё! У мну сразу 2 системы в работе на 3-х дисках , а вам перегружаться надоfox писал(а):Потому, что не наши! Ну зачем расхот ресурсов на виртуалку когда можно на тот же винт вторую ось и получить полноценную ось!
Я когдато линь из окон грузил.
и тоже не вариант манов ненашёл...
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- сержант
- Сообщения: 258
- Зарегистрирован: 2009-10-31 22:13:04
- Контактная информация:
Re: grub + gpt + freebsd zfs root
там создается сжатый образ загрузчика. Который из батника грузится в оперативу и там разворачивается. Далее он считывает секцию мбр переходит по указаному образу и загружает то что есть. В принципе так можно грузить что угодно и от куда угодно.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: grub + gpt + freebsd zfs root
Да, но речь идёт о GPT а не MBR!Dark_ASU писал(а):там создается сжатый образ загрузчика. Который из батника грузится в оперативу и там разворачивается. Далее он считывает секцию мбр переходит по указаному образу и загружает то что есть. В принципе так можно грузить что угодно и от куда угодно.
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- проходил мимо
Re: grub + gpt + freebsd zfs root
Да, zfs v6 и v28. А есть какие-то трудности помимо глюкалово^Wавтоопределения FS в grub-probe? Создавай (grub-mkimage) и заливай (grub-setup) образ вручную. Напр.dvg_lab писал(а):имеется разметка диска в GPT, корень на ZFS и желание грузить фрю через GRUB, у когонить получился такой финт ушами?
http://forums.freebsd.org/showthread.php?t=20718
уже несколько месяцев поддерживает. Бери grub2 из bazaar репозитория.dvg_lab писал(а):Известно что официальный grub не поддерживает zfs,
-
- сержант
- Сообщения: 258
- Зарегистрирован: 2009-10-31 22:13:04
- Контактная информация:
Re: grub + gpt + freebsd zfs root
да какая разница что считывать задай правильно сектора с каких начинать читать и все
-
- проходил мимо
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2011-03-06 15:51:58
Re: grub + gpt + freebsd zfs root
скомпилировать его (grub2 из репозитария) таки удалось на FreeBSD Current (не совсем красиво, но что важно - система грузится нормально из рутового раздела на zfs v28. Что ещё примечательного: gpt +hybrid partitions. Нормально грузятся системы как с GPT, так и с "гибридизированного" раздела)M1cRO писал(а):http://m1cr0.blogspot.com/2011/02/grub2 ... buntu.html
сделал так, всё ок
подробности компиляции (если кому интересно) здесь: 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
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2011-03-06 15:51:58
Re: grub + gpt + freebsd zfs root
наконец-то настали выходные и выпало время разобраться. В принципе всё весьма логично. Отпишу здесь, может кому пригодится и сэкономит время...devel писал(а): НО:
пока не понятно как грузить систему без вот этого вот:не то чтобы я против такого способа (ведь он работает)... но имхо незачем grub'у знать столько интимных подробностей... лучше бы просто пнуть загрузчик, и пусть он сам уже отрабатывает, при этом правильно отработав всё, что в loader.conf прописаноКод: Выделить всё
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
Итак, задача была позволить 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
Код: Выделить всё
menuentry "FreeBSD" --class freebsd --class bsd --class os {
chainloader /@/boot/pmbr
}
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