如何在 Ubuntu 18.04 上為我的活動根資料夾 ext4 設定專案配額?
專門針對 ext4 檔案系統上的專案配額的文件基本上不存在,我嘗試了以下方法:
- 已安裝配額
apt install quota -y
- 放入
prjquota
root/etc/fstab
/ 並重新啟動,檔案系統以唯讀方式啟動,沒有專案配額(來自這裡僅使用 prjquota 而不是使用者和群組配額) - 也
find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'
運行並找到了兩個內核模組/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v2.ko
(/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v1.ko
來自這教程) - 放入,運行
GRUB_CMDLINE_LINUX_DEFAULT="rootflags=prjquota"
並重新啟動,機器不再出現。/etc/default/grub
update-grub
- 投入
rootflags=quota
運行GRUB_CMDLINE_LINUX="... rootflags=quota"
並update-grub
重新啟動確實顯示quota
並usrquota
在 root 上啟用,但它不適用於prjquota
或pquota
或被project
設定為 rootflag
我需要這個作為 DIR 存儲後端LXD能夠限制容器儲存大小。我還能嘗試什麼?
答案1
有人告訴我,運行tune2fs -O project -Q prjquota /dev/sdaX
對於在設備上啟用專案配額是絕對必要的。因此,我尋找了一種不需要關閉或使用 live-cd 的解決方案,因為這需要太多時間,而且根據我與 VPS 提供者的經驗,這並不總是能很好地工作。而且我也希望能夠把這些步驟變成一個腳本,但目前還沒有成功。
感謝另一個問題,我能夠整理出一個在 Ubuntu 18.04 上適合我的解決方案。你確實需要大約。 4GB RAM 可以做到這一點(當然還有 4.4 版本之後的核心)。
資料來源:
- 如何在不啟動 livecd 的情況下收縮根檔案系統
- http://www.ivarch.com/blogs/oss/2007/01/resize-a-live-root-fs-a-howto.shtml
1.製作RAMdisk檔案系統
mkdir /tmp/tmproot
mount none /tmp/tmproot -t tmpfs -o rw
mkdir /tmp/tmproot/{proc,oldroot,sys}
cp -a /dev /tmp/tmproot/dev
cp -ax /{bin,etc,opt,run,usr,home,mnt,sbin,lib,lib64,var,root,srv} /tmp/tmproot/
2. 將 root 切換到新的 RAMdisk 檔案系統
cd /tmp/tmproot
unshare -m
pivot_root /tmp/tmproot/ /tmp/tmproot/oldroot
mount none /proc -t proc
mount none /sys -t sysfs
mount none /dev/pts -t devpts
3. 在 22 之外的另一個連接埠上重新啟動 SSH 並重新連接另一個會話
nano /etc/ssh/sshd_config
將連接埠更改為2211
重新啟動 SSH
/usr/sbin/sshd -D &
從 2211 重新連接
4. 使用 /oldroot 或 /dev/sdaX 終止進程
fuser -km /oldroot
fuser -km /dev/sdaX
5.卸載/dev/sdaX並套用專案配額功能
umount -l /dev/sdaX
tune2fs -O project -Q prjquota /dev/sdaX
6. 專案配額掛載
mount /dev/sda2 -o prjquota /oldroot
7.把東西放回去
pivot_root /oldroot /oldroot/tmp/tmproot
umount /tmp/tmproot/proc
mount none /proc -t proc
cp -ax /tmp/tmproot/dev/* /dev/
mount /dev/sda1 /boot ### This might be different for you
reboot -f
8.重啟後開啟配額
apt install quota -y
quotaon -Pv -F vfsv1 /
9.檢查root上的配額是否開啟
repquota -Ps /
10. 堅持下去
- 放入
prjquota
root的選項中/etc/fstab
享受!