Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 檔案系統目錄結構深度解析:FHS 標準、掛載機制與連結技術

編輯:Linux 教學

一、Linux 目錄樹概覽 (FHS 標準)

Linux 採用單一倒置樹狀結構,根目錄 / 為起點,所有分區、裝置、網路共享皆掛載於此樹下。這與 Windows 多磁碟機代號 (C:、D:) 平行結構截然不同。

核心目錄速查表

目錄用途關鍵說明
/bin基本使用者指令單人模式也需可用 (ls、cp、bash 等)
/sbin系統管理指令需 root 執行 (fdisk、reboot、iptables 等)
/etc系統配置檔所有服務設定、開機腳本
/dev裝置檔案硬碟、終端機、USB 等
/proc虛擬檔案系統核心資料結構映射 (記憶體、CPU、進程資訊)
/sys裝置驅動模型核心 2.6+ 引入,硬體屬性匯出
/home使用者家目錄/home/user 可簡寫 ~user
/rootroot 家目錄與 /home/root 無關
/tmp暫存檔案重開機清空,所有使用者可寫
/var可變資料日誌、郵件、快取、資料庫檔案
/usr唯讀使用者程式第二層級目錄,可獨立分區/唯讀掛載
/opt第三方套裝軟體/opt/google/chrome 等
/mnt臨時掛載點手動掛載光碟、USB、網路磁碟
/media自動掛載媒體現代桌面環境自動掛載 USB/光碟處
/srv服務資料/srv/www、/srv/ftp
/lost+found檔案系統修復殘留fsck 修復後無法歸屬的檔案片段

/usr 子目錄結構

/usr
├── bin/          # 非必要使用者指令
├── sbin/         # 非必要系統指令
├── lib/          # 函式庫
├── include/      # C 標頭檔
├── share/        # 架構無關資料 (man、locale、doc)
├── src/          # 原始碼 (核心源碼在 /usr/src/linux)
├── local/        # 本地自編譯軟體 (bin、lib、etc、src)
└── X11R6/        # X Window 系統 (舊版)

二、檔案系統與索引節點 (inode)

  • 每個檔案/目錄對應唯一 inode 號碼,儲存:權限、擁有者、時間戳、資料區塊指標。
  • 目錄本質是「檔名 → inode 號」的對應表。
  • ls -i 可查看 inode 號。

三、硬連結 vs 符號連結 (軟連結)

特性硬連結 (ln)符號連結 (ln -s)
inode相同不同 (連結檔本身有獨立 inode)
跨檔案系統不可可
目標類型僅檔案檔案/目錄/裝置/管道皆可
刪除源檔資料保留 (連結計數 -1)連結失效 (斷鏈)
防誤刪是 (需刪除所有硬連結才釋放空間)否
類比同一檔案的別名Windows 捷徑

指令範例

# 硬連結
ln /etc/passwd /tmp/passwd.hard
# 符號連結
ln -s /etc/passwd /tmp/passwd.soft
# 查看 inode
ls -i /etc/passwd /tmp/passwd.hard /tmp/passwd.soft

四、掛載機制詳解

1. 核心概念

  • 每個分區 = 一個獨立檔案系統,擁有自己的目錄樹。
  • 掛載 = 將一個檔案系統的根目錄附接到另一個檔案系統的**現有目錄** (掛載點) 上。
  • 掛載後,掛載點原有內容被遮蔽,卸載後恢復可見。

2. mount 指令語法

mount [-t 類型] [-o 選項] 裝置 掛載點

3. 常用檔案系統類型 (-t)

類型適用場景
ext4Linux 原生標準
xfs高效能大檔案/平行 I/O
vfatFAT32 (USB 隨身碟、EFI 分區)
ntfs-3gNTFS 讀寫 (需安裝 ntfs-3g)
iso9660光碟 (ISO 映像)
nfs網路檔案系統
cifsWindows/Samba 共享
auto自動偵測

4. 常用掛載選項 (-o)

ro, rw          # 唯讀/讀寫
noexec          # 禁止執行二進制檔
nosuid          # 忽略 SUID/SGID
nodev           # 不解讀裝置檔
user, nouser    # 允許/禁止一般使用者掛載
uid=1000,gid=1000  # 指定擁有者 (vfat/ntfs 適用)
iocharset=utf8  # 字元集
codepage=936    # 代碼頁 (中文 FAT/NTFS)
defaults        # rw,suid,dev,exec,auto,nouser,async

5. 實戰範例

# 掛載 Windows 分區 (中文檔名支援)
mkdir -p /mnt/win
mount -t ntfs-3g -o rw,uid=1000,gid=1000,iocharset=utf8 /dev/sda1 /mnt/win

# 掛載 ISO 映像
mkdir -p /mnt/iso
mount -o loop ubuntu-22.04.iso /mnt/iso

# 掛載 NFS 共享
mount -t nfs 192.168.1.100:/data /mnt/nfs

五、自動掛載:/etc/fstab

欄位格式

裝置/UUID    掛載點    類型    選項    dump  fsck順序

範例

UUID=xxxx-xxxx  /           ext4    defaults        0 1
UUID=yyyy-yyyy  /home       ext4    defaults        0 2
UUID=zzzz-zzzz  swap        swap    defaults        0 0
/dev/sr0        /media/cdrom iso9660 ro,user,noauto 0 0
192.168.1.100:/share /mnt/nfs nfs    defaults,_netdev 0 0
  • _netdev:網路裝置,延遲至網路就緒後掛載
  • noauto:開機不自動掛載,需手動 mount
  • dump:備份工具參考 (通常 0)
  • fsck順序:根分區 1,其他 2,swap/虛擬系統 0

驗證與套用

mount -a          # 掛載所有 fstab 定義項目
findmnt --verify  # 檢查 fstab 語法
systemctl daemon-reload  # systemd 掛載單元重載

六、總結

理解 FHS 目錄結構、inode 機制、連結差異與掛載流程,是 Linux 系統管理、磁碟規劃、故障排除的基石。善用 UUID 掛載、fstab 選項微調、bind mount 目錄綁定,能大幅提升系統彈性與可維護性。

Copyright © Windows教程網 All Rights Reserved