首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有live-cd的活动根EXT4文件系统上的项目配额

没有live-cd的活动根EXT4文件系统上的项目配额
EN

Unix & Linux用户
提问于 2020-04-06 20:48:43
回答 1查看 1.7K关注 0票数 3

如何完成在Ubuntu18.04上为我的活动根文件夹ext4设置项目配额?

特定于ext4文件系统上的项目配额的文档基本上不存在,我试过这样做:

  1. apt install quota -y安装配额
  2. prjquota放入根/并重新引导的/etc/fstab中,文件系统被引导为只读,没有项目配额(从这里只使用Put配额,而不是用户和组配额)
  3. 此外,还运行了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 (来自教程)。
  4. GRUB_CMDLINE_LINUX_DEFAULT="rootflags=prjquota"放入/etc/default/grub,运行update-grub并重新启动,机器不再出现。
  5. rootflags=quota放入运行update-grub并重新启动的GRUB_CMDLINE_LINUX="... rootflags=quota"中确实显示在根上启用了quotausrquota,但它不适用于设置为根标志的prjquotapquotaproject

我需要这样做,以便LXD的DIR存储后端能够限制容器存储的大小。我还能做什么呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-04-26 13:27:33

有人告诉我,运行tune2fs -O project -Q prjquota /dev/sdaX对于在设备上启用项目配额是绝对必要的。因此,我寻找一个不需要关闭或使用live的解决方案,因为这需要太多的时间,并且在我与VPS提供者的经验中并不总是工作得很好。我也希望我能把这些步骤变成一个剧本,到目前为止还没有完成。

多亏了另一个问题,我才能在Ubuntu18.04上找到一个适合我的解决方案。要做到这一点,您确实需要大约4GB的RAM (当然,在4.4版本之后还需要内核)。

资料来源:

1.创建一个RAMdisk文件系统

代码语言:javascript
复制
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.将根切换到新的RAMdisk文件系统

代码语言:javascript
复制
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.在另一个端口上重新启动SSH而不是22,并重新连接到另一个会话

代码语言:javascript
复制
nano /etc/ssh/sshd_config
  • 将端口更改为2211
  • /usr/sbin/sshd -D &重新启动SSH
  • 从2211再连接

4.使用/oldroot或/dev/sdaX

终止进程

代码语言:javascript
复制
fuser -km /oldroot
fuser -km /dev/sdaX

5.卸载/dev/sdaX并应用项目配额特性

代码语言:javascript
复制
umount -l /dev/sdaX
tune2fs -O project -Q prjquota /dev/sdaX

6.安装项目配额

代码语言:javascript
复制
mount /dev/sda2 -o prjquota /oldroot

7.把东西放回

代码语言:javascript
复制
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.重新启动

后打开配额

代码语言:javascript
复制
apt install quota -y
quotaon -Pv -F vfsv1 /

9.检查根

上是否有配额

代码语言:javascript
复制
repquota -Ps /

10.使其成为持久的

  • prjquota放入/etc/fstab中的根选项中

享受吧!

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/578349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档