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

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


dragonflybsd

Розбіжності

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

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

Both sides previous revision Попередня ревізія
dragonflybsd [2012/04/06 21:13]
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]]
 +
  
dragonflybsd.txt · В останнє змінено: 2012/04/06 21:18 by wombat