Как установить ОС NetBSD на корневой lfs раздел
В этой статье я опишу, шаг за шагом, как установить ОС 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 отсюда
Нам также необходимы установочные наборы 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
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3430 просмотра
Редактирование статьи
Редактирование статьи отсутствует.
Появится позже.