萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 新增硬碟配置磁碟配額 完整實作教學:分區、格式化、掛載、quota 啟用與驗證

前置條件

  • RHEL/CentOS 系統(範例為 RHEL 4,現代版本原理相同)
  • 已安裝 quota 套件:rpm -q quota 或 yum install quota
  • 新硬碟為 SCSI 熱插拔裝置 /dev/sdb

完整操作流程

1. 確認新硬碟裝置

fdisk -l
# 發現 /dev/sdb 為新增硬碟

2. 分區規劃(fdisk 互動式)

fdisk /dev/sdb
# 依序輸入:
n   # 新增分區
p   # 主分區
1   # 分區號
[enter]  # 起始磁柱(預設)
+2G      # 大小 2GB
n   # 新增分區
e   # 擴展分區
2   # 分區號
[enter]  # 起始
[enter]  # 結束(佔用剩餘)
n   # 邏輯分區
[enter]  # 起始
+1G      # 大小 1GB -> /dev/sdb5
n   # 邏輯分區
[enter]
[enter]    # 剩餘 -> /dev/sdb6
w   # 寫入分區表並退出

3. 格式化分區(ext4 推薦)

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6

4. 修改 /etc/fstab 實現開機自動掛載並啟用 quota

/dev/sdb1  /quota1  ext4  defaults,usrquota,grpquota  0 0
/dev/sdb5  /quota2  ext4  defaults,usrquota,grpquota  0 0
/dev/sdb6  /quota3  ext4  defaults,usrquota,grpquota  0 0
  • usrquota:啟用使用者配額
  • grpquota:啟用群組配額

5. 建立掛載點並重新掛載

mkdir /quota1 /quota2 /quota3
mount -a
# 或重啟系統使 fstab 生效

6. 建立 quota 索引檔案

quotacheck -cmuvg /quota1 /quota2 /quota3
# -c 建立新檔 -m 不重新掛載 -u 使用者 -g 群組 -v 詳細
# 產生 aquota.user、aquota.group

7. 啟用 quota 功能

quotaon /quota1 /quota2 /quota3
# 關閉:quotaoff /quota1

8. 設定使用者/群組配額

# 使用者配額(編輯器模式)
edquota -u username
# 或非互動式
setquota -u username 100M 200M 0 0 /quota1  # soft 100M hard 200M 無 inode 限制

# 群組配額
edquota -g groupname
setquota -g groupname 500M 1G 0 0 /quota1

9. 設定寬限期

edquota -t
# 修改 time units(預設 7 天),單位可為 days/hours/minutes/seconds

10. 驗證配額生效

# 切換至受限使用者
su - username
cd /quota1
dd if=/dev/zero of=test bs=1M count=150  # 寫入 150MB 超過 soft 100M
# 應收到警告但仍可寫入
dd if=/dev/zero of=test2 bs=1M count=100  # 累積超過 hard 200M
# 應報錯「Disk quota exceeded」

# 查看配額報表
quota -u username
repquota /quota1

關鍵參數說明(edquota 輸出欄位)

欄位含義
filesystem受配額限制的檔案系統/分區
blocks目前已使用的區塊數(1 block = 1KB)
inodes目前已使用的 inode 數(檔案數)
soft (blocks)區塊軟限制(可超過,進入寬限期)
hard (blocks)區塊硬限制(不可超過,寫入失敗)
soft (inodes)inode 軟限制
hard (inodes)inode 硬限制

最佳實踐原則

  1. 僅限制區塊(空間),不限制 inode,除非有大量小檔案攻擊風險
  2. 硬限制 > 軟限制 > 目前使用量,避免使用者無法登入或寫入
  3. 不要對 root 設定配額,確保系統管理員隨時可寫入關鍵檔案
  4. 定期審計:repquota -a 產出全系統報表
  5. 搭配專案配額:prjquota(XFS/ext4 支援)按專案目錄限額,更靈活

現代系統補充

  • XFS 檔案系統原生支援 quota,掛載選項 uquota,gquota,pquota
  • systemd 管理:systemctl enable --now quotaon
  • 圖形化管理:system-config-quota(舊)、Webmin、Cockpit

遵循標準化流程建立磁碟配額,能有效防止單一使用者/服務佔滿磁碟導致全系統癱瘓。

copyright © 萬盛學電腦網 all rights reserved