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

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


dragonflybsd

Розбіжності

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

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

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
dragonflybsd [2012/03/06 12:07] – [Пересборка ядра] wombatdragonflybsd [2012/04/06 18: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:    *          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]]
 +