====== Serial Console ====== 這邊說的是 FreeBSD 6.x (20060127 之後), 7.x 的用法,之前的可以看[[http://in2.wiki.ptt.cc/-SerialConsole|in2's Serial Console]](他的不太對,最後還要用 bsdlabel(8) update Bootstraps 才對)。如果不是直接裝 20060127 以後的 6.x,請先用 bsdlabel(8) 更新過 Bootstraps 才行,否則認不得 -S 這個(可能要關掉 GEOM 防射腳,才能更新)。 * kernel conf device sio * /boot.config -Dh -S115200 * /boot/loader.conf console="comconsole vidconsole" machdep.conspeed=115200 boot_multicons="YES" * /etc/ttys ttyd0 "/usr/libexec/getty std.115200" cons25 on secure * /etc/remote (接 serial console 的) console:dv=/dev/cuad0:br#115200:pa=none: * 開機用 screen 接的話 /usr/bin/env HOME=/root TERM=cons25 LANG=C /usr/local/bin/screen -dm -c /root/screenrc-console defscrollback 20000 vbell off screen -t con /root/tip.sh con #!/bin/sh export HOME=/root export TERM=cons25 while true; do /usr/bin/tip $@ echo "sleep 10 secs" /bin/sleep 10 done ====== GEOM Journaling ====== If you see 'panic: journal overflow', tune kern.geom.journal.force_switch=50 kern.geom.journal.cache.switch=75 to force journal flush more frequently. If ''kern.geom.journal.stats.wait_for_copy'' is higher, tune kern.geom.journal.parallel_copies=24 # default 16 kern.geom.journal.parallel_flushes=12 # default 16 to force gjournal copies data faster. Increase gjournal cache (by increase total kernel memory) vm.kmem_size_max=419430400 ====== PXE Install ====== * Load bootonly CD into /pxe * vfs.root.mountfrom="ufs:/dev/md0c" in loader.conf * gzip -d boot/mfsroot.gz * [OPTIONAL] export installation CD via NFS * DHCP host pxe { hardware ethernet 00:11:22:33:44:55; fixed-address 10.0.0.1; next-server 10.0.0.254; # server ip (nfs, also for tftp server) # server-identifier 10.0.0.254; filename "/boot/pxeboot"; # relative to tftp root option root-path "/pxe/"; # bootonly, absolute path } * NFS [OPTIONAL?] /pxe 10.0.0.1 * tftp /usr/libexec/tftpd -s /pxe ====== IPMI ====== * [[http://in2.wiki.ptt.cc/-%E5%9C%A8+FreeBSD+%E4%B8%8A%E4%BD%BF%E7%94%A8+ipmi+%E9%80%B2%E8%A1%8C%E9%81%A0%E7%AB%AF%E9%9B%BB%E6%BA%90%E7%AE%A1%E7%90%86|in2's 在 FreeBSD 上使用 ipmi 進行遠端電源管理]] * 在 20060615 以後的 RELENG_6 已經內建 ipmi(4) * 用 bge(4) 的話,需要 [[http://people.freebsd.org/~rafan/bge-ipmi-6.diff|patch]] (已經在 HEAD 了,這個只是單純 backport) * 設定 ipmitool -I open chassis status ipmitool -I open lan set 7 ipaddr 該網卡的IP ipmitool -I open lan set 7 netmask 該網卡的netmask ipmitool -I open lan set 7 defgw ipaddr 該網卡的DefaultGateway # 不見得 ipmitool -I open lan set 7 access on ipmitool -I open lan set 7 password 你的密碼 ipmitool -I open lan set 7 auth CALLBACK MD5 ipmitool -I open lan set 7 auth USER MD5 ipmitool -I open lan set 7 auth OPERATOR MD5 ipmitool -I open lan set 7 auth ADMIN MD5 ipmitool -I open lan set 7 user * 測試 ipmitool -A PASSWORD -I lan -H 該機器的ip -P 密碼 chassis status * 常用功能 * power status * power on * power off * power reset * power soft (via acpi) * power cycle ====== Booting ====== Reference * [[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot-blocks.html|Handbook 12.3 The Boot Manager and Boot Stages]] * [[http://www.freebsd.org/cgi/man.cgi?query=boot&apropos=0&sektion=0&manpath=FreeBSD&format=html|boot(8)]] * boot0 (boot manager) * ''fdisk -B -b /boot/boot0 device'' F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 Default: F2 * boot1 (Stage 1) (boot block) * ''bsdlabel -B diskslice'' * 512 bytes * knows about disklabel * a rotating bar (\ - | /) * find and exectute boot2 * boot2 (Stage 2) (boot block) * ''bsdlabel -B diskslice'' * knows about filesystem * choose loader or kernel * read ''/boot.config'' from slice ''a'' //only// >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot: * loader (Stage 3) ====== pkgtools.conf ====== * ''AFTERINSTALL'' AFTERINSTALL = { '*' => proc { |origin| cmd_restart_rc(origin) }, } ====== Jail ====== * periodic.conf daily_status_disks_enable="NO" daily_status_network_enable="NO" daily_status_security_chksetuid_enable="NO" daily_status_security_chkmounts_enable="NO" daily_status_security_ipfwdenied_enable="NO" daily_status_security_ipfdenied_enable="NO" daily_status_security_pfdenied_enable="NO" daily_status_security_ipfwlimit_enable="NO" daily_status_security_ip6fwdenied_enable="NO" daily_status_security_ip6fwlimit_enable="NO" daily_status_security_kernelmsg_enable="NO" ====== ports tinderbox ====== * Install to /home/tinderbox (from tarball) * Follow README * Setup ccache * Compile kernel with COMPAT_FREEBSD[56] * [[http://www.marcuscom.com/downloads/binutils.diff|binutil patch]] for on 7.x ./tc updateHookCmd -h preJailBuild -c /home/tinderbox/patch/binutils.sh $ cat /home/tinderbox/patch/binutils.sh #!/bin/sh major_version=$(echo ${JAIL} | sed -E -e 's|(^.).*$|\1|') if [ ${major_version} -le 6 ]; then cd ${SRCBASE} patch -p1 < /home/tinderbox/patch/binutils.diff fi exit 0 * portstree.env export FORCE_PACKAGE=1 export TRYBROKEN=1 * build.env (nodoc) export NOPORTDOCS=1 export NOPORTEXAMPLES=1 export NOPORTDATA=1 * build.env (nonls) export WITHOUT_NLS=1 * apache conf DocumentRoot /home/tinderbox/scripts/www-exp Alias /logs/ "/home/tinderbox/logs/" Alias /packages/ "/home/tinderbox/packages/" Alias /errors/ "/home/tinderbox/errors/" #Alias /tb/ "/home/tinderbox/scripts/www-exp/" Order allow,deny Allow from all Order deny,allow Deny from all ====== misc ====== * ''ls -S'' to sorted by size (6.0)