如何在 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
享受!