[О блоге] [наверх] [пред] [2016-02-21 20:30:58+03:00] [29be6f2d41c7a6cc0c738c7b73afbd604f9b977f]
Темы: [bsd][tip]

Простота установки FreeBSD и её загрузчика

Если нужно установить GNU/Linux с самого нуля, то наиболее неприятная
вещь в течении многих лет была всегда возня с загрузчиком GRUB. Это
монстр который много чего умеет, но из-за этого с ним очень сложно
работать. Это всегда прохождение через муки ада.

Сама по себе установки например Debian based-систем с одной стороны не
очень сложная. debootstrap на примонтированную ФС и дальше chroot-ом
устанавливаем пакеты. Но надо соблюдать и понимать что версии
debootstrap могут ощутимо отличаться от того что он может делать с
предоставляемыми пакетами. Плюс надо поднимать как-то или предоставлять
локальное зеркало пакетов.

Установка FreeBSD дело настолько простое, что я полностью перестал
использовать установку через curses менюшки. Установка заключается
просто в for i in /usr/freebsd-dist/*.txz; do tar xfC $i /path/to/root;
done. Где *.txz это части системы типа kernel.txz, base.txz, lib32.txz,
games.txz, src.txz, итд.

После распаковки системы она в состоянии загрузиться и работать. Обычно
нужно настроить /etc/rc.conf (хотя бы добавить hostname), tzsetup для
установки часового пояса, passwd для установки пароля root. На этом всё.

Установить загрузчик тоже оказалось делом простым. Как минимум вся
документация по этому вопросу есть в man-ах и есть прям явно прописанные
example-ы.

Если мне надо сделать GPT разбитый жёсткий диск, создать на нём раздел
для корня ZFS и установить загрузчик:

    # gpart create -s GPT ada0
    # gpart add -t freebsd-boot -s 512K ada0
    # gpart add -t freebsd-zfs ada0
    # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0

Тут обнаружилось что мой ноутбук не умеет загружаться с GPT дисков.
Хотел было сделать MBR, но оказалось что можно просто на нём создать ZFS
без разделов и при этом можно поставить загрузчик. ZFS имеет пустые
места в своей структуре для того чтобы можно было прописать загрузчик.

    # zpool create zroot /dev/ada0
    # dd if=/boot/zfsboot of=/dev/ada0 count=1
    # dd if=/boot/zfsboot of=/dev/ada0 iseek=1 oseek=1024

И реально после этого оно успешно загружается и работает!

    [оставить комментарий]