我曾尝试使用 Ubuntu 16.04 LTS 在 Google Compute Engine 上实现磁盘用户和组配额,但到现在还没有成功。
配额允许您指定磁盘存储的两个方面的限制:一个用户或一组用户可以拥有的 inode 数量;以及可以分配给一个用户或一组用户的磁盘块数量。
配额背后的想法是,强制用户保持其磁盘消耗限制以下,从而剥夺他们在系统上使用无限磁盘空间的能力。
sudo -s
apt-get -y install quota quotatool
nano /etc/fstab
然后我用
LABEL=cloudimg-rootfs / ext4 defaults,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 0
然后我尝试激活配额:
mount -o remount /
quotacheck -avugm
quotaon -avug
quotaon: using //quota.user on /dev/sda1 [/]: No such process
quotaon: Quota format not supported in kernel
配额模块不在内核中,我创建了用户和组配额。
touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
quotaon: using //quota.user on /dev/sda1 [/]: No such process
quotaon: Quota format not supported in kernel
没有用。
我记得在AWS EC2中使用过一种方法:
apt-get -y install linux-image-extra-virtual
echo quota_v1 >> /etc/modules
echo quota_v2 >> /etc/modules
reboot
sudo -s
cat /proc/modules | grep -i quota
没什么,也不起作用。
modprobe quota_v1
modprobe: FATAL: Module quota_v1 not found in directory /lib/modules/4.8.0-46-generic
quotaon -pa
group quota on / (/dev/sda1) is off
user quota on / (/dev/sda1) is off
我在 EC2 上完成了这项工作,但在 Google Compute Engine 上却没有成功。有什么想法我可以尝试更多吗?
答案1
好的,找到了解决方案。我不需要在 EC2 上安装 linux-generic,但似乎需要在 Google Compute Engine 上执行一个程序。获得配额的所有程序都有效:
sudo -s
apt-get -y install quota quotatool
nano /etc/fstab
编辑 fstab:
LABEL=cloudimg-rootfs / ext4 defaults,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 0
检查是否有丢失的包裹。
dpkg -s linux-generic
dpkg-query: package 'linux-generic' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
我们需要安装缺少的 linux-generic 包:
apt-get -y install linux-generic
另外还有附加包:
apt-get -y install linux-image-generic
apt-get -y install linux-headers-generic
apt-get -y install linux-image-extra-`uname -r`
我们需要添加配额模块以随开机启动:
echo quota_v1 >> /etc/modules
echo quota_v2 >> /etc/modules
reboot
检查它是否正常工作:
sudo -s
cat /proc/modules | grep -i quota
quota_v1 16384 0 - Live 0xffffffffc037c000
quota_v2 16384 2 - Live 0xffffffffc0377000
quota_tree 20480 1 quota_v2, Live 0xffffffffc0250000
quotaon -pa
group quota on / (/dev/sda1) is on
user quota on / (/dev/sda1) is on
两个配额均已激活。