Как установить ОС NetBSD на корневой lfs раздел

rmx аватар

В этой статье я опишу, шаг за шагом, как установить ОС NetBSD на корневой раздел типа LFS.

Содержание
1 Введение
2 Что такое LFS
3 Преимущества использования
4 Минусы
5 Достижение поставленной цели
6 Что нам потребуется
7 Загрузка с LiveCD
8 fdisk
9 disklabel
10 newfs_lfs
11 Монтирование
12 Распаковка установочных наборов
13 Конфигурация новой системы
14 Загрузочный код
15 Создание файлов устройств
16 Перезагрузка
17 Дисковые возможности
18 Удаленная установка

Введение

Описанные действия в статье могут привести к потери информации на вашей компьютере. Поэтому крайне желательно тестировать описанные ниже действия на виртуальной машине. В этом примере система NetBSD будет установлена на LFS раздел без использования FFS разделов. Существует большое количество способов как это сделать. В этой же статье я опишу, как это делаю я.

Что такое LFS

LFS это экспериментальная (на момент написания статьи) реализация Файловой системы структурированных логов. Например, файловая система ZFS от компании SUN также является таковой.

Преимущества использования

Файловая система LFS может быстро восстановиться после аварии, потому что ее использование не требует запуска утилиты fsck для целого диска. Операции же записи/чтения выполняются в LFS быстрее чем файловой системе FFS.

Минусы

LFS не работает на ядрах с поддержкой мультипроцессорных архитектур (на момент написания статьи).
Размер раздела LFS лимитирован 2-мя терабайтами.
LFS не подходит для компьютеров, на которых постоянно выполняются операции с высокой дисковой активностью (ftp сервера и др.).
Файловая система не может корректно выполнять операции чтения/записи, когда диск полностью заполнен. Поврежденная файловая система это обычное явление в таких ситуациях.

Достижение поставленной цели

Нам необходимо установить ОС NetBSD с нуля без использования утилиты sysinst, так как в sysinst отсутствует поддержка LFS (на момент написания статьи). Возможно в будущем эта ситуация будет исправлена.

Что нам потребуется

Физический доступ к серверу.
Нам необходим NetBSD LiveCD для доступа к жестким дискам. В нашем примере подойдут только LiveCD с поддержкой файловой системы LFS. Следовательно загрузите Jibbed LiveCD отсюда http://www.jibbed.org

Нам также необходимы установочные наборы NetBSD (base.tgz, comp.tgz, etc.tgz, man.tgz, misc.tgz, text.tgz ...).
Рекомендую скачать их все.

Вы также можете скачать последние наборы из NetBSD autobuild кластера (ftp://ftp.netbsd.org/pub/NetBSD-daily/HEAD/) или Вы можете собрать Ваш собственный релиз и использовать Ваши собственные установочные наборы.
Руководство о том как собрать текущий релиз может быть взят здесь: Как собрать NetBSD-current.

Установочные наборы могут быть получены из LiveCD несколькими способами. Например посредством протокола http, ftp или scp.

Загрузка с LiveCD.

Загрузитесь с Вашего LiveCD дистрибутива NetBSD на сервере, на который Вы хотите устанавливать систему. Смените текущего пользователя на пользователя root (su -).

fdisk

Теперь создайте, при помощи утилиты fdisk активный NetBSD (ID 169) слайс.

# fdisk -iu wd0

disklabel

Используйте утилиту disklabel для того что бы подготовить Ваш жесткий диск. Эта часть руководства не рассказывает о тонкостях работы с программой disklabel. За подробной информацией по disklabel обратитесь к соответствующей главе
руководства The NetBSD Guide. Введите

# disklabel -i -I wd0

в командной строке для перевода утилиты disklabel в интерактивный режим. Я предполагаю что в качестве устройства, на который вы будете устанавливать систему – есть Ваш жесткий диск wd0. С другой стороны Вы можете использовать устройства типа flash накопителей и другие (например, sd0, ld0...)

Мы создадим один большой раздел "a" в нашем примере. Но Вы свободно можете потренироваться с альтернативной схемой разбивки во время второй попытки инсталляции.

Используйте 4.4LFS как тип корневой файловой системы.

Раздел "b" будет использоваться как swap раздел. Начиная с конца раздела "a" и до самого конца диска ($).

Разделы "c" и"d" не используются.

Удалите все остальные разделы (e-p).

Когда Вы закончите, Ваш NetBSD слайс будет разбит следующим образом:

# size offset fstype [fsize bsize cpg/sgs]
a: 73400320 63 4.4LFS 0 0 0 # (Cyl. 0*- 72817*)
b: 2097152 73400383 swap # (Cyl. 72817*- 77504*)
c: 78124937 63 unused 0 0 # (Cyl. 0*- 77504*)
d: 78125000 0 unused 0 0 # (Cyl. 0 - 77504*)

newfs_lfs

Теперь Вы можете создать lfs раздел на диске который был только что размечен.

# newfs_lfs wd0a

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

Монтирование

Окончание нашей инсталляции тривиально. Мы монтируем файловую систему и распаковываем наши установочные наборы.

# mkdir /tmp/targetroot
# mount /dev/wd0a /tmp/targetroot

Создаем другую директорию, в которой сохраним наши установочные наборы

# mkdir /tmp/sets

Перейдем в нее.

# cd /tmp/sets

И загрузим наборы, например по протоколу ftp. Еще раз повторюсь, что этими установочными наборами могут быть наборы создаными Вами лично заранее и размещеными на локальном сервере либо загружены с официального серевера проекта NetBSD.

# ftp 192.168.0.200

...

Распаковка установочных наборов

Распакуем наборы, используя дополнительную опцию -p (это важно).

# cd /tmp/sets
# tar xvzpf base.tgz -C /tmp/targetroot

повторим это действие для всех наборов, но распокавать нужно только одно GENERIC ядро с именем kern-GENERIC.tgz

Конфигурация новой системы

Перейдем в директорию /tmp/targetroot и выполним базовую конфигурацию. Редактируем файл etc/fstab

/dev/wd0a / lfs rw 1 1
/dev/wd0b none swap sw 0 0
ptyfs /dev/pts ptyfs rw 0 0
tmpfs /tmp tmpfs rw

ptyfs и tmpfs могут использоваться опционально, но их использование рекомендовано.

Редактируем файл etc/rc.conf

rc_configured=yes

Процесс загрузки ядра

Скопируем вторичный загрузчик в директорию /tmp/targetroot.

# cp /tmp/targetroot/usr/mdec/boot /tmp/targetroot

а также первичный загрузочный код

# /usr/sbin/installboot -v -m i386 -o timeout=5,console=pc /dev/rwd0a /tmp/targetroot/usr/mdec/bootxx_lfsv2

Создание файлов устройств

Не забудьте создать все файлы устройств,

# cd /tmp/targetroot/dev
# ./MAKEDEV all

что займет некоторое время.

Перезагрузка

Выполним синхронизацию и перезагрузим систему

# sync
# sync
# sync
# reboot

Если все шаги установки были выполнены корректно, то Ваша система должна загрузиться. Загрузившись, вы можете дальше настраивать систему под свои нужды.

Дисковые возможности файловой системы

Не рекомендую заполнять ваш LFS раздел более чем на 75%, так как это может привести к его повреждению (справедливо на момент написания статьи).

Удаленная установка

Если Вы желаете установить LFS корневую файловую систему на Ваш сервер удаленно, Вам потребуется доступ к консоли. Хотя это требование не является критичным. Минимум что Вам потребуется это rescue консоль. В большинстве случаев она представляет собой linux ramdisk. Один путь для этого это сборка загрузочных дискет с поддержкой LFS и наличием утилиты newfs_lfs, но из-за небольшого размера дискеты вам потребуется удалить с нее другие ненужные утилиты.
Далее напишите маленький shell скрипт, который будет выполняться каждый раз когда ваш сервер будет грузиться с дискеты. В этом скрипте должны выполняться все шаги из этого руководства, а также операция добавления нового пользовательского аккаунта и настройка сетевых параметров (конфигурация resolv.conf и др.), если Вы хотите иметь возможность регистрироваться в системе позже. Создайте бэкап первых 5 Мб, которые Вы перезапишите с помощью
утилиты dd. Теперь, с помощью команды dd, перезапишите дискету на жесткий диск сервера и перезагрузитесь. Удачи!

Перевод: rmx

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
rmx аватар

Редактирование статьи

Редактирование статьи отсутствует.
Появится позже.