伺服器運行一段時間後,磁碟空間不足是常態。本文以新增一顆 SCSI 硬碟(裝置代號 /dev/sdb)為例,詳細記錄從實體安裝、分區、格式化、手動掛載到設定開機自動掛載的標準作業流程(SOP),適用於所有主流 Linux 發行版。
開機後以 root 登入,執行 dmesg | grep -i scsi 或 lsblk 確認新硬碟裝置名稱。本文假設為 /dev/sdb(無分區)。
fdisk /dev/sdb
進入互動模式,常用指令:
| 指令 | 功能 |
|---|---|
| p | 顯示目前分區表 |
| n | 建立新分區 |
| d | 刪除分區 |
| t | 變更分區類型 ID |
| l | 列出所有分區類型代碼 |
| a | 設定啟動旗標 |
| w | 寫入分區表並離開 |
| m | 顯示說明選單 |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1014, default 1): 1
Last cylinder or +size or +sizeM or +sizeK: +1024M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
若需多個分區,重複 n 步驟。完成後務必輸入 w 寫入分區表。
建議使用 ext4(或 ext3)檔案系統,並啟用壞軌檢查:
mkfs -t ext4 -c /dev/sdb1
# 或 ext3: mkfs -t ext3 -c /dev/sdb1
若有多個分區,將 sdb1 替換為 sdb2、sdb3 等。
mkdir /www
mount /dev/sdb1 /www
df -h
輸出應包含 /dev/sdb1 掛載於 /www,且可用空間正確顯示。
/etc/fstab)vi /etc/fstab
於檔案末尾新增一行:
/dev/sdb1 /www ext4 defaults 1 2
欄位說明:
/dev/sdb1(生產環境強烈建議使用 UUID=xxx,以免裝置代號漂移)/wwwext4defaults(含 rw, suid, dev, exec, auto, nouser, async)1(啟用 dump 備份)2(根分區為 1,其他為 2)最佳實踐:使用 blkid /dev/sdb1 取得 UUID,改寫為:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /www ext4 defaults 1 2
存檔後執行 mount -a 驗證無誤,再重啟系統確認自動掛載成功。
若預期未來頻繁擴充,建議直接將新硬碟納入 LVM:
pvcreate /dev/sdb
vgextend vg_data /dev/sdb
lvextend -L +100G /dev/vg_data/lv_www
resize2fs /dev/vg_data/lv_www # ext4 線上擴容
無需重新分區、格式化、修改 fstab,線上即時擴容,維護極為方便。