iLenta

Как установить FreeBSD на диск с загрузкой grub2

27 апреля 2014, 21:58 |
Тема возникла неожиданно. Обсуждая недостатки и плюсы Linux и BSD-шных систем, столкнулся с утверждением пользователей последних, BSD в принципе невозможно установить на логические диски.

Известно, что стандартная разбивка диска дает возможность сделать 4 основных (primary) раздела и логических подразделения. Это так называемое MBR разбиения, прекрасно описано в вики. Именно такое разбиение и было у меня, три основных раздела и расширенний (extended), разбит на несколько логических разделов, где стоит Archlinux, Salix, и на одном из них хотелось установить BSD систему:

Пробы в VirtualBox показали, что действительно, PC- BSD, FreeBSD и OpenBSD не давали возможности установки на логические разделы, а требовали полного разбиения целого диска своей схеме, или установка только на основной раздел. В конце концов я остановился на FreeBSD в качестве тестовой системы. Два дня чтения документации, пробы с различными дисками и версиями дали свой результат. Я не специалист, но конечный результат является результатом. Более подробные интсрукции и всевозможную информацию вы сможете найти на freebsd форуме.

Чтение документации о FreeBSD показало, что действительно, ничего не поделаешь, надо устанавливать на основной раздел. Однако еще существует режим, названный Fixit, в котором можно поменять корневую папку / на другую. И еще надо, чтобы перед этим система была загружена с livefs. К сожалению, почему-то после версии 8.4 образы livefs перестали выпускать. Что, соответственно, растянуло процедуру установки последней версии FreeBSD. Вся процедура выглядела следующим образом.

1. Выделение одного логического диска для этих целей. В моем случае это был диск sda9.

2. Загрузка LiveFS 8.4 FreeBSD. Мне не удалось запустить Fixit при загрузке этого диска с флешки (через Unetbootin ), ни с Grub2, поэтому я просто выпалил диск DVD и загружал из него.

3. Когда запустится sysinstall (прога установки FreeBSD), выбрать там Fixit - > CDROM / DVD. Это опрокинет в режим командной строки.

4. Запустить ls / dev / . Задача - найти раздел, который назначен для FreeBSD. Поскольку FreBSD это не Linux, нумерация отличается, поэтому главное не ошибиться. Искать надо что-то с ad, в моем случае это был раздел ad4s9.

5. Сформатировать раздел в UFS2: newfs - U / dev/ad4s9

6. Смонтировать раздел. Я его монтировал просто в / mnt : mount / dev/ad4s9 / mnt

7. Теперь надо поменять папку установки. Для этого выходим из режима Fixit с помощью команды exit. Опять загрузится меню sysinstall. Переходим к Configure - > Options - > Install Root, жмем клавишу пробела и вписываем в окошке / mnt . Жмем q (выход), возвращаемся к меню, идем теперь к Distributions. Надо выбрать base и kernel (GENERIC).

8. Устанавливаем систему. Она установится в / mnt . Далее следует снова вернуться в Fixit и проделать некоторые правки.

9. Mv / mnt / boot / GENERIC / mnt / boot / kernel ( переносим ядро в правильное место)

10. Ee / mnt / etc / fstab ( правим fstab ) и вписываем строку: / dev/ad4s9 / ufs rw 0 0

Записываем , выходим.

11. Мне не удалось установить пароль суперпользователя через sysinstall, поэтому пришлось устанавливать его через chroot в режиме Fixit :  / mnt / usr / sbin / chroot / mnt / usr / bin / passwd root

12. Это практически все. Имеем систему и суперпользователя. Теперь как ее запустить ? Я перезапустил Linux , и отредактировал файл / etc/grub.d/40_custom следующим:

menuentry " FreeBSD " {
    insmod ufs2
    insmod part_gpt
    set root = ' ( hd0 , msdos9 ) '
# Search - no - floppy - fs - uuid - set 4c65971a375a3875
    kfreebsd / boot / kernel / kernel
    kfreebsd_loadenv / boot / device.hints
    set kFreeBSD.vfs.root.mountfrom = ufs :/ dev/ad4s9
    set kFreeBSD.vfs.root.mountfrom.options = rw
}

Обновление конфигурация Grub2 и вуаля — первый запуск FreeBSD ушел.

Далее настройка интернета, обновление до 9.2, а потом уже до 10.0.