精華區beta FreeBSD 關於我們 聯絡資訊
建立一套可以在CD上運行的FreeBSD系統 主要拿來架設NAT、Firewall系統,也可以 建立一套簡單的X-Window使用者環境 Step 1 安裝基本系統 /stand/sysinstall Configure -> Options 修改下列兩項 Release Name => 4.6.2-RELEASE (或是想安裝的版本) Install Root => /home/4.6.2-RELEASE (找個地方來擺系統) Distributions =>按照一般的你的習慣來安裝FreeBSD系統 =>把基本的系統和X系統安裝起來即可 (光碟或是FTP裝起來吧!) Step 2 設定基本系統 # cp -R /stand /home/4.6.2-RELEASE # chroot /home/4.6.2-RELEASE 接下來根目錄會切換至/home/4.6.2-RELEASE # mkdir -p CD-bsd # mkdir -p CD-bsd 這個目錄是我們要放一些設定檔案和開機檔用的 設定一下/etc下面的一些檔案為光碟開機作準備 /etc/rc.conf (至少設定個網路) hostname="xxx.xxx.xxx" ifconfig_xl0="................" defaultrouter="..............." moused_enable="YES" sendmail_enable="NONE" sshd_enable="YES" ## ## ## Firewall選項就看個人了 ## ## ## #firewall_enable="YES" #firewall_script="/etc/rc.firewall" #firewall_type="OPEN" #gateway_enable="YES" #natd_enable="YES" #natd_interface="xl0" ## ## ## PPPoE上網 ## ## 記得編輯/etc/ppp/ppp.conf ## ppp_enable="YES" ppp_mode="ddial" ppp_profile="ISP-Name" #ppp_nat="YES" ## NFS Client 最好還是開啟吧! ## nfs_client_enable="YES" /etc/resolv.conf (把Domain和DNS設定好) domain xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx /etc/rc 大概55行的位置,HOME和PATH環境變數設定之後的位置加入如下: /sbin/mount_mfs -s 30000 swap /tmp /sbin/mount_mfs -s 50000 swap /var /sbin/mount_mfs -s 20000 swap /root /sbin/mount_mfs -s 12000 -o union,noatime,rw swap /dev cd /dev && sh MAKEDEV vty12 pty0 tar zxf /CD-bsd/var.tgz -C / tar zxf /CD-bsd/root.tgz -C / 這個步驟是把swap掛入系統檔案讓系統/tmp /var /root /dev有讀寫的功能 大小可以自己定義 var.tgz和root.tgz在系統會完成的時候才製作 接下來放一個機器可以跑的XF86Config設定檔案到/etc/X11下面 (跑X的時候使用) 假使拿到其他顯示卡不同的硬體去跑的時候 因為root可以讀寫所以重新用xf86cfg -textmode設定好存在 /root/XF86Config就可以跑X了! (只是這樣每次光碟開機都要重新設定就是了) # touch /etc/fstab 如果/etc/fstab裡面有內容就刪除內容讓他置空 如果/etc/fstab沒這個檔案就用touch來產生一個空的 (注意! 一定要有這個檔案,要不然光碟開機後會進不去系統) # rm -rf /dev/ttyv* /dev/ptyp* /dev/ttyp* /dev/vga 刪除這給個dev,之前/etc/rc設定的每次開機都會重新建立新的出來 Step 3 安裝設定基本軟體 接下來開始安裝想要塞進一張光碟下所取捨的系統軟體 也是按照一般的安裝軟體的習慣來安裝就可以了 1. ports 安裝法 2. /stand/sysinstall 直接安裝packages 3. # setenv PACKAGEROOT ftp.tw.freebsd.org # pkg_add -r package-name 基本系統加上基本X-Win大概是310MB左右 (不裝X大概是180MB) 所以大概有接近400MB的空間是可以自己取捨來控制安裝自己常用的 把中文字型都灌好,(細明體也塞進去),建立基本的中文環境 安裝基本的上網工具Mozilla + IglooFTP + sylpheed + gaim + rxvt 再塞整個CJK-LaTeX進去(ghostscript + xpdf + dvipdfm-cjk)配vim-lite WM方面灌WindowMaker和Icewm (灌一堆WM的Dock...不過這些都很小) 這樣下來大概550MB左右...............不知道還要塞什麼! 最後檢察一下/root下自己私人的設定檔案 至少.cshrc的shell要設定好自己慣用的參數 # exit 跳出進行下個步驟 Step 4 製作開機影像檔 做一個給光碟開機的kernel,至少加入以下設定 options ROOTDEVNAME=\"cd9660:acd0\" (防火牆請記得加入相關設定) acd0的地方請自己改成機器上的光碟開機那台的Device config CD-bsd ; cd ../../compile/CD-bsd ; make depend ; make 請注意.....不要打太順make install到自己系統上去...這是給光碟開機用的 (因為我是打太順了....) 再來請去偷FreeBSD的開機影像檔 boot.flp (floppies/boot.flp) 把boot.flp放到/home/4.6.2-RELEASE/CD-bsd/下去 # vnconfig -c vn0 /home/4.6.2-RELEASE/CD-bsd/boot.flp # mount /dev/vn0 /mnt # rm /mnt/mfsroot.gz # cat /usr/src/sys/compile/CD-bsd/kernel | gzip -9 > /mnt/kernel.gz # cp /home/4.6.2-RELEASE/boot/boot0 /mnt/boot # cp /home/4.6.2-RELEASE/boot/loader.4th /mnt/boot # ee /mnt/loader.rc 刪除第一行和第二行 # umount /mnt # vnconfig -u /dev/vn0 Step 5 建立光碟系統 接下來要開始剪裁系統了 # cd/home # mkdir -p /home/CD-bsd # ee tar-exclude (這個檔案內容是那些目錄或是檔案不需要拷貝) usr/ports usr/src stand kernel.GENERIC # tar -X tar-exclude -cf - -C 4.6.2-RELEASE . | tar xpf - -C CD-bsd 這樣會把4.6.2-RELEASE的內容除掉tar-exclude內所包含的名單 包含檔案權限原封不動的搬到/home/CD-bsd 這個目錄是我們才是最後要製作成embedded CD的地方 # cd /home/CD-bsd # tar zcf CD-bsd/var.tgz var # tar zcf CD-bsd/root.tgz root # rm -rf var/* ; rm -rf root/* Step 6 建立光碟影像檔 # cd /home # mkisofs -l -r -L -b CD-bsd/boot.flp -o CD-bsd.iso CD-bsd 把CD-bsd.iso燒好大功告成............ 感想: 其實拿來架個NAT+firewall+DHCP變得很easy,只要事先設定好罷了 甚至喜歡要在上面運行apache+php+mySQL跑Samba也不是什麼難事 建立一個可以上網又可以弄LaTeX的CD環境看起來好像不錯........ 但是....拿來架Server畢竟不是很好的解決方案,log檔關機就消失了 拿來打CJK,雖然說有很完整的環境但是系統打好文件存檔也是個問題 到時候打好還要傳到別的機器上去.......灌在光碟上好像很....無用 作Desktop環境只有簡單的上網工具看的網頁...打BB和看看FTP Knoppix Linux的玩家看到會笑死吧! 人家可是可是不只把KDE3塞進光碟 還建立了一套很完整的使用者系統............. 總之......製作這樣的embedded感覺上很空虛........ 不過自己看爽就好了......而且可以改進的地方還很多 系統內還有很多用不到的可以刪減的! /etc也可以改成可以修改來運作 最好是能夠像Knoppix Linux一樣X-Win和網路可以自己搞定....... 那就真的很方便了........... 如果有錯誤請多指教! -- ┌─────KKCITY─────┐┐┌┐┐┌┐┌─┐┌┬┐┌┬┐┐ ┌ bbs.kkcity.com.tw ├┘┐├┘┐│ │ │ └┬┘ └──From:61.59.151.7 ──┘┘ ┘┘ ┘└─┘└┴┘ ┴ ┴