Max_Monarch
Постоялец
- Регистрация
- 21 Ноя 2008
- Сообщения
- 80
- Реакции
- 9
- Автор темы
- #1
Что доставить дополнительно из портов
sudo
bash
zip
lsof
wget
nmap
thttpd (лечить)
rar
unrar
Параметры ядра для гигабитного ethernet
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=131072
net.inet.tcp.recvbuf_max=1048576
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=131072
net.inet.tcp.sendbuf_max=1048576
net.inet.tcp.maxtcptw=102400
Для просмотра ссылки Войдиили Зарегистрируйся
/etc/sysctl.conf:
net.core.optmem_max=1048576
net.ipv4.udp_rmem_min=81920
net.ipv4.udp_wmem_min=81920
net.core.wmem_max=16777216
net.core.rmem_max=16777216
net.core.wmem_default=16777216
net.core.rmem_default=16777216
Как задать статический роутинг
/etc/rc.conf :
static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"
Как загрузиться с нестандартного boot-пути
F1
boot: 0:ad(2f)
Как сделать ftp-only юзера с chroot'ом в его домашнем каталоге
Если обычный ftpd, то
прописать ему шелл '/bin/date' или '/usr/bin/true' и вписать его в
'/etc/shells'
- вписать его в '/etc/ftpchroot'
Для proftpd вписать в /usr/local/etc/proftpd.conf
DefaultRoot ~
# AllowStoreRestart on
# AllowRetrieveRestart on
# DirFakeUser on ~
# UseFtpUsers off
# MaxClientsPerHost 5
какой командой создается новый раздел диска
(в процессе установки всё проходит гладко).
man sysinstall
man newfs
где живут rc-скрипты начальной загрузки
/etc/rc.* - это системные, их - не трогать!
/usr/local/etc/rc.d/*.sh - вот сюда будут попадать ваши.
Чтобы гарантировано отрабатывал fsck после ресета
fsck_y_enable="YES"
в /etc/rc.conf
что там вместо /etc/hosts.allow
tcp_wrapper встроен в inetd
man inetd
man 5 hosts_access
man 5 hosts_options
управляется через /etc/hosts.allow
Редактирование свойств юзера. vi /etc/passwd не работает
vipw
Как задать hostname
vi /etc/rc.conf
# hostname new_hostname
раскомментировать
hostname="new_hostname"
Перезапуск named
man ndc
ndc reload
Перекомпиляция ядра
Классическая схема для BSD-ядер
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся
cd /usr/src/sys/i386/conf/
cp GENERIC YOURKERNEL
/usr/sbin/config YOURKERNEL
cd ../compile/YOURKERNEL
make depend && make
# теперь вздрогнул, подумал, и...
make install
Оживляем ethernet Intel82562 Express Pro 100 на 865 матерях
Для просмотра ссылки Войдиили Зарегистрируйся
Intel D865GBFL motherboard (AA Revision C25843-401)
Integrated LAN with Intel 82562EZ PLC
2.4C GHz Pentium 4 processor (800MHz, HT)
FreeBSD 4.8-RELEASE -- GENERIC kernel
(although, would presumably happen with any kernel with the current
fxp driver)
Version info from if_fxp.c:
* $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.110.2.28 2003/01/28 11:17:33 sanpei Ex
p $
Relevant output from 'pciconf -lv':
none4@pci1:8:0: class=0x020000 card=0x302f8086 chip=0x10508086 rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
class = network
subclass = ethernet
Description
The fxp driver fails to recognize the integrated Intel 82562EZ LAN on the
Intel D865GBFL motherboard. If my diagnosis is correct, this is the result
of this version of the 82562 chip reporting a new PCI "chip id", as has
happened before (see kern/39974).
How-To-Repeat
Install 4.8-RELEASE on a system with an Intel D865GBFL motherboard (the AA
Revision on the board in question was C25843-401). During and after
installation, the kernel (specifically the fxp driver) fails to detect the
on-board Intel 82562 LAN.
Fix
Add an entry to the fxp_ident_table array in sys/dev/fxp/if_fxp.c for the
new PCI chip id and re-build the kernel. Here's a patch:
--- if_fxp.c Wed Jun 11 16:36:59 2003
+++ if_fxp.c-patched Wed Jun 11 16:36:30 2003
@@ -165,6 +165,7 @@
{ 0x103C, "Intel Pro/100 Ethernet" },
{ 0x103D, "Intel Pro/100 Ethernet" },
{ 0x103E, "Intel Pro/100 Ethernet" },
+ { 0x1050, "Intel Pro/100 Ethernet" },
{ 0x1059, "Intel Pro/100 M Mobile Connection" },
{ 0, NULL },
};
Дисковые устройства
IDE-диски:
/dev/ad0 (нумерация с 0)
/dev/ad1 ...
SCSI-диски:
/dev/da0 (нумерация с 0)
/dev/da1 ...
Разделы на диске (они же - слайсы)
Для разметки используется fdisk с дикими ключами
/dev/ad0s1 (нумерация с 1-го)
/dev/ad0s2 ...
BSD-subsections внутри раздела
Для разметки используется disklabel с дикими ключами
/dev/ae0s2е (нумерация от е до h, abcd - служебные подсекции)
/dev/ae0s2ф ...
Впрочем, вручную эти команды совершенно неоперабельны, вместо них
используется административный фронтенд /stand/sysinstall
USB-Флоппи-диски (прикидываются SCSI-дисками)
/dev/de0
IDE-DVD/CDROM
/dev/acd0c
Типы файловых систем
ufs
ufs2 (начиная с 5.1 RELEASE)
iso9660
msdos
Постинсталляция
Конфигуратор
/stand/sysinstall
Просто конфигур
/etc/rc.conf
Параметры ядра
Посмотреть
sysctl -a|grep ip
Задать в онлайне
sysctl net.inet.icmp.icmplim=400
Для постоянной установки записать в /etc/sysctl.conf
переменная=значение
net.inet.icmp.icmplim=400
kern.maxfiles=32768
net.inet.ip.portrange.randomized=0
net.inet.ip.portrange.first=49152
net.inet.ip.portrange.last=65535
kern.ipc.somaxconn=4096
Readonly параметры поменять через /etc/sysctl.conf не удастся.
Их мы записываем в
/boot/loader.conf
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="131072"
Часть параметров задается в /usr/src/sys/i386/config/LINT
А можно дописать их в YOURKERNEL
Например вполне разумно смотрятся
maxusers 512
options NMBUFS=16384
options NMBCLUSTERS=32768
Как смотреть температуру процессора, скорость вращения вентиляторов
coretemp # поставить
/sys/modules/coretemp$ sysctl -a | grep temperat
lmmon из портов.
consolehm
healthd
Установка пакета из сети
Makefiles для установки пакетов лежат в /usr/ports
Для инсталляции пакета xyz:
locate xyz | grep /usr/ports # определяем его портовую директорию
cd /usr/ports/whereitis/xyz # и переходим в нее
make install
если не хотим качать пакет из интернета - заранее кладем его в
/usr/ports/distfiles
или же просто
export PACKAGEROOT='Для просмотра ссылки Войдиили Зарегистрируйся зеркало*.freebsd.org'
pkg_add -r package_short_name # (имя папки в портах, как правило)
А еще есть
/usr/ports/sysutils/portupgrade
Как обновить дерево портов
ДЛя начала его надо просто установить. Для этого
/sbin/sysinstall
Configuration
Distribution
Ports и устанавливаем их из сети
Потом собираем и ставим cvsup
/usr/ports/net/cvsup-without-gui
make install
man cvsup # и внимательно читаем
Затем создаем файл ~/sup/ports-supfile # что брать и откуда
###########################################################
*default host=cvsup6.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default release=cvs delete use-rel-suffix compress
*default compress
ports-all
###########################################################
Затем создаем файл ~/sup/refuse # список, чего не брать
doc/da_*
doc/de_*
doc/es_*
doc/el_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*
ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
# ports/russian
ports/ukrainian
ports/vietnamese
# ports/x11
# ports/x11-clocks
# ports/x11-fm
# ports/x11-fonts
# ports/x11-servers
# ports/x11-toolkits
# ports/x11-wm
# ports/x11-themes
##########################################
и наконец
cvsup ~/sup/ports-supfile # что брать и откуда
Как назначить IP-alias на сетевой интерфейс
Одноразовая операция
ifconfig fxp0 alias 1.2.3.4 netmask 0xffffffff # добавить
ifconfig fxp0 -alias 1.2.3.4 # убрать
На постоянной основе:
/etc/rc.conf
ifconfig_fxp0_alias0="inet 81.19.6.18 netmask 0xffffffff"
ifconfig_fxp0_alias1="inet 81.19.6.19 netmask 0xffffffff"
Атрибуты иммутабле
флаг schg -- system immutable
ls -lo /path/to/file # посмотреть
chflags 0 /path/to/file # сбросить
Лечение bad blocks во FreeBSD
Подробнее - тут
Для просмотра ссылки Войдиили Зарегистрируйся
SCSI сами лечат(ремапят) свои bad-блоки. Начиная с 4.2 из FreeBSD-fsck
убрали софтверный ремапинг. Но. Аппаратный авторемапинг диска происходит
только при записи данных в бэд-блок.
Можно "положить" поверх bad-блоков файлики (командой badset) и ничего не
лечить.
Можно провести ремапинг в режиме "почти-readonly" DOS-утилитой mhdd32
Можно перепрописать диск командой dd
Как сделать предварительный бэкап? Ведь dd нарвавшись на bad-block прерывает
работу. Нас спасет noconv=noerr,sync (не останавливаться при ошибке,
непрочитанные блоки заменять нулями). Размер блока имеет смысл делать
кратным блоку fs, чтоб быстрее работало, или 512 байт - чтобы обнуляло
_только_ битые блоки.
# делаем бэкап
dd if=/dev/da4s1e bs=8k of=/path/file conv=noerror,sync
# "лечим-калечим", возможно, несколько раз
dd if=/dev/random bs=8k of=/dev/da4s1e conv=noerror,sync
# восстанавливаемся с бэкапа
dd if=/path/file bs=1024k of=/dev/da4s1e
Исправление загрузчика
- выписываешь fstab на листок
- выполняешь boot0cfg -v ad0 (смотрим стандартный загрузчик или bootmanager)
boot0cfg -o noupdate -s 1 /dev/ad0
noupdate - не позволять бутменеджеру менять умолчание загрузчика, и помнить слайс 1
-m 3 зачем???
- fdisk -B ad0 (грохаем бутменеджер)
- bsdlabel ad0s1 > save-old.label (сохраняем на всякий случай разбивку)
- bsdlabel -B ad0s1 (прописываем стандартный загрузчик)
если все ok, потом можешь поставить бутменеджер.
попробуй заново прописать стандартный загрузчик:
# bsdlabel -w -B ad0s1
# man bsdlabel (покажет где берется загрузчик ls -la /boot/boot
/boot/boot Default boot image
# man 8 boot
...
/boot.config parameters for the boot blocks (optional)
/boot/boot1 first stage bootstrap file
/boot/boot2 second stage bootstrap file
/boot/loader third stage bootstrap
/boot/kernel/kernel
default kernel
-------------------------------------------
поплясал вокруг сервера, побил в бубен и добавил строку в ядро
options ROOTDEVNAME=\"ufs:ar0s1a\"
все заработало
sudo
bash
zip
lsof
wget
nmap
thttpd (лечить)
rar
unrar
Параметры ядра для гигабитного ethernet
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=131072
net.inet.tcp.recvbuf_max=1048576
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=131072
net.inet.tcp.sendbuf_max=1048576
net.inet.tcp.maxtcptw=102400
Для просмотра ссылки Войди
/etc/sysctl.conf:
net.core.optmem_max=1048576
net.ipv4.udp_rmem_min=81920
net.ipv4.udp_wmem_min=81920
net.core.wmem_max=16777216
net.core.rmem_max=16777216
net.core.wmem_default=16777216
net.core.rmem_default=16777216
Как задать статический роутинг
/etc/rc.conf :
static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"
Как загрузиться с нестандартного boot-пути
F1
boot: 0:ad(2f)
Как сделать ftp-only юзера с chroot'ом в его домашнем каталоге
Если обычный ftpd, то
прописать ему шелл '/bin/date' или '/usr/bin/true' и вписать его в
'/etc/shells'
- вписать его в '/etc/ftpchroot'
Для proftpd вписать в /usr/local/etc/proftpd.conf
DefaultRoot ~
# AllowStoreRestart on
# AllowRetrieveRestart on
# DirFakeUser on ~
# UseFtpUsers off
# MaxClientsPerHost 5
какой командой создается новый раздел диска
(в процессе установки всё проходит гладко).
man sysinstall
man newfs
где живут rc-скрипты начальной загрузки
/etc/rc.* - это системные, их - не трогать!
/usr/local/etc/rc.d/*.sh - вот сюда будут попадать ваши.
Чтобы гарантировано отрабатывал fsck после ресета
fsck_y_enable="YES"
в /etc/rc.conf
что там вместо /etc/hosts.allow
tcp_wrapper встроен в inetd
man inetd
man 5 hosts_access
man 5 hosts_options
управляется через /etc/hosts.allow
Редактирование свойств юзера. vi /etc/passwd не работает
vipw
Как задать hostname
vi /etc/rc.conf
# hostname new_hostname
раскомментировать
hostname="new_hostname"
Перезапуск named
man ndc
ndc reload
Перекомпиляция ядра
Классическая схема для BSD-ядер
Для просмотра ссылки Войди
Для просмотра ссылки Войди
cd /usr/src/sys/i386/conf/
cp GENERIC YOURKERNEL
/usr/sbin/config YOURKERNEL
cd ../compile/YOURKERNEL
make depend && make
# теперь вздрогнул, подумал, и...
make install
Оживляем ethernet Intel82562 Express Pro 100 на 865 матерях
Для просмотра ссылки Войди
Intel D865GBFL motherboard (AA Revision C25843-401)
Integrated LAN with Intel 82562EZ PLC
2.4C GHz Pentium 4 processor (800MHz, HT)
FreeBSD 4.8-RELEASE -- GENERIC kernel
(although, would presumably happen with any kernel with the current
fxp driver)
Version info from if_fxp.c:
* $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.110.2.28 2003/01/28 11:17:33 sanpei Ex
p $
Relevant output from 'pciconf -lv':
none4@pci1:8:0: class=0x020000 card=0x302f8086 chip=0x10508086 rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
class = network
subclass = ethernet
Description
The fxp driver fails to recognize the integrated Intel 82562EZ LAN on the
Intel D865GBFL motherboard. If my diagnosis is correct, this is the result
of this version of the 82562 chip reporting a new PCI "chip id", as has
happened before (see kern/39974).
How-To-Repeat
Install 4.8-RELEASE on a system with an Intel D865GBFL motherboard (the AA
Revision on the board in question was C25843-401). During and after
installation, the kernel (specifically the fxp driver) fails to detect the
on-board Intel 82562 LAN.
Fix
Add an entry to the fxp_ident_table array in sys/dev/fxp/if_fxp.c for the
new PCI chip id and re-build the kernel. Here's a patch:
--- if_fxp.c Wed Jun 11 16:36:59 2003
+++ if_fxp.c-patched Wed Jun 11 16:36:30 2003
@@ -165,6 +165,7 @@
{ 0x103C, "Intel Pro/100 Ethernet" },
{ 0x103D, "Intel Pro/100 Ethernet" },
{ 0x103E, "Intel Pro/100 Ethernet" },
+ { 0x1050, "Intel Pro/100 Ethernet" },
{ 0x1059, "Intel Pro/100 M Mobile Connection" },
{ 0, NULL },
};
Дисковые устройства
IDE-диски:
/dev/ad0 (нумерация с 0)
/dev/ad1 ...
SCSI-диски:
/dev/da0 (нумерация с 0)
/dev/da1 ...
Разделы на диске (они же - слайсы)
Для разметки используется fdisk с дикими ключами
/dev/ad0s1 (нумерация с 1-го)
/dev/ad0s2 ...
BSD-subsections внутри раздела
Для разметки используется disklabel с дикими ключами
/dev/ae0s2е (нумерация от е до h, abcd - служебные подсекции)
/dev/ae0s2ф ...
Впрочем, вручную эти команды совершенно неоперабельны, вместо них
используется административный фронтенд /stand/sysinstall
USB-Флоппи-диски (прикидываются SCSI-дисками)
/dev/de0
IDE-DVD/CDROM
/dev/acd0c
Типы файловых систем
ufs
ufs2 (начиная с 5.1 RELEASE)
iso9660
msdos
Постинсталляция
Конфигуратор
/stand/sysinstall
Просто конфигур
/etc/rc.conf
Параметры ядра
Посмотреть
sysctl -a|grep ip
Задать в онлайне
sysctl net.inet.icmp.icmplim=400
Для постоянной установки записать в /etc/sysctl.conf
переменная=значение
net.inet.icmp.icmplim=400
kern.maxfiles=32768
net.inet.ip.portrange.randomized=0
net.inet.ip.portrange.first=49152
net.inet.ip.portrange.last=65535
kern.ipc.somaxconn=4096
Readonly параметры поменять через /etc/sysctl.conf не удастся.
Их мы записываем в
/boot/loader.conf
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="131072"
Часть параметров задается в /usr/src/sys/i386/config/LINT
А можно дописать их в YOURKERNEL
Например вполне разумно смотрятся
maxusers 512
options NMBUFS=16384
options NMBCLUSTERS=32768
Как смотреть температуру процессора, скорость вращения вентиляторов
coretemp # поставить
/sys/modules/coretemp$ sysctl -a | grep temperat
lmmon из портов.
consolehm
healthd
Установка пакета из сети
Makefiles для установки пакетов лежат в /usr/ports
Для инсталляции пакета xyz:
locate xyz | grep /usr/ports # определяем его портовую директорию
cd /usr/ports/whereitis/xyz # и переходим в нее
make install
если не хотим качать пакет из интернета - заранее кладем его в
/usr/ports/distfiles
или же просто
export PACKAGEROOT='Для просмотра ссылки Войди
pkg_add -r package_short_name # (имя папки в портах, как правило)
А еще есть
/usr/ports/sysutils/portupgrade
Как обновить дерево портов
ДЛя начала его надо просто установить. Для этого
/sbin/sysinstall
Configuration
Distribution
Ports и устанавливаем их из сети
Потом собираем и ставим cvsup
/usr/ports/net/cvsup-without-gui
make install
man cvsup # и внимательно читаем
Затем создаем файл ~/sup/ports-supfile # что брать и откуда
###########################################################
*default host=cvsup6.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default release=cvs delete use-rel-suffix compress
*default compress
ports-all
###########################################################
Затем создаем файл ~/sup/refuse # список, чего не брать
doc/da_*
doc/de_*
doc/es_*
doc/el_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*
ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
# ports/russian
ports/ukrainian
ports/vietnamese
# ports/x11
# ports/x11-clocks
# ports/x11-fm
# ports/x11-fonts
# ports/x11-servers
# ports/x11-toolkits
# ports/x11-wm
# ports/x11-themes
##########################################
и наконец
cvsup ~/sup/ports-supfile # что брать и откуда
Как назначить IP-alias на сетевой интерфейс
Одноразовая операция
ifconfig fxp0 alias 1.2.3.4 netmask 0xffffffff # добавить
ifconfig fxp0 -alias 1.2.3.4 # убрать
На постоянной основе:
/etc/rc.conf
ifconfig_fxp0_alias0="inet 81.19.6.18 netmask 0xffffffff"
ifconfig_fxp0_alias1="inet 81.19.6.19 netmask 0xffffffff"
Атрибуты иммутабле
флаг schg -- system immutable
ls -lo /path/to/file # посмотреть
chflags 0 /path/to/file # сбросить
Лечение bad blocks во FreeBSD
Подробнее - тут
Для просмотра ссылки Войди
SCSI сами лечат(ремапят) свои bad-блоки. Начиная с 4.2 из FreeBSD-fsck
убрали софтверный ремапинг. Но. Аппаратный авторемапинг диска происходит
только при записи данных в бэд-блок.
Можно "положить" поверх bad-блоков файлики (командой badset) и ничего не
лечить.
Можно провести ремапинг в режиме "почти-readonly" DOS-утилитой mhdd32
Можно перепрописать диск командой dd
Как сделать предварительный бэкап? Ведь dd нарвавшись на bad-block прерывает
работу. Нас спасет noconv=noerr,sync (не останавливаться при ошибке,
непрочитанные блоки заменять нулями). Размер блока имеет смысл делать
кратным блоку fs, чтоб быстрее работало, или 512 байт - чтобы обнуляло
_только_ битые блоки.
# делаем бэкап
dd if=/dev/da4s1e bs=8k of=/path/file conv=noerror,sync
# "лечим-калечим", возможно, несколько раз
dd if=/dev/random bs=8k of=/dev/da4s1e conv=noerror,sync
# восстанавливаемся с бэкапа
dd if=/path/file bs=1024k of=/dev/da4s1e
Исправление загрузчика
- выписываешь fstab на листок
- выполняешь boot0cfg -v ad0 (смотрим стандартный загрузчик или bootmanager)
boot0cfg -o noupdate -s 1 /dev/ad0
noupdate - не позволять бутменеджеру менять умолчание загрузчика, и помнить слайс 1
-m 3 зачем???
- fdisk -B ad0 (грохаем бутменеджер)
- bsdlabel ad0s1 > save-old.label (сохраняем на всякий случай разбивку)
- bsdlabel -B ad0s1 (прописываем стандартный загрузчик)
если все ok, потом можешь поставить бутменеджер.
попробуй заново прописать стандартный загрузчик:
# bsdlabel -w -B ad0s1
# man bsdlabel (покажет где берется загрузчик ls -la /boot/boot
/boot/boot Default boot image
# man 8 boot
...
/boot.config parameters for the boot blocks (optional)
/boot/boot1 first stage bootstrap file
/boot/boot2 second stage bootstrap file
/boot/loader third stage bootstrap
/boot/kernel/kernel
default kernel
-------------------------------------------
поплясал вокруг сервера, побил в бубен и добавил строку в ядро
options ROOTDEVNAME=\"ufs:ar0s1a\"
все заработало