一、硬碟介面與裝置命名
| 介面類型 | 裝置命名 | 備註 |
| IDE (PATA) | /dev/hd[a-z] | hdc 通常為光碟機 |
| SATA / SCSI / SAS / USB | /dev/sd[a-z] | 現代系統主流 |
| NVMe | /dev/nvme[0-9]n[1-9] | 高速 SSD |
二、分區表類型與分區限制
- MBR (MS-DOS):最多 4 個主分區,或 3 主分區 + 1 擴展分區 (內含邏輯分區)。單分區上限 2TB。
- GPT (GUID Partition Table):支援 128+ 分區、單分區超過 2TB、UEFI 開機必要。
分區編號規則:
- 主分區/擴展分區:1-4 (如 sda1-sda4)
- 邏輯分區:5 開始 (如 sda5, sda6...)
三、fdisk 分區實戰 (MBR)
fdisk /dev/sdb
# 進入互動模式,常用指令:
# m 顯示說明
# n 新建分區
# p 列印分區表
# d 刪除分區
# t 變更分區類型 (83=Linux, 82=Swap, 8e=LVM)
# w 寫入並離開
# q 不存檔離開
分區類型常用代碼
| 代碼 | 類型 |
| 83 | Linux 標準分區 |
| 82 | Linux Swap |
| 8e | Linux LVM |
| 07 | NTFS/exFAT |
| 0b/0c | FAT32 |
四、通知核心重讀分區表
# RHEL 5/6, CentOS 5/6
partprobe /dev/sdb
# RHEL 7+, CentOS 7+, 現代系統
partx -a /dev/sdb
# 或直接重啟 (最保險)
reboot
驗證:cat /proc/partitions 或 lsblk
五、格式化檔案系統 (mkfs 系列)
| 指令 | 檔案系統 | 適用場景 |
mkfs.ext4 /dev/sdb1 | ext4 | Linux 通用、日誌式、支援大檔案 |
mkfs.xfs /dev/sdb1 | XFS | 高效能、大檔案、RHEL 7+ 預設 |
mkfs.vfat /dev/sdb1 | FAT32 | 跨平台相容、USB 隨身碟 |
mkfs.ntfs /dev/sdb1 | NTFS | Windows 相容、大檔案 |
mke2fs 進階參數 (ext 系列專用)
# 指定區塊大小 2KB (適合大量小檔案)
mke2fs -t ext4 -b 2048 /dev/sdb1
# 設定預留空間 1% (預設 5%,大分區可降低)
mke2fs -t ext4 -m 1 /dev/sdb1
# 設定卷標
mke2fs -t ext4 -L MYDATA /dev/sdb1
tune2fs 調整既有檔案系統參數
tune2fs -l /dev/sdb1 # 查看詳細資訊
tune2fs -m 1 /dev/sdb1 # 調整預留比例
tune2fs -L NEW_LABEL /dev/sdb1 # 修改卷標
tune2fs -o journal_data_writeback /dev/sdb1 # 調整日誌模式
六、掛載與永久掛載 (/etc/fstab)
臨時掛載
mkdir /mnt/data
mount /dev/sdb1 /mnt/data
永久掛載 (編輯 /etc/fstab)
# 格式:裝置/UUID 掛載點 檔案系統 參數 dump fsck順序
UUID=xxxx-xxxx-xxxx /mnt/data ext4 defaults,noatime 0 2
# 建議使用 UUID (blkid 查詢) 避免裝置名稱漂移
blkid /dev/sdb1
常用掛載參數
| 參數 | 說明 |
| defaults | rw, suid, dev, exec, auto, nouser, async |
| noatime | 不更新 atime,提升效能 |
| nodiratime | 不更新目錄 atime |
| noexec | 禁止執行二進位檔 |
| nosuid | 忽略 SUID/SGID 位 |
| ro | 唯讀掛載 |
七、驗證與故障排除
df -hT /mnt/data # 確認掛載點、檔案系統、使用量
mount | grep sdb1 # 確認掛載參數
umount /mnt/data # 卸載 (需無進程佔用)
fuser -km /mnt/data # 強制釋放佔用進程後卸載
八、GPT 大磁碟分區 (parted/gdisk)
parted /dev/sdb
# (parted) mklabel gpt
# (parted) mkpart primary ext4 0% 100%
# (parted) quit
# 或使用 gdisk (互動式類 fdisk)
gdisk /dev/sdb