LINUX.ORG.RU

Установка FreeBSD 7.0 на USB-накопитель


0

0

Недавно произвел сабж и решил поделится конфигом и описанием процеса.

Так как флешка имеет ограничение на количество перезаписей, пришлось немного поковырять.

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

1. Создавать swap нельзя, по понятным причинам. 2. Не стоит устанавливать менеджер загрузки, так как он запоминает последнюю загружаемую ОС, т.е. при каждой загрузке производится запись на флешку. Вместо этого лучше установить просто стандартный MBR, либо устанавливать загрузчик со специальным параметром, который запрещает ему писать информацию о последней загружаемой ОС. 3. Вроде бы все.

Вот что надо добавить в /etc/rc.conf чтобы убрать некоторые функции постоянно пишущие на диск:

# Запрещаем fsck в фоновом режиме, на всякий случай :)
background_fsck="NO"

# Запрещаем запись состояния системной энтропии
entropy_dir="NO"
entropy_file="NO"

# Дампы тоже запрещаем
dumpdev="NO"
dumpdir="NO"

# Монтируем домашнюю директорию пользователя root на
# отдельный диск с отображением в память
mdconfig_md0="-t malloc -s 8m"
# Копируем файлы из /etc/skel (при минимальной установке эта
# директория пустая, я решил использовать ее, хотя можно создать
# новую)
mdconfig_md0_files="/etc/skel/"

# Создаем диск в памяти для монтирования /tmp
tmpmfs="YES"
# Задаем размер в 8 мб (можно больше или меньше, в зависимости
# от нужд и объема ОЗУ)
tmpsize="8m"

# Также как и для /var диск в памяти, 8 мб
varmfs="YES"
varsize="8m"
# Наполняем /var
populate_var="YES"

/root в памяти для того, чтобы всякие там записи истории команд и постоянно изменяющиеся настройки не портили флешку. /tmp и /var тоже самое. Из каталога /etc/skel файлы копируются в /root при загрузке, поэтому файлы настроек, которые хотим мы сохранить копируем в /etc/skel Это действие можно автоматизировать, добавив что следует в скрипты исполняющиеся при завершении работы системы, но это уже вы как-нибудь сами сделаете.

Все данные, живущие в каталогах /root /var и /tmp будут утеряны при перезагрузке.

В файл /etc/login.conf необходимо дописать в строку, где живут переменные, следующую строку:

PKG_DBDIR=/etc/pkg

Которая заставит пакетный менеджер хранить информацию о пакетах в каталоге /etc/pkg Естественно сей каталог необходимо создать. После редактирования /etc/login.conf сделайте cap_mkdb /etc/login.conf

Теперь, после ребута, система готова и можно устанавливать дополнительные пакеты.

Вроде бы все. Такую систему можно использовать для выполнения действий, о которых не стоит знать кому-то еще (после перезагрузки все теряется), для ремонта системы в случае поломки, ну и просто хвастаться, что у тебя в кармане лежит Ъ-Unix :)

На полноту не претендую, дополняйте.


Да, чуть не забыл! можно создать вместо /tmp символическую ссылку
на /var/tmp и тогда не надо будет делать еще один диск памяти. Соответственно все строки о /tmp уходят из конфига /etc/rc.conf

Я низнаю нафига я сделал отдельный диск для /tmp это конечно глупо, но чтож поделаешь :)

aspell
() автор топика
Ответ на: комментарий от aspell

Каталоги /tmp и /var/tmp служат несколько разным целям. Уж не помню как там во фре, а в линуксе man 7 hier. Хотя для переносной системы это может быть некритично, так что спорить не буду.

Cancellor ★★★★☆
()

А как там монтирование проихсодит ? не привязано к sda2, sda3 ( или как там во фре своя нумерация ) ?

SI ★★☆☆
()
Ответ на: комментарий от SI

>А как там монтирование проихсодит ? не привязано к sda2, sda3 ( или как там во фре своя нумерация ) ?

По идее привязано. Но проверить не было возможности.

aspell
() автор топика
Ответ на: комментарий от Cancellor

>Каталоги /tmp и /var/tmp служат несколько разным целям. Уж не помню как там во фре, а в линуксе man 7 hier. Хотя для переносной системы это может быть некритично, так что спорить не буду.

Для переносной системы это некритично. Не сервера же, в конце концов, на ней крутится будут.

aspell
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.