Меню Рубрики

Установка bsd на флешку

Ручная установка FreeBSD на USB flash или HDD

Данная статья подойдет как для ручной установки FreeBSD 10 на жесткий диск в целях повышения собственного skill, так и для ручной установки FreeBSD на USB flash накопитель, либо на любой другой накопитель, на который невозможно установить систему стандартными средствами.

Установочный образ диска или USB-стика можно скачать на FTP-серверах FreeBSD. Для записи образа на USB-стик воспользуйтесь приложением Win32DiskImager.

Установка системы

Загружаемся с установочного диска.

В первом диалоговом окне «Welcome» выбираем

Далее необходимо определить, какие накопители имеются в нашей системе.

Из вывода следует, что у нас два устройства:

  • ada0 – жесткий диск (IDE Hard Drive)
  • cd0 – дисковод

Посмотрим, нет ли на жестком диске какой либо разметки:

Наш жесткий диск не размечен.

Создадим разметку GPT и посмотрим, что произошло:

Теперь наш диск имеет разметку GPT. Начальный номер блока LBA, который мы можем использовать, = 34. Блоки LBA с 0 по 33 зарезервированы. Во второй колонке можно увидеть количество доступных блоков LBA. Размер блока LBA = 512 байт.

Если установка производится на современные жесткие диски, у которых размер сектора = 4 кб, то при создании разделов (партиций) необходимо использовать выравнивание. Можно поступить двумя способами: 1) если указываем параметры раздела в блоках, то номер блока вводить кратным 8, например: -b 40; 2) если указываем размер раздела в байтах, либо не указываем вообще начало и размер, использовать параметр -a 4k, который подгонит начало и конец раздела под секторы, размером 4 кб. Так как мы в данном примере производим тестовую установку на виртуальный жесткий диск либо на флеш-накопитель, то этого можно не делать. В любом случае перед созданием разделов нужно точно знать размер сектора вашего накопителя, иначе это выльется жуткими тормозами в работе.

Далее необходимо создать разделы (партиции). В минимальной системе должно быть три основные раздела: загрузочный, подкачка, корневой. При необходимости можно выносить отдельные части файловой системы (например /usr или /var) на отдельные разделы, но в данном примере делать этого мы не будем. При создании разделов их размер указывается в блоках. Вы вполне можете указывать размер в килобайтах / мегабайтах / гигабайтах, для этого достаточно использовать следующую запись: 64k, 128M, 2G, однако такой подход не совсем правильный, т.к. система ведет пересчет в LBA и, в конечном итоге, может получиться не совсем ожидаемый результат (например: пустой блок размером 1 LBA в конце диска). Выполним создание разделов, используя различные способы:

Первая команда создает раздел типа freebsd-boot, начиная с LBA 34 и размером 128 LBA (64 кб). Вторая команда создает раздел типа freebsd-swap, начиная с первого свободного LBA и размером 2 Гб (кол-во LBA рассчитываются автоматически). Третья команда создает раздел типа freebsd-ufs, начиная с первого свободного LBA и до последнего возможного LBA.

Теперь установим загрузчик в первый раздел и отформатируем третий, затем проверим тип файловой системы на нем:

После форматирования раздела /dev/ada0p3, на нем должна находиться файловая система UFS (Unix File System) версии 2.

Далее подмонтируем только что созданный и отформатированный раздел диска к нашей работающей системе, чтобы иметь возможность работать с ним:

Дальнейшие действия зависят от источника файлов установки.

Первый вариант: установка производится с образа bootonly, либо есть необходимость производить установку именно по сети. В этом случае необходимо настроить сетевое подключение (допустим, что мы используем DHCP) и загрузить файлы во временную папку, которую мы создадим на нашем диске.

Определим имена сетевых интерфейсов и включим на необходимом DHCP-клиент:

Создадим временный каталог на жестком диске для файлов дистрибутива и загрузим в него минимально необходимые файлы для установки, затем извлечем их содержимое в корневой раздел диска, который мы примонтировали в каталог /mnt, затем удалим временный каталог:

Второй вариант: установка производится с полного образа и файлы будут использованы именно с установочного диска. Выполним извлечение файлов из двух основных файлов дистрибутива:

На данном этапе базовая установка системы завершена. Осталось внести некоторые изменения в конфигурационные файлы, а именно в файл /etc/fstab внести информацию о разделах, которые необходимо автоматически монтировать при загрузке системы, в файл /etc/rc.conf внести информацию о настройках сети (в нашем примере DHCP) и настроить часовой пояс.

Выполним редактирование файла /etc/fstab. Т. к. наша устанавливаемая система примонтирована в /mnt, то соответственно это будет файл /mnt/etc/fstab

Добавим строки для монтирования раздела swap и корневого раздела:

Выполним редактирование файла /mnt/etc/rc.conf по тому же принципу. Добавим в файл следующие строки:

Для настройки часового пояса достаточно скопировать файл, соответствующий ближайшему к вам населенному пункту:

На этом базовая установка завершена.

Установленная система не содержит пользователей. А для root не установлен пароль. Используйте команды adduser и passwd для создания пользователей и задания пароля root.

Читайте также:  Установка и настройка toad

Перезагружаемся и наслаждаемся.

Установка системы на USB-флешку

Установка системы на флешку ничем не отличается от установки на жесткий диск, за исключением того, что раздел swap крайне желательно создать на жестком диске. Установку на флешку не обязательно производить с установочного компакт-диска. Достаточно подключить флешку к компьютеру, на котором уже установлена ОС FreeBSD и выполнить все по приведенной выше инструкции, но только не с накопителем /dev/ada0, а с накопителем /dev/ad0 (либо подобным).

Исключением является лишь то, что после установки системы и после ее первой загрузки, когда сформированы и записаны на носитель все сертификаты и ключи, необходимо выполнить некоторые настройки, а именно: в файле fstab указать, что флешка должна монтироваться в режиме только чтение, указать объем монтируемых в ОЗУ разделов /tmp и /var, создать символические ссылки для тех каталогов, файлы в которых должны сохраняться после перезагрузки.

Если никаких жестких дисков, кроме USB-флешки, нет, то файл /etc/fstab должен выглядеть следующим образом:

Если в системе имеется жесткий диск, то целесообразно создать раздел swap на нем. В этом случае на флешке будет только два раздела: загрузочный и корневой. Тогда файл /etc/fstab будет выглядеть примерно так:

В файл /etc/rc.conf добавляем строки:

Для того, чтобы каталоги, находящиеся в /var (который расположен в ОЗУ), сохранялись после перезагрузки, необходимо сделать для них символические ссылки на флешке. Для примера, чтобы корректно работал пакетный менеджер pkg, необходимо для начала создать на флешке каталоги для символических ссылок:

Затем в конец файла /etc/rc.d/var необходимо добавить строки:

Теперь, после загрузки системы, будут удалены каталоги /var/db/pkg и /var/cache/pkg, расположенные в ОЗУ, и на их место будут подмонтированы каталоги с флешки со всеми необходимыми файлами.

На этом настройка работы FreeBSD с флеш-памяти завершена. После перезагрузки корневой раздел будет подмонтирован в режиме только чтение, а каталоги /var и /tmp будут подмонтированы в ОЗУ. Такой подход позволяет избежать преждевременного износа флеш-памяти. В каталоги /var/db и /var/cache, расположенные во флеш-памяти, будут подмонтированы каталогиис файлами, расположенные на флеш-накопителе.

После этого, если будет необходимо внести какие либо изменения в файловую систему (изменить конфигурационные файлы, добавить пользователей, установить пакеты и т.д.) сначала нужно будет перемонтировать корневой раздел в режиме записи на лету. Делается это командой:

После окончания работ с файловой системой, верните корневой каталог в режим только для чтения.

На этом настройка операционной системы FreeBSD, установленной на флеш-накопитель, завершена.

источник

Ручная установка FreeBSD на USB flash или HDD

Данная статья подойдет как для ручной установки FreeBSD 10 на жесткий диск в целях повышения собственного skill, так и для ручной установки FreeBSD на USB flash накопитель, либо на любой другой накопитель, на который невозможно установить систему стандартными средствами.

Установочный образ диска или USB-стика можно скачать на FTP-серверах FreeBSD. Список Украинских зеркал. Для записи образа на USB-стик воспользуйтесь приложением Win32DiskImager.

Установка системы

Загружаемся с установочного диска.

Нажимаем [Enter].

В первом диалоговом окне «Welcome» выбираем

После чего попадаем в оболочку

Далее необходимо определить, какие накопители имеются в нашей системе.

Из вывода следует, что у нас два устройства:

  • ada0 — жесткий диск (IDE Hard Drive)
  • cd0 — дисковод

Посмотрим, нет ли на жестком диске какой либо разметки:

Наш жесткий диск не размечен.

Создадим разметку GPT и посмотрим, что произошло:

Теперь наш диск имеет разметку GPT. Начальный номер блока LBA, который мы можем использовать, = 34. Блоки LBA с 0 по 33 зарезервированы. Во второй колонке можно увидеть количество доступных блоков LBA. Размер блока LBA = 512 байт.

Если установка производится на современные жесткие диски, у которых размер сектора = 4 кб, то при создании разделов (партиций) необходимо использовать выравнивание. Можно поступить двумя способами: 1) если указываем параметры раздела в блоках, то номер блока вводить кратным 8, например: -b 40; 2) если указываем размер раздела в байтах, либо не указываем вообще начало и размер, использовать параметр -a 4k, который подгонит начало и конец раздела под секторы, размером 4 кб. Так как мы в данном примере производим тестовую установку на виртуальный жесткий диск либо на флеш-накопитель, то этого можно не делать. В любом случае перед созданием разделов нужно точно знать размер сектора вашего накопителя, иначе это выльется жуткими тормозами в работе.

Далее необходимо создать разделы (партиции). В минимальной системе должно быть три основные раздела: загрузочный, подкачка, корневой. При необходимости можно выносить отдельные части файловой системы (например /usr или /var) на отдельные разделы, но в данном примере делать этого мы не будем. При создании разделов их размер указывается в блоках. Вы вполне можете указывать размер в килобайтах / мегабайтах / гигабайтах, для этого достаточно использовать следующую запись: 64k, 128M, 2G, однако такой подход не совсем правильный, т.к. система ведет пересчет в LBA и, в конечном итоге, может получиться не совсем ожидаемый результат (например: пустой блок размером 1 LBA в конце диска). Выполним создание разделов, используя различные способы:

Читайте также:  Установка венозного катетера собаке

Первая команда создает раздел типа freebsd-boot, начиная с LBA 34 и размером 128 LBA (64 кб). Вторая команда создает раздел типа freebsd-swap, начиная с первого свободного LBA и размером 2 Гб (кол-во LBA рассчитываются автоматически). Третья команда создает раздел типа freebsd-ufs, начиная с первого свободного LBA и до последнего возможного LBA.

Теперь установим загрузчик в первый раздел и отформатируем третий, затем проверим тип файловой системы на нем:

После форматирования раздела /dev/ada0p3, на нем должна находиться файловая система UFS (Unix File System) версии 2.

Далее подмонтируем только что созданный и отформатированный раздел диска к нашей работающей системе, чтобы иметь возможность работать с ним:

Дальнейшие действия зависят от источника файлов установки.

Первый вариант: установка производится с образа bootonly, либо есть необходимость производить установку именно по сети. В этом случае необходимо настроить сетевое подключение (допустим, что мы используем DHCP) и загрузить файлы во временную папку, которую мы создадим на нашем диске.

Определим имена сетевых интерфейсов и включим на необходимом DHCP-клиент:

Создадим временный каталог на жестком диске для файлов дистрибутива и загрузим в него минимально необходимые файлы для установки, затем извлечем их содержимое в корневой раздел диска, который мы примонтировали в каталог /mnt, затем удалим временный каталог:

Второй вариант: установка производится с полного образа и файлы будут использованы именно с установочного диска. Выполним извлечение файлов из двух основных файлов дистрибутива:

На данном этапе базовая установка системы завершена. Осталось внести некоторые изменения в конфигурационные файлы, а именно в файл /etc/fstab внести информацию о разделах, которые необходимо автоматически монтировать при загрузке системы, в файл /etc/rc.conf внести информацию о настройках сети (в нашем примере DHCP) и настроить часовой пояс.

Выполним редактирование файла /etc/fstab. Т. к. наша устанавливаемая система примонтирована в /mnt, то соответственно это будет файл /mnt/etc/fstab

Добавим строки для монтирования раздела swap и корневого раздела:

Выполним редактирование файла /mnt/etc/rc.conf по тому же принципу. Добавим в файл следующие строки:

Для настройки часового пояса достаточно скопировать файл, соответствующий ближайшему к вам населенному пункту:

На этом базовая установка завершена.

Установленная система не содержит пользователей. А для root не установлен пароль. Используйте команды adduser и passwd для создания пользователей и задания пароля root.

Перезагружаемся и наслаждаемся.

Установка системы на USB-флешку

Установка системы на флешку ничем не отличается от установки на жесткий диск, за исключением того, что раздел swap крайне желательно создать на жестком диске. Установку на флешку не обязательно производить с установочного компакт-диска. Достаточно подключить флешку к компьютеру, на котором уже установлена ОС FreeBSD и выполнить все по приведенной выше инструкции, но только не с накопителем /dev/ada0, а с накопителем /dev/ad0 (либо подобным).

Исключением является лишь то, что после установки системы и после ее первой загрузки, когда сформированы и записаны на носитель все сертификаты и ключи, необходимо выполнить некоторые настройки, а именно: в файле fstab указать, что флешка должна монтироваться в режиме только чтение, указать объем монтируемых в ОЗУ разделов /tmp и /var, создать символические ссылки для тех каталогов, файлы в которых должны сохраняться после перезагрузки.

Если никаких жестких дисков, кроме USB-флешки, нет, то файл /etc/fstab должен выглядеть следующим образом:

Если в системе имеется жесткий диск, то целесообразно создать раздел swap на нем. В этом случае на флешке будет только два раздела: загрузочный и корневой. Тогда файл /etc/fstab будет выглядеть примерно так:

В файл /etc/rc.conf добавляем строки:

Для того, чтобы каталоги, находящиеся в /var (который расположен в ОЗУ), сохранялись после перезагрузки, необходимо сделать для них символические ссылки на флешке. Для примера, чтобы корректно работал пакетный менеджер pkg, необходимо для начала создать на флешке каталоги для символических ссылок:

Затем в конец файла /etc/rc.d/var необходимо добавить строки:

Теперь, после загрузки системы, будут удалены каталоги /var/db/pkg и /var/cache/pkg, расположенные в ОЗУ, и на их место будут подмонтированы каталоги с флешки со всеми необходимыми файлами.

На этом настройка работы FreeBSD с флеш-памяти завершена. После перезагрузки корневой раздел будет подмонтирован в режиме только чтение, а каталоги /var и /tmp будут подмонтированы в ОЗУ. Такой подход позволяет избежать преждевременного износа флеш-памяти. В каталоги /var/db и /var/cache, расположенные во флеш-памяти, будут подмонтированы каталогиис файлами, расположенные на флеш-накопителе.

Читайте также:  Установка задних парктроников мазда 3

После этого, если будет необходимо внести какие либо изменения в файловую систему (изменить конфигурационные файлы, добавить пользователей, установить пакеты и т.д.) сначала нужно будет перемонтировать корневой раздел в режиме записи на лету. Делается это командой:

После окончания работ с файловой системой, верните корневой каталог в режим только для чтения.

На этом настройка операционной системы FreeBSD, установленной на флеш-накопитель, завершена.

источник

Установка FreeBSD на флешку для seedbox машины

Размер флешки

Исходя из моих экспериментов, в 200 мегабайт (на 256 меговую флешку) легко влезает вполне рабочий роутер с dhcp/dns/vpn сервером. При этом из ядра выкидываются все ненужные драйвера, а также опции отладки и профилирования, а из мира убираются manы. Конечно, исходники (/usr/src) и порты (/usr/ports) туда не поместятся, но их можно без особых проблем монтировать и с другого носителя.

Под роутер с функциями seedbox лучше иметь флешку побольше, поскольку там потребуется и apache, и perl, и php. Для данного примера возьмем глючную флешку на 4 гигабайта :).

Проблемы с надежностью

Поскольку флешки очень не любят перезапись секторов, гайдбук рекомендует монтировать корень только на чтение, а все разделы, требующие доступа на запись, выносить в память. Таким образом, /var будет смонтирован как диск в оперативной памяти и каждая перезагрузка будет удалять все его содержимое.

Подготовка разделов

Установку удобнее всего делать из под FreeBSD (я делал с виртуалки), в которой уже собрано нужное вам ядро и мир.

Итак, вставляем флешку, смотрим как она определилась в dmesg (далее da0). Для начала флешку надо отформатировать. Создаем flash_disk.proto:

# slice type start length
# создаем два слайса
p 1 0xa5 63 1429722
p 3 0xa5 2040255 6072570
# делаем первый активным
a 1

Поскольку флешка у меня глючная (попытка чтения данных из участка между 700 и 1000 мегабайтами вызывает отваливание контроллера), то пространство у меня дробится на два слайса. С нормальной флешкой можно создавать один кусок на всю флешку.

# создаем MBR
boot0cfg -B da0
# по-умолчанию грузимся с первого slice
boot0cfg -s 1 da0
# запрещаем загрузчику перезаписывать себя
boot0cfg -o noupdate da0

Теперь разметим наш слайс. Создаем flash_labels.proto:

# size offset fstype [fsize bsize bps/cpg]
a: 1429722 0 4.2BSD 0 0 0
c: * 0 unused 0 0 # «raw» part, don’t edit

Размечаем диск и создаем файловую систему:

# Размечаем в соответствии с созданным файлом
bsdlabel -R da0s1 flash_labels.proto
# Создаем файловую систему
newfs -U da0s1a

Установка системы и портов

Чтобы каждый раз при make install не указывать путь, временно выставим DESTDIR флаг в make.conf на рабочей системе:

Теперь устанавливаем на флешку ядро, мир, системные конфиги и скрипты (etc):

cd /usr/src
make installkernel
make installworld
cd /usr/src/etc
make distrib-dirs
make distribution

У меня в make.conf, помимо прочего, выключена сборка info и man (NO_INFO=YES NO_MAN=YES), поэтому, для нормальной установки портов на флешку, потребуется вручную поставить texinfo, как описано здесь.

После этого правим fstab на флешке:

# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1a / ufs ro 1 1
md /tmp mfs rw,-s24M,noatime 0 0
md /var mfs rw,-s128M,noatime` 0 0

Поскольку /var будет смонтирован в памяти, необходимо перенести /var/db на флешку, чтобы данные об установленных портах не терялись между перезапусками. Для этого создаем ссылку:

mkdir /mnt/flash/etc/pkg
ln -s ../../etc/pkg /mnt/flash/var/db/pkg

Теперь можно настраивать систему на флешке, править конфиги и ставить порты с рабочей системы (необходимо только в resolv.conf на флешке прописать dns-сервера).
Например:

cd /usr/ports/net/isc-dhcp30-server
make
make install

Флаг DESTDIR в make.conf укажет make install что ставить порт нужно на флешку.

Проблемы с dns-сервером named

По-умолчанию named запускается системой в песочнице (chroot’ом) в каталоге /var/named. Вынести этот каталог на флешку нельзя, поскольку named должен иметь возможность писать в свой маленький /var. Вариант, который использовал я, заключается в добавлении в rc.local копирования конфига named каждый раз при старте системы:

# копируем конфиг named
mkdir -p /var/named/etc
cp -Rp /usr/local/etc/namedb /var/named/etc
/etc/rc.d/named start

На мой взгляд, это несколько коряво и я с удовольствием выслушал бы другие варианты решения.

Загрузка установленной системы

Подключаем флешку к роутеру и выставляем в биосе загрузку с нее. На некоторых материнках возможен баг, когда флешка не успевает определиться к тому моменту, когда загрузчик начинает монтировать корень. Хак для данной проблемы описан в конце этой статьи на Хабре.
После загрузки системы можно продолжить ее настройку. Для этого достаточно перемонтировать корень на запись:

После внесения нужных изменений (установки портов/правки конфигов/добавления пользователей и т.д.) нужно вернуть корень в доступ только на чтение:

источник

Добавить комментарий

Adblock
detector