less ./README
dd if=/dev/zero of=/dev/ad0 bs=32k count=16 fdisk -I ad0 fdisk -B ad0
boot0cfg -B ad0 boot0cfg -v ad0
disklabel -B -w -r ad0 auto
mount -t tmpfs none /tmp
Редактируем разметку диска:
disklabel -e /dev/ad0s1
По умолчанию на установочном CD используется текстовый редакто 'vi', в котором, по всей вероятности, многие, как и я, работать не умеют.
Для таких людей это краткое примечание: для того, чтобы отредактировать нужную строку, переместите курсор на неё и нажмите 'i'. Это включит режим вставки символов в строку. Добавлять символы к строке можно нажав 'a'. Таким образом добавляем в открывшийся файл разметки диска строки:
a: * 0 4.2BSD b: 256m * 4.2BSD
Такая разметка означает, что мы хотим создать 2 раздела: первый - для корневого каталога, второй - раздел подкачки. При этом чтобы не считать размер основного раздела, указываем '*', чтобы использовать всё доступное пространство до следующего раздел. Поместим этот раздел в начале слайса, указав '0' в поле, отвечающем за адрес первого блока раздела. Размер второго же раздела (подкачки) мы укажем точно (например, 256 МБ), а поскольку адрес первого блока его мы не знаем, то указываем '*', что означает поместить его сразу после предыдущего раздела. Таким образом раздел подкачки окажется в конце слайса (или всего диска, если на диске один слайс).
newfs /dev/ad0s1a
mount /dev/ad0s1a /mnt
swapon /dev/ad0s1b
cpdup / /mnt
chmod 1777 /mnt/tmp
rm -rf /mnt/var/tmp ln -s /tmp /mnt/var/tmp
rm -r /mnt/etc mv /mnt/etc.hdd /mnt/etc
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
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
Если всё сделано правильно, теперь система должна успешно загружаться с жёсткого диска в режиме по умолчанию. Если это так, можно переходить к базовой конфигурации.
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
... # # 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
# 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 ...
Перезагружаем компьютер. На моей системе после этого корневой каталог снова стал корректно монтироваться при загрузке.
Поскольку машина имеет мало оперативной памяти, и планируется использовать её в качестве сервера без монитора, многие возможности программ попросту будут не нужны, и их можно и нужно отключить. При установке из исходных кодов такие парамтры можно указать в конфигурационном файле '/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
значит, наши настройки корректно считались и будут применены при установке.