Надоело мне в 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'ом.
Установка
Мой винчестер поделен на три части:
windows 2000 Professional rus+SP2 на NTFS
пустой раздел под FAT32
неразмеченное пространство
Для начала я прочитал главу 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.
Переходим к разметке разделов. Но при этом стоит учитывать для выделения места под раздел в слайсе:
в / находится ядро, модули и базовые конфигурационные файлы
в /home домашнии каталоги пользователей
в /usr будут ставится программы и храниться дерево src, и ports
в /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/defaults/make.conf в /etc/make.conf. В этом файле мы укажем опции с которыми будет собираться новая система. Не забудем также и конфигурационный файл для ядра системы, который будет называться NP. Для этого создадим NP, взяв за основу уже существующий конфигурационный файл GENERIC:
Шаги по регенерации ядра и построению нового мира, подробно описаны
в handbook.
Первоначальная настройка системы
Укоротим приветственную надпись в /etc/motd т.е. удаляем все после приветствия нас в FreeBSD :
FreeBSD 4.5-RC (NP) #0: Thu Jan 10 15:28:36 NOVT 2002
Welcome to FreeBSD!
Сделаем "tmp" каталог единственным, ведь незачем же разводить несколько помоек и заодно почистим место от документации. Потом читать документацию можно либо на соседнем сервере,
либо в internet:
А теперь идем в /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".
Составлен по материалам конференции: 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: Как и откуда установить 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
Для того что бы анонимный 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
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
Нередко интересные и полезные вещи забываются,
и приходится их открывать для себя заново И решил я собрать и записать все свои, и не свои заметки на полях в сборничке напоминалок.
В: Чем удобно читать 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: