[Power by FreeBSD]
顏國雄 2001/02 初
FreeBSD 的目錄結構
2003/08/06 修改 

FreeBSD 向來有嚴謹的目錄架構,什麼東西放在那個位置清清楚楚, 我們在管理的時候如果也能按照規劃的目錄來存放東西,相信一定不會殺錯東西,找不到檔案。

下面我們來研究一下 FreeBSD4.x 的目錄結構 (詳細的內容可以 man heir) 。

依檔案的屬性來區分

就檔案的屬性來說,在找 FreeBSD 的檔案時我們可以依以下原則:

設定檔

/etc/*.*
/usr/local/etc/*.*

自動執行的 scripts

scripts 類似 DOS 的批次檔,裡面放了預計要執行的指令。

/etc/rc.* (系統預設的,不建議更動)
/etc/rc.local (可加入自己要執行的命令,類似 autoexec.bat)
/usr/local/etc/rc.d/*.sh (要執行就下: xxx.sh start ,停止就下: xxx.sh stop)

說明:/usr/local/etc/rc.d 中的 scripts 如果不想自動執行就把它改成不是 .sh 結尾。例如:將apache.sh 改成 apache.sh.bak ,這樣 apache 就不會自動啟動,反之亦然。

系統預設的程式

/bin/*.*
/sbin/*.*
/usr/bin/*.*
/usr/sbin/*.*

自行安裝的程式

/usr/local/bin/*.*
/usr/local/sbin/*.*

網路服務的程式

/usr/libexec/*.* 或 /usr/sbin/*.*
/usr/local/libexec/*.* 或 /usr/local/sbin/*.*

記錄

/var/log/*.*

信件

/var/mail/*.* (使用者的信箱,與帳號同名的檔案)
/var/spool/mqueue/*.* 或 /var/spool/clientmqueue/*.* (等待傳送的信件)

資料庫

/var/db/*.*

重要檔案備份檔

/var/backups

文件,範例

/usr/share/*.* 或 /usr/local/share

 

由 / 出發

/ 底下的目錄與檔案


.cshrc          cdrom           home            modules         stand
.profile        compat          kernel          modules.old     sys
COPYRIGHT       dev             kernel.GENERIC  proc            tmp
bin             dist            kernel.old      root            usr
boot            etc             mnt             sbin            var

kernel kernel.GENERIC kernel.old 三個檔案看檔名就知道是系統核心

/bin 一般使用者指令,都是系統必備的
/sbin 系統程式和管理工具,也是系統必備的
/etc 系統設定檔和開機時會用到的 script,使用者的密碼檔、群組檔、預設的DNS資料庫檔......等,此目錄是備份及系統轉移時一定要保存的目錄
/boot 放的是 kernel 啟動時的設定檔及程序
/modules kernel 的模組,例如裡面的 if_* 就是支援用動態載入的網卡modules
/modules.old 舊 kernel 的 modules 備份,如果核心還沒重編譯,不會有這個目錄
/sys kernel 的 source code,是一個 soft link,其實就是 /usr/src/sys
/compat 為和其它作業系統相容(執行別的系統程式)所需要的函式庫
/dev device node(裝置結點檔),可用 /dev/MAKEDEV 來產生
/root root 的 home directory,大部份的人都沒有把 root 的信件轉給另一個普通帳號,或是有時就用 root login ,並在這個目錄下存很多檔案,這個目錄常常是吃掉 / 最大空間的兇手,要注意,以免爆掉了
/stand 放的都是安裝磁片上的程式,可供作系統設定或緊急修復系統用,最好用的就是 sysinstall
/cdrom 空的目錄,一般會把 cdrom 掛在這裡
/mnt 空的目錄,暫時 mount 其它檔案系統用
/tmp 和 /var/tmp 一樣,是用來放暫存檔用,只是 /var/tmp 中的東西重新開機後仍會存,在而 /tmp 在開機時會自動清除
/usr 放的是使用者會用到的工具、應用軟體......
/var 這個目錄下一般放的是寫入很頻繁的資料,像記錄檔、資料庫、信件、暫存檔......鈴鋃滿目
/home 這裡一般習慣是放一般使用者的個人目錄及檔案

 

/usr 下的目錄


X11R6   compat  include libdata local   ports   share
bin     games   lib     libexec obj     sbin    src
    • /usr/bin , /usr/sbin:呵∼它們的關係像不像 /bin , /sbin ,Yes!沒錯,一個是放一般工具,一個是放系統及管理工具,/usr/sbin 也放有用來提供網路服務的程式(Daemon),看到檔名結尾是 d 的,就可以合理的懷疑一下
    • /usr/share:放的是手冊,說明文件和範例
    • /usr/src:放 FreeBSD 系統本身的 source
    • /usr/ports:FreeBSD ports 的預設目錄,如果要手動編譯程式就會用到這裡。
    • /usr/obj:Make world 昇級整個系統時放編譯完的東西用
    • /usr/local:放自行安裝的程式和資料用,它的目錄架構和 /usr 類似,一般 packages/ports 安裝的東西大部份都放在這裡,包含程式、文件、設定、函式庫......

/usr/local 下的目錄


bin             info            man             share
etc             lib             private
include         libexec         sbin

 

磁碟空間的分割策略與資料備份

由於 FreeBSD 對於檔案目錄的使用有一定的邏輯,如果規劃的好, 相信在做系統昇級或資料備份時就不會感到頭痛了
如果可以將 / , /usr , /usr/local , /var , /tmp , /home 各自獨立在不同分割區
會有一些好處

狀況一:系統昇級(重灌)

只要將 /etc /root 下的東西備份到 /home 下
重權時新系統會用到的 / , /usr 就可以放心的做掉,灌新資料
等更新完了再把原 /etc/ 中有用的資料,如:帳號資料、群組資料、啟動設定......等
有用的資料還原到新的 /etc 中即可立即恢復運作。

狀況二:檔案系統損毀

有時因為停電或其它因素,資料寫到一半完蛋了,修復也無解,照上面的分割,
/ , /usr , /usr/local 維持系統基本運作的目錄因為幾乎沒有寫入的機會,
損失會最小,不會因為經常寫入資料的 /var 死掉了,系統也跟著掛了

詳細的說明還是自己 man hier


 


 基礎: 書籤 - 簡介 - 安裝 - Slices - Unix基礎 - 基本指令 - 首次登入 - 目錄架構
 系統: 核心編譯 - 系統升級 - Packages - Ports - PicoBSD - Quota
 網路: 服務管理 - WWW - FTP - MAIL - DNS - Samba - NFS - DHCP - webmin - IMP - OpenWebmail
 其它: Backup - UPS - 系統安全 - ipfw&natd - 撥接服務 - 計時制ADSL - 雜記 - FAQ

北市文山區力行國小顏國雄