Користувальницькькі налаштування

Налаштування сайту


dragonflybsd

Установка

  • Поскольку памяти 32 МБ, при загрузке с установочного CD памяти хватает только на режим “Single User”
    Single User mode
  • Для получения справки в любое время в консоли можно набрать:
less ./README
  • Обнуляем первые 16 32-килобайтных блоков (чтобы в начальной области диска не было никакого мусора, оставшегося от предыдущих установок).
  • Инициализируем содержимое нулевого сектора для использования одного слайса DragonFly на весь диск.
  • Инициализируем загрузочный код, хранящийся в нулевом секторе диска.
    Примечание: Здесь и далее предполагается, что жёсткий диск, на который будет производиться установка, в системе представлен устройством '/dev/ad0'. На моей системе это оказалось так, потому что я устанавливал DragonFlyBSD на Primary Master (т.е. главный диск первого IDE интерфейса), в вашем же случае может быть и другое имя.
dd if=/dev/zero of=/dev/ad0 bs=32k count=16
fdisk -I ad0
fdisk -B ad0
  • Устанавливаем менеджер загрузки “boot0” в MBR жёсткого диска и проверяем загрузочный блок:
boot0cfg -B ad0
boot0cfg -v ad0
  • Создаём начальную разметку диска
disklabel -B -w -r ad0 auto
  • Для редактирования разметки, должен будет запуститься редактор 'vi', которому нужен доступ для записи в каталог '/tmp'. Поэтому создаём временную файловую систему и монтируем её в '/tmp':
mount -t tmpfs none /tmp

Редактируем разметку диска:

disklabel -e /dev/ad0s1

По умолчанию на установочном CD используется текстовый редакто 'vi', в котором, по всей вероятности, многие, как и я, работать не умеют. :-)
Для таких людей это краткое примечание: для того, чтобы отредактировать нужную строку, переместите курсор на неё и нажмите 'i'. Это включит режим вставки символов в строку. Добавлять символы к строке можно нажав 'a'. Таким образом добавляем в открывшийся файл разметки диска строки:

  a:    *       0    4.2BSD
  b:    256m    *    4.2BSD

FIXME

Такая разметка означает, что мы хотим создать 2 раздела: первый - для корневого каталога, второй - раздел подкачки. При этом чтобы не считать размер основного раздела, указываем '*', чтобы использовать всё доступное пространство до следующего раздел. Поместим этот раздел в начале слайса, указав '0' в поле, отвечающем за адрес первого блока раздела. Размер второго же раздела (подкачки) мы укажем точно (например, 256 МБ), а поскольку адрес первого блока его мы не знаем, то указываем '*', что означает поместить его сразу после предыдущего раздела. Таким образом раздел подкачки окажется в конце слайса (или всего диска, если на диске один слайс).

  • Создаём файловую систему UFS на первом разделе:
newfs /dev/ad0s1a
  • Монтируем вновь созданную файловую систему в каталог '/mnt':
mount /dev/ad0s1a /mnt
  • Поскольку памяти у нас мало, подключаем раздел подкачки, созданный недавно:
swapon /dev/ad0s1b
  • копируем всё содержимое установочного CD на жёсткий диск:
cpdup / /mnt
  • Разрешаем запись всем пользователям в каталог временных файлов на жёстком диске:
chmod 1777 /mnt/tmp
  • Удаляем каталог '/var/tmp' на жёском диске и вместо него создаём символическую ссылку на '/tmp'. Особенно это полезно, если для каталога '/var' при разметке диска был отведён отдельный раздел.
rm -rf /mnt/var/tmp
ln -s /tmp /mnt/var/tmp
  • Поскольку настройки системы на установочном CD отличаются от настроек, с которыми нужно будет запускать систему с жёсткого диска, на CD имеется отдельный каталог '/etc.hdd', содержащий файлы конфигурации, предназначенные для загрузки с жёсткого диска. Предыдущая команда копирования скопировала всё дерево каталогов с CD на наш жёсткий диск, поэтому теперь необходимо удалить на нём '/etc' и заменить его каталогом '/etc.hdd'
rm -r /mnt/etc
mv /mnt/etc.hdd /mnt/etc
  • Копируем файл-пример таблицы файловых систем с CD на жёсткий диск и редактируем его в соответствии с нашей конфигурацией:
cp /etc/fstab.example /mnt/etc/fstab
vi /mnt/etc/fstab

Должно получиться нечто вроде:

  /dev/ad0s1a		/		ufs	rw		1	1
  /dev/ad0s1b		none		swap	sw		0	0
  proc			/proc		procfs	rw		0	0
  • Сохраняем разметку жёсткого диска в файл на нём (на всякий случай):
disklabel ad0s1 > mnt/etc/disklabel.ad0s1
  • Удаляем с жёсткого диска ненужные файлы (т.е. файлы, специфичные для загрузки с CD)
rm /mnt/boot/bootloader.conf
rm /mnt/README* /mnt/autorun* /mnt/index.html /mnt/dflybsd.ico
rm -r /mnt/autorun
rm /mnt/boot.catalog
  • Перезагружаем систему.
halt
  • Извлекаем установочный CD и нажимаем какую-нибудь клавишу.

Если всё сделано правильно, теперь система должна успешно загружаться с жёсткого диска в режиме по умолчанию. Если это так, можно переходить к базовой конфигурации.

Конфигурирование

  • Попытка запустить 'installer' после загрузки с жёсткого диска не увенчалась успехом
Starting installer.  /etc/pfi.conf not found, starting interactive install.
Unsupported DFUI transport ''.

О подобном поведении уже сообщалось разными пользователями в списке рассылки и багтрекере. Запустить вручную попробовать можно, но тогда он пытается подмонтировать системный раздел в какую-то папку, а раздел этот уже подмонтирован в корневой каталог. Поэтому запускаем конфигуратор, загрузившись с CD.

# installer

На моей системе при этом на экране появляется сообщение об ошибке:

Starting installer.  /etc/pfi.conf not found, starting interactive install.
Unsupported DFUI transport '9999'.

Поэтому прибегаем к ручному запуску установщика (Взято отсюда):

# /usr/sbin/dfuibe_installer -r "installer" -t npipe >/dev/null &
# /usr/sbin/dfuife_curses -r "installer" -t npipe

После запуска программы установщика вносим настройки, как проиллюстрировано в документации DragonFlyBSD

  • В целях экономии оперативной памяти уменьшаем количество терминалов, открываемых по умолчанию при запуске системы. Для этого редактируем файл '/etc/ttys' следующим образом:
...
#
# name  getty                           type    status          comments
#                           
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none                            unknown off secure
#
ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv2   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv3   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv4   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv5   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv6   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv7   "/usr/libexec/getty Pc"         cons25  off  secure
ttyv8   "/usr/pkg/bin/xdm -nodaemon"    xterm   off secure
...

Обратите внимание, что терминалы с 1 по 8 отключены ('off').

Также в целях экономии памяти на время настройки можно отключить службы 'sendmail' и 'cron':

# /etc/rc.d/sendmail stop
# /etc/rc.d/cron stop
  • Размещаем подключение swap-раздела повыше по приоритету
  • Настраиваем логин по паролю в /etc/ssh/sshd_config
  • Добавляем пользователя в группу 'wheel'
# pw user mod vasya -G wheel
  • Если сетевой интерфейс не был настроен правильно ранее, настраиваем его вручную:
# ifconfig fxp0 192.168.0.7 netmask 255.255.255.0
# route add default 192.168.0.1
# pkg_radd bash
# pkg_radd nano
  • Устанавливаем дерево пакетов:
# cd /usr
# make pkgsrc-create

Пересборка ядра

Ппри таком малом объёме оперативной памяти, которым располагает рассматриваемая машина, пересобрать ядро под свою систему - первое дело.

Отредактировать файл со своей конфигурацией под мою систему оказалось очень легко, следуя описанию процесса здесь. Однако, собираться оно не захотело, и вылетело при компиляции из-за предупреждения (!) компилятора. Оказалось, что по умолчанию включена опция компилятора “-Werror”, которая не даёт собирать исходники с предупреждениями. Пришлось создать файл “/etc/make.conf” следующего вида:

NO_WERROR=yes

чтобы сборка пошла далее. Собралось успешно, и даже загрузилось. Однако, при первом же запуске не обнаружило корневого раздела там, где нужно. Оказалось, что почему-то диск /dev/ad0 стал теперь диском /dev/ad1, несмотря на то, что нового диска /dev/ad0 не появилось. DragonFlyBSD порадовал тем, что не стал сразу паниковать, а предложил указать раздел с корневым каталогом вручную. Указываем:

ufs:ad1s1a

Сразу после загрузки активируем своп на этом же диске:

swapon /dev/ad1s1b

Затем в файле конфигурации меню загрузки отключаем загрузку модулей 'acpi', 'ehci' и 'ahci', которые по умолчанию подключаются - в целях экономии оперативной памяти.

/boot/defaults/dloader.menu

...
menuitem 1 "Boot DragonFly [${default_kernel}]"
menuadd cd ${base}${default_kernel}
menuadd optinclude loader.conf
menuadd optinclude loader.conf.local
menuadd set vm.dma_reserved=0
menuadd set hw.ata.dma=0 
menuadd set hint.acpi.0.disabled=1
menuadd set hint.ehci.0.disabled=1
menuadd set hint.ahci.disabled=1
menuadd lunsetif acpi_load hint.acpi.0.disabled
menuadd lunsetif ehci_load hint.ehci.0.disabled
menuadd lunsetif ahci_load hint.ahci.disabled
menuadd loadall
menuadd boot
...

Перезагружаем компьютер. На моей системе после этого корневой каталог снова стал корректно монтироваться при загрузке.

FIXME

Установка нужных пакетов

Поскольку машина имеет мало оперативной памяти, и планируется использовать её в качестве сервера без монитора, многие возможности программ попросту будут не нужны, и их можно и нужно отключить. При установке из исходных кодов такие парамтры можно указать в конфигурационном файле '/usr/pkg/etc/mk.conf'

PKG_DEFAULT_OPTIONS+=-inet6 -gtk
# PKG_OPTIONS.bind98=-threads -inet6

В этом случае были отключены для всех будущих установок опции, обозначенные “inet6”, “gtk” и “threads”. Можно также включать/одключать поддержку некоторых опций для каждого пакета в отдельности, как это показано во второй строчке для пакета “bind98”. Примечание: Я пробовал перечислять включаемые/отключаемые опции в кавычках (PKG_DEFAULT_OPTIONS+=“-inet6 -gtk -threads”) - не заработало. Проверить, будет ли система сборки и установки пакетов верно считывать вновь внесённые настройки, можно перейдя в каталог для установки какого-нибудь любого пакета (для “bind98” это каталог “/usr/pkgsrc/net/bind98/”) и выполнить в нём команду:

bmake show-options

Если в выводе этой команды записи для “enabled by default” и “currently enabled” не совпадают

These options are enabled by default:
      inet6 threads

These options are currently enabled:
      threads

значит, наши настройки корректно считались и будут применены при установке. FIXME

Полезные ссылки

dragonflybsd.txt · В останнє змінено: 2012/04/06 21:18 by wombat