PXE загрузка в принципе довольно простой, и эффективный способ, и вроде все срабатывает, но что то ядро не грузится, загрузчик стаскивается по tftp а вот на ядро ему как то силенок не хватает, и ведь ладно бы первый раз делал, ан нет уже даже писал о успешном восстановлении системы после сбоя диска, а вот теперь никак, видать новый год и работать нельзя :)
Зато еше раз потренировался в изготовлении FreeBSD on tfe flesh, и после этого даже как то странно видеть такой вал народа с поисковыми запросами по установке FreeBSD на флешку, процесс в принципе сейчас ни фига не сложен, правда в моем случае я еше применил новую схему разметки основанную на GEOM, с помошью gpart. В принципе с ее же помошью собираюсь, и пробую инсталить и десктоп но пока что то там прогресс идет хреновенько но все таки ZFS raid с прямой загрузкой, это не так уж просто поэтому полон энтузиазма.
Мой рецепт приготовления флешки с FreeBSD на борту, за основу взят рецепт Warner Losh но немного модернизирован под более новые средства и свои задачи.
- make buildworld
- make buildkernel KERNCONF=MY
- Gpart (смотри далее по тексту)
- newfs /dev/da0p2
- mount /dev/da0p2 /mnt
- make installworld DESTDIR=/mnt
- make installkernel DESTDIR=/mnt KERNCONF=MY
- make distrib-dirs DESTDIR=/mnt
- make distribution DESTDIR=/mnt
- echo /dev/da0p2 / ufs ro 1 1 > /mnt/etc/fstab
- echo ifconfig_DEFAULT=DHCP > /mnt/etc/rc.conf
- echo hostname=demo >> /mnt/etc/rc.conf
Обещанный пример употребления Gpart, если кто не в курсе то это утилита претендующая на то что бы занять место, fdisk, и bsdlabel заодно, ну и может ещё чего, и сулящая нам избавления от пережитков начала компьютерной эры в виде MBR, ограничений на число разделов, и прочие пакости.
test# gpart create -s GPT da0Первой тройкой команд, на свежей не размеченной флешке я создал, схему GPT потом записал bootcode для того чтоб системы понимающие mbr тоже могли работать с флешкой, ну и третья команда показывает что вышло.
da0 created
test# gpart bootcode -b /boot/pmbr da0
da0 has bootcode
test# gpart show da0
=> 34 3905340 da0 GPT (1.9G)
34 3905340 - free - (1.9G)
test# gpart add -b 34 -s 2000000 -t freebsd-ufs da0Потом для примера создал пару разделов примерно по Gb каждый, как видно делается это просто, и отображается весьма наглядно, есть только одна неприятность размер надо задавать в секторах, что не всегда наглядно, надо будет или подумать об автоматизации процесса, но думаю что это детская болезнь утилиты, а может просто фича.
da0p1 added
test# gpart show da0
=> 34 3905340 da0 GPT (1.9G)
34 2000000 1 freebsd-ufs (977M)
2000034 1905340 - free - (930M)
test# gpart add -b 2000034 -s 1905340 -t freebsd-ufs da0
da0p2 added
test# gpart show da0
=> 34 3905340 da0 GPT (1.9G)
34 2000000 1 freebsd-ufs (977M)
2000034 1905340 2 freebsd-ufs (930M)
Так как теперь мы не связаны тесными рамками MBR то можно создавать специализированные загрузочные разделы, вот так
test# gpart add -b 34 -s 128 -t freebsd-boot da0И соответственно писать в них всякие хитрые загрузчики, например для загрузки с самой схемы GPT , ну или zfsboot, для прямой загрузки с ZFS раздела. Размер такого раздела в принципе может быть произвольным, но в man написано что 64Кб пока хватит :)
da0p1 added
test# gpart show da0
=> 34 3905340 da0 GPT (1.9G)
34 128 1 freebsd-boot (64K)
162 3905212 - free - (1.9G)
test# gpart bootcode -p /boot/gptboot -i 1 ad0
Удаление разделов происходит так же изящно
test# gpart delete -i 3 da0Перед удалением схемы GPT надо удалить все разделы.
da0p3 deleted
test# gpart destroy da0
Вот такая прекрасная утилитка появилась и развивается с версии 7.0 если кто не в курсе, конечно пока сыровата, и не совсем полна функциональностью, но по моему у нее не плохие шансы что бы стать стандартом, и облегчить нам жизнь :)
Во вспомнил тут ещё, с ее помощью можно весьма наглядно посмотреть что у вас творится с дисками, вот пример с моего десктопа, когда к нему подрублена флешка, ну и два винта уже размечены под будующий пул ZFS
# gpart showПо моему весьма не плохая функция.
=> 34 1953525101 ad4 GPT (932G)
34 4000000 1 freebsd-swap (1.9G)
4000034 1949525101 2 freebsd-zfs (930G)
=> 34 1953525101 ad6 GPT (932G)
34 4000000 1 freebsd-swap (1.9G)
4000034 1949525101 2 freebsd-zfs (930G)
=> 34 3905340 da0 GPT (1.9G)
34 128 1 freebsd-boot (64K)
162 2000000 2 freebsd-ufs (977M)
2000162 1905212 3 freebsd-ufs (930M)
Hello,
ОтветитьУдалитьSorry for English but my Russian is much worse. Would you be so kind to give me an advice is it possible to be prepared bootable usb stick with installation of Free BSD on it but formatted like super floppy. I know this is an extraordinary question but my BIOS recognizes only emulation of usb super floppy and don't this of usb hdd.
10x in advance.
My English is much worse too :(
ОтветитьУдалитьMayby add boot floppy, or boot of network on pxe
чмок тя ^_^
ОтветитьУдалить