Установка и настройка Desktop workstation под FreeBSD

FreeBSD logo

Надоело мне в Windows и решил я поставить FreeBSD. Под рукой оказался CD-ROM с FreeBSD 4.3-RELEASE и установленный в этой же подсети сервер под управлением FreeBSD, с периодически обновляющимися деревом src и ports, плюс некоторым количеством distfiles. И как главное оружие для борьбы за свой Desktop я вооружился handbook'ком.

Железо

  • CPU: Pentium III 800MHz
  • RAM: 512Mb
  • HDD: Futjitsu 40Gb UDMA 5 5400rpm
  • Video: RivaTNT2 M64
  • Audio: SB Compact 128 PCI
  • Netcard: NE2000

Хотелось бы получить

Доступ по NFS к дереву src и ports на имеющемся сервере для обновления системы, для работы установить www server(apache+mod_php4), ftp server(штатный), db(PostgreSQL, MySQL), mail(sendmail+fetchmail+procmail), news(inn,tin), lpr(plain/text, postscript). И все это должно незаметно трудится скрытое удобным пользовательским Desktop'ом.

Установка

Мой винчестер поделен на три части:

  1. windows 2000 Professional rus+SP2 на NTFS
  2. пустой раздел под FAT32
  3. неразмеченное пространство

Для начала я прочитал главу handbook, на самом деле я прочитал handbook практически полностью перед установкой :-), Chapter 2 Installing FreeBSD и файл INSTALL. Так как есть возможность загружаться с CD-ROM привода, то так и сделаем :-). Тип установки выбираем "Express".

Создаем один слайс на всем неразмеченном пространстве:

Disk name:      ad0                             FDISK Partition Editor
DISK Geometry:  4983 cyls/255 heads/63 sectors = 80051895 sectors (39087MB)

Offset       Size(ST)        End     Name  PType       Desc  Subtype    Flags

       0         63         62        -      6     unused        0
      63   10490382   10490444       ad0s1   1 NTFS/HPFS/QNX     7
10490445   31455270   41945714       ad0s2   2        fat       12
41945715   38106180   80051894       ad0s3   3    freebsd      165      C
80051895      11529   80063423        -      6     unused        0          


The following commands are supported (in upper or lower case):

A = Use Entire Disk    G = set Drive Geometry   C = Create Slice
D = Delete Slice       Z = Toggle Size Units    S = Set Bootable
T = Change Type        U = Undo All Changes     W = Write Changes

Use F1 or ? to get more help, arrow keys to select.

Переходим к разметке разделов. Но при этом стоит учитывать для выделения места под раздел в слайсе:

  1. в / находится ядро, модули и базовые конфигурационные файлы
  2. в /home домашнии каталоги пользователей
  3. в /usr будут ставится программы и храниться дерево src, и ports
  4. в /var хранятся логи, данные. находится временный каталог
                             FreeBSD Disklabel Editor

Disk: ad0       Partition name: ad0s3   Free: 0 blocks (0MB)

Part      Mount           Size Newfs   Part      Mount           Size Newfs
----      -----           ---- -----   ----      -----           ---- -----
ad0s2     <none>        15359MB DOS
ad0s3b    swap          1024MB SWAP
ad0s3a    /              200MB UFS+S N
ad0s3e    /home         1024MB UFS+S N
ad0s3f    /usr          5192MB UFS+S N
ad0s3g    /var         11166MB UFS+S N

The following commands are valid here (upper or lower case):
C = Create        D = Delete   M = Mount pt.   W = Write
N = Newfs Opts    Q = Finish   S = Toggle SoftUpdates
T = Toggle Newfs  U = Undo     A = Auto Defaults

Use F1 or ? to get more help, arrow keys to select.

Дальше ставим систему :-).

Теперь настроим NFS клиента. Для этого будем использовать программу nfsiod. Чтобы не перезагружать компьютер выполним команду:

# nfsiod -n 4
Параметр "-n 4" указывает, что nfsiod запустит 4 своих копии.

Добавляем следующие строчки в rc.conf:

nfs_client_enable="YES"
nfs_client_flags="-n 4"
Теперь можно подмонтировать экспортируемые каталоги либо вручную:
# mount -t nfs -o -r=1024 server:/usr/src /usr/src
# mount -t nfs -o -r=1024 server:/usr/ports /usr/ports

Либо автоматически с помощью /etc/fstab:

server:/usr/src    /usr/src    nfs    rw,1024    0    0
server:/usr/ports  /usr/src    nfs    rw,1024    0    0

Следующим этапом мы построим мир и регенерируем ядро :-). Для начала копируем /etc/defaults/make.conf в /etc/make.conf. В этом файле мы укажем опции с которыми будет собираться новая система. Не забудем также и конфигурационный файл для ядра системы, который будет называться NP. Для этого создадим NP, взяв за основу уже существующий конфигурационный файл GENERIC:

# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/NP
Шаги по регенерации ядра и построению нового мира, подробно описаны в handbook.

Первоначальная настройка системы

Укоротим приветственную надпись в /etc/motd т.е. удаляем все после приветствия нас в FreeBSD :-):

FreeBSD 4.5-RC (NP) #0: Thu Jan 10 15:28:36 NOVT 2002

Welcome to FreeBSD!

Сделаем "tmp" каталог единственным, ведь незачем же разводить несколько помоек :-) и заодно почистим место от документации. Потом читать документацию можно либо на соседнем сервере, либо в internet:

# ln -sf /tmp /tmp/var
# rm -rf /usr/share/doc /usr/share/info /usr/share/man/

Русифицируем консоль и отключим использование мыши (если она была :-)). Добавляем следующие строчки в rc.conf:

### Console
font8x14="koi8-r-8x14"
font8x16="koi8-r-8x16"
font8x8="koi8-r-8x8"
keymap="ru.koi8-r.shift"
saver="logo"

moused_enable="NO"
moused_type="NO"
А теперь идем в /etc/ttys и изменяем тип консоли с cons25r на cons25r, и оставляем только две рабочие консоли для экономии памяти:
ttyv0 "/usr/libexec/getty Pc"         cons25r  on  secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv2 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv3 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv4 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv5 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv6 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv7 "/usr/libexec/getty Pc"         cons25r  on  secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon"  xterm    off secure
Подсказка: Открываем файл - "vi /etc/ttys", теперь жмем "Shift+:" и вводим - "%s/cons25/cons25r/" и жмем клавишу "Enter", ну и выход с сохранением "ZZ".

Библиография

Chapter 2 Installing FreeBSD
Chapter 17 Advanced Networking

Похожие записи:

  1. Неофициальный FAQ по системе FreeBSD


Неофициальный FAQ по системе FreeBSD

FreeBSD logo

Составлен по материалам конференции:
RU.UNIX.BSD и RU.UNIX
Авторство приводимых ответов не указывается из соображений удобства сопровождения.

Введение. Общие сведения

- Где почитать что нового в FreeBSD 5.0?

Установка

- Киньте URL по установке фре на русcком языке?
- Как и откуда установить cvsupd под FreeBSD? Есть парк машин, а каждую CVS'апить из инета долго и напряжно.
- Как грамотно записать в загрузочную область образы тех двух дискет, чтобы cd с дистрибутивом FreeBSD стал загрузочным?

Ядро. Компиляция, диагностика, настройка. Устройства

- А есть ли возможность выключить питание ATX, как в Windows?
- Как узнать, с какими опциями было собрано ядро?

Аппаратное обеспечение

- Как реализовать Iomega ZIP (USB) + FreeBSD?

Работа с дисками. Файловые системы
Работа в сети.

- Задрала NIMDA. Кстати, ни у кого нету ли фильтра, чтобы это дерьмо из логов выкусывать на лету?
- Если пишу pipes в начале rc.firewall - правила не работают, пишу в конце - до пайпов не доходит.
- Как подключить HТ к BSD, извиняюсь по выделенке?

Администрирование

- Где в эхотаге прописывается mgetty на прием входящих звонков?
- Как доставить ftpd?
- Как сделать, чтобы в качестве swap использовался только заданный файл.
- Как ldconfig-у "подсунуть" новую директорию, чтобы при очередном старте системы ldconfig не "потерял" эту директорию и просканировал ее?
- Как разрешить mount обыкновенному пользователю?
- Есть distfiles записанные на CDROM, что прописать, чтобы потом использовать их при установке?
- Как мне обновить систему?
- Как в портах искать софт?
- Есть ветвистый каталог с кyчей файлов и диpектоpий. С файлов нyжно снять флаг исполнения - "x".
- В 4.4 компилируются еще и загружаемые модули ядра, а потом при make install еще и копируются заново.
- Хочу чтобы сообщения ftpd писались в отдельный log.
- Похоже, обновление системы через stable-supfile, make world не затрагивает /usr/share/doc. Как освежить handbook?
- Ох. у меня канал в одном месте, а бздя - в другом. и из второго места к первому есть только гнилой диалап на 9600.

X Window System.

- KDE забирает на себя управление /dev/dsp через ARTSd и не отдает, пока загружен.
- Как в иксах заставить работать колесико у Logitech'а - определяется как Intellimouse с протоколом PS/2 работает как обычная двухкнопочная.
Прикладное программное обеспечение.

После сборки mc он оказался черно-белым и вместо встроенного редактора вызывается vi. Как это подправить. Для первого случая mc -c не предлагать.
На протяжении двух недель вытягиваю licq-daily. Компилю и всегда получаю одно и тоже - вис на этапе:
Кто-нибудь встречал текстовый редактор под консоль, да ещё с подсветкой синтаксиса perl?

Электронная почта и телеконференции
Программирование
Разное
Благодарности.

Введение. Общие сведения

Q: Где почитать что нового в FreeBSD 5.0?
A: http://people.freebsd.org/~bmah/relnotes/CURRENT/relnotes-i386.html

Установка

Q: Киньте URL по установке фре на русcком языке? A: http://www.tsu.ru/~pascal и http://www.freebsd.org.ua .

Q: Как и откуда установить cvsupd под FreeBSD? Есть парк машин, а каждую цвсапить из инета долго и напряжно.
A: Можно попробовать /usr/ports/net/cvsup-mirror из портов. Он сам и софт поставит и конфиги напишет.

Q: Как грамотно записать в загрузочную область образы тех двух дискет, чтобы cd с дистрибутивом FreeBSD стал загрузочным?
A: Если у тебя все лежит в каталоге x, то например так:
# mkisofs -lrTL -b floppies/boot.img -c boot.catalog -o freebsd.iso x

Ядро. Компиляция, диагностика, настройка. Устройства

Q: А есть ли возможность выключить питание ATX, как в Windows?
A: В rc.conf дописать: apm_enable="YES", apmd_enable="YES". Добавить в свой конфигурационный файл ядра и регенерировать ядро:
device apm0 at nexus? flags 0x31

Q: Как узнать, с какими опциями было собрано ядро?
A: Чтобы выдpать конфиг из /kernel ищи команду в LINT. Если ты сам собиpал и собиpаешь, то на будущее вставляй в конфиг ядpа:
options INCLUDE_CONFIG_FILE

Аппаратное обеспечение

Q: Как реализовать Iomega ZIP (USB) + FreeBSD?
A: В ядpе нужно включить поддеpжку USB. Как это сделать пpочитай в конце файла LINT. Как сделать автомонтиpование зипа, читать http://peps37.ktk.ru/freebsd/ .

Работа в сети

Q: Задрала NIMDA. Кстати, ни у кого нету ли фильтра, чтобы это дерьмо из логов выкусывать на лету?
A: Для закваски:

tail -F /var/log/www/access.log |
grep "cmd.exe" |
cut -d ' ' -f 1 |
sed "s/.*/ipfw add deny ip from & to any/" |

sh
Q: Если пишу pipes в начале rc.firewall - правила не работают, пишу в конце - до пайпов не доходит.
A: Все правильно. ipfw после pipe по умолчанию остальные правила не проверяет. Чтобы проверял сделай так:
# echo net.inet.ip.fw.one_pass=0 >> /etc/sysctl.conf

Q: Как подключить HТ к BSD, извиняюсь по выделенке?
A: http://peps37.ktk.ru/freebsd/leased-nt/ .

Администрирование

Q: Где в эхотаге прописывается mgetty на прием входящих звонков?
A: В /etc/tty:
cuaa0 "/usr/local/mgetty/sbin/mgetty" dialup on secure
Q: Как доставить ftpd?
A: Вот как прописывается родной бсдевый ftpd, который идет вместе с системой, что значат опции смотри man ftpd:
ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -llAS
Для того что бы анонимный ftpd заработал, нужен юзер ftp, вот пример строчки из master.passwd:
ftp:*:14:5:ftp:0:0:Anonymous FTP, That World:/var/ftp/:/nonexistent
Q: Как сделать, чтобы в качестве swap использовался только заданный файл.
A: Убрать описание своп-раздела из /etc/fstab, добавить в /etc/rc.conf:
swapfile="/mnt/scsi/swap" и создать файл:
# dd if=/dev/zero of=/mnt/scsi/swap bs=1k count=256000
Q: Как ldconfig-у "подсунуть" новую директорию, чтобы при очередном старте системы ldconfig не "потерял" эту директорию и просканировал ее?
A: В /etc/rc.conf: ldconfig_paths="$ldconfig_paths /my/own/dir"

Q: Как разрешить mount обыкновенному пользователю?
A: С помощью sysctl -w vfs.usermount=1

Q: Есть distfiles записанные на CDROM, что прописать, чтобы потом использовать их при установке?
A1: Hа CD делаешь /ports/distfiles. Потом монтируешь CD, в /etc/make.conf пишешь:
CD_MOUNTPT=/cdrom # или куда ты его замонтировал FETCH_BEFORE_ARGS=-l # чтобы не копировал с CD, а делал symlink
A2: Скопировать в корень CDROM /usr/ports/distfiles. Потом сделать каталог /var/tmp/ports, в нем distfiles - симлинк на /cdrom и CD_MOUNTPT=/var/tmp.

Q: Как мне обновить систему?
A: Сначала cvsup исходников, а потом:
# make buildworld
# make buildkernel KERNCONF=YOUR_KERNEL_HERE
# make installkernel KERNCONF=YOUR_KERNEL_HERE
# shutdown now
# make installworld
# mergemaster
# reboot
Q: Как в портах искать софт?
A:
$ cd /usr/ports && make search key="искомое слово"
Q: Есть ветвистый каталог с кyчей файлов и диpектоpий. С файлов нyжно снять флаг исполнения - "x".
A1:
# find . -type f -exec chmod a-x {} ;
A2:
find . ! -type d -print0 | xargs -0 chmod -x
Q: В 4.4 компилируются еще и загружаемые модули ядра, а потом при make install еще и копируются заново.
A:
# echo "MODULES_WITH_WORLD=true" >> /etc/make.conf
Q: Хочу чтобы сообщения ftpd писались в отдельный log.
A: Прописать в /etc/syslog.conf:
!ftp
*.*			/var/log/ftpd.log
Q: Похоже, обновление системы через stable-supfile, make world не затрагивает /usr/share/doc. Как освежить handbook?
A: Hу еще в /etc/make.conf можно DOC_LANG=en_US.ISO_8859-1 ru_RU.KOI8-R, чтобы не собирать японкие доки.

Q: Ох. у меня канал в одном месте, а бздя - в другом. и из второго места к первому есть только гнилой диалап на 9600.
A: man ports. Там есть удобная фишка под названием make fetch-list и fetch-recursive-list. Оно тебе покажет список файлов нужных для сбоpки этого поpта. Вот их на каком-нибудь ZIP'e, CDRW или IDE и несёшь. /usr/ports/distfiles2 должна быть пустой:
# make DISTDIR=/usr/ports/distfiles2 fetch-recursive
X Window System

Q: KDE забирает на себя управление /dev/dsp через ARTSd и не отдает, пока загружен.
A: В свежей 4.4-STABLE есть возможность pcm cloning. Звук от разных приложений микшируется ядром. Для этого надо sysctl hw.snd.pcm0.vchans=5, для пяти каналов. И использовать /dev/dsp0.0, /dev/dsp0.1 и т.д.

Q: Как в иксах заставить работать колесико у Logitech'а - определяется как Intellimouse с протоколом PS/2 работает как обычная двухкнопочная.
A: Для XFree86 4.x добавить в /etc/X11/XFree86-4
Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "Auto"
    Option      "Device" "/dev/sysmouse"
    Option      "ZAxisMapping" "4 5"
EndSection
Прикладное программное обеспечение

Q: После сборки mc он оказался черно-белым и вместо встроенного редактора вызывается vi. как это подправить. для первого случая mc -c не предлагать.
A: Собрать mc из портов следующим образом:
# cd /usr/ports/misc/mc && make -DWITH_SLANG install clean
# printf "n[Colors]ncolor_terminals=cons25r,xtermn" >> ~/.mc/ini
Q: На протяжении двух недель вытягиваю licq-daily. Компилю и всегда получаю одно и тоже - вис на этапе:
[INI] Starting plugin Qt GUI (version 1.1.0)
A: Отца русской демократии спасет строчка:
$ licq -d 0 -p qt-gui -- -noxim

Q: Кто-нибудь встречал текстовый редактор под консоль, да ещё с подсветкой синтаксиса perl?
A: В ~/.vimrc включаешь sysntax on.
# cd /usr/ports/editors/vim6
# make -DNO_GUI
# make -DNO_GUI install


Подсказки

Linux root

Нередко интересные и полезные вещи забываются, и приходится их открывать для себя заново :-) И решил я собрать и записать все свои, и не свои :-) заметки на полях в сборничке напоминалок.

В: Чем удобно читать info?
О: Ставь pinfo.
В: Как правильно закрыть порт снаружи с помощью iptables?
О: iptables -I INPUT -d proxy.name --dport 3128 -s !192.168.1.0/24 -j DROP
В: Как синхронизировать врямя на Windows машинках с Linux сервера?
О: Поставить самбу, сказать, что она time сервер и синхронизироваться командой net time <netbios-name> /set /yes
В: Хотелось бы, чтобы кто-нибудь поpекомендовал достойный плееp vcd, mpeg4, и т.п.
О: http://mplayer.sourceforge.net/
В: Как забэкапить винт (Linux)?
О: Из документации к ALT Linux Matster 2.2:

$ mount /dev/hda1 /mnt/disk
$ cd /mnt/disk
$ find ./ | cpio -o | bzip2 -9 -c > /tmp/hda1.cpio.bz2
$ cp /tmp/hda1.cpio.bz2 /var/ftp/pub/


© 2001-2015 NLG