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

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


dragonflybsd

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
dragonflybsd [2012/03/01 02:10]
wombat [Установка]
dragonflybsd [2012/04/06 21:18] (поточний)
wombat [Конфигурирование]
Рядок 1: Рядок 1:
 +====== ​  ​Установка ======
 +
 +  * Поскольку памяти 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'​. Таким образом добавляем в открывшийся файл разметки диска строки:​
 +
 +<​file>​
 +  a:    *       ​0 ​   4.2BSD
 +  b:    256m    *    4.2BSD
 +</​file>​
 +
 +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
 +
 +Должно получиться нечто вроде:
 +
 +<​file>​
 +  /​dev/​ad0s1a /​ ufs rw 1 1
 +  /​dev/​ad0s1b none swap sw 0 0
 +  proc /​proc procfs rw 0 0
 +</​file>​
 +
 +  * Сохраняем разметку жёсткого диска в файл на нём (на всякий случай):​
 +
 +  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 ''​.
 +
 +О подобном поведении уже сообщалось разными пользователями в [[http://​leaf.dragonflybsd.org/​mailarchive/​users/​2009-05/​msg00058.html|списке рассылки]] и [[http://​bugs.dragonflybsd.org/​issues/​2095|багтрекере]].
 +Запустить вручную попробовать можно, но тогда он пытается подмонтировать системный раздел в какую-то папку, а раздел этот уже подмонтирован в корневой каталог. Поэтому запускаем конфигуратор,​ загрузившись с CD.
 +
 +  # installer
 +
 +На моей системе при этом на экране появляется сообщение об ошибке:​
 +
 +  Starting installer. ​ /​etc/​pfi.conf not found, starting interactive install.
 +  Unsupported DFUI transport '​9999'​.
 +
 +Поэтому прибегаем к ручному запуску установщика ([[http://​cvsweb.dragonflybsd.org/​cvsweb/​src/​nrelease/​installer/​usr/​local/​bin/​installer?​rev=1.5&​content-type=text/​x-cvsweb-markup|Взято отсюда]]):​
 +
 +  # /​usr/​sbin/​dfuibe_installer -r "​installer"​ -t npipe >/​dev/​null &
 +  # /​usr/​sbin/​dfuife_curses -r "​installer"​ -t npipe
 +
 +После запуска программы установщика вносим настройки,​ как проиллюстрировано в [[http://​www.dragonflybsd.org/​docs/​newhandbook/​Installation/#​index4h2|документации DragonFlyBSD]]
 +
 +  * В целях экономии оперативной памяти уменьшаем количество терминалов,​ открываемых по умолчанию при запуске системы. Для этого редактируем файл '/​etc/​ttys'​ следующим образом:​
 +
 +<​file>​
 +...
 +#
 +# 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
 +...
 +</​file>​
 +Обратите внимание,​ что терминалы с 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
 +
 +  * Устанавливаем '​bash',​ '​nano'​ (лично я бы предпочёл Midnight Commander, но он на DragonFlyBSD почему-то [[http://​leaf.dragonflybsd.org/​mailarchive/​users/​2010-11/​msg00044.html|не на любом терминале запускается]]):​
 +
 +  # pkg_radd bash
 +  # pkg_radd nano
 +
 +  * Устанавливаем дерево пакетов:​
 +
 +  # cd /usr
 +  # make pkgsrc-create
 +
 +====== Пересборка ядра ======
 +
 +Ппри таком малом объёме оперативной памяти,​ которым располагает рассматриваемая машина,​ пересобрать ядро под свою систему - первое дело.
 +
 +Отредактировать файл со своей конфигурацией под мою систему оказалось очень легко, следуя описанию процесса здесь.
 +Однако,​ собираться оно не захотело,​ и вылетело при компиляции из-за предупреждения (!) компилятора. Оказалось,​ что по умолчанию включена опция компилятора "​-Werror",​ которая не даёт собирать исходники с предупреждениями. Пришлось создать файл "///​etc/​make.conf//"​ следующего вида:
 +
 +<​file>​
 +NO_WERROR=yes
 +
 +</​file>​
 +
 +чтобы сборка пошла далее. Собралось успешно,​ и даже загрузилось. Однако,​ при первом же запуске не обнаружило корневого раздела там, где нужно. Оказалось,​ что почему-то диск ///​dev/​ad0//​ стал теперь диском ///​dev/​ad1//,​ несмотря на то, что нового диска ///​dev/​ad0//​ не появилось. DragonFlyBSD порадовал тем, что не стал сразу паниковать,​ а предложил указать раздел с корневым каталогом вручную. Указываем:​
 +
 +  ufs:ad1s1a
 +
 +Сразу после загрузки активируем своп на этом же диске:
 +
 +  swapon /dev/ad1s1b
 +
 +Затем в файле конфигурации меню загрузки отключаем загрузку модулей '​acpi',​ '​ehci'​ и '​ahci',​ которые по умолчанию подключаются - в целях экономии оперативной памяти.
 +
 +**/​boot/​defaults/​dloader.menu**
 +
 +<​file>​
 +...
 +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
 +...
 +</​file>​
 +
 +Перезагружаем компьютер. На моей системе после этого корневой каталог снова стал корректно монтироваться при загрузке.
 +
 +FIXME
 +====== Установка нужных пакетов =====
 +
 +Поскольку машина имеет мало оперативной памяти,​ и планируется использовать её в качестве сервера без монитора,​ многие возможности программ попросту будут не нужны, и их можно и нужно отключить. При установке из исходных кодов такие парамтры можно указать в конфигурационном файле '/​usr/​pkg/​etc/​mk.conf'​
 +
 +<​file>​
 +PKG_DEFAULT_OPTIONS+=-inet6 -gtk
 +# PKG_OPTIONS.bind98=-threads -inet6
 +</​file>​
 +
 +В этом случае были отключены для всех будущих установок опции, обозначенные "​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
 +
 +====== Полезные ссылки ======
 +[[http://​www.dragonflybsd.org/​docs/​newhandbook/​Configuration|Конфигурирование DragonFlyBSD]]
 +[[http://​www.dragonflybsd.org/​docs/​howtos/​HowToPkgsrc|Документация по установке пакетов]]
 +[[http://​www.dragonflybsd.org/​docs/​newhandbook|Настольная книга по DragonFlyBSD]]
 +