Назад | Перейти на главную страницу

Формат квот Ubuntu не поддерживается в ядре

Я пытался реализовать квоты для пользователей и групп в Google Compute Engine с Ubuntu 16.04 LTS, но до сих пор мне это не удалось.

Квота позволяет указать ограничения на два аспекта дискового хранилища: количество inodes, которыми может владеть пользователь или группа пользователей; и количество дисковых блоков, которые могут быть выделены пользователю или группе пользователей.

Идея квоты заключается в том, что пользователи вынуждены оставаться ниже предела потребления диска, что лишает их возможности использовать неограниченное дисковое пространство в системе.

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. Есть идеи, что я могу попробовать еще?

У меня такая же проблема с запуском Ubuntu 18.04 на экземпляре AWS

удаление ядра aws и установка общего, похоже, решает проблему

вот что я делаю:

# Remove Aws Kernel | find your own kernel version
apt-get remove linux-image-4.15.0-*-aws

# Install Generic Kernel
apt-get -y install linux-image-generic
apt-get -y install linux-headers-generic

# Makesure everything is ok
reboot

modprobe quota_v2
modprobe quota_v2

# if no error on modprobe then add it to modules
echo quota_v1 >> /etc/modules
echo quota_v2 >> /etc/modules

# after that you can add quota options on fstab

Хорошо, нашел решение. Мне не нужно устанавливать linux-generic в EC2, но, похоже, нужна процедура в 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

Обе квоты активированы.

Хорошо, Фрэн, попробуй это:

cat /proc/modules | grep -i quota

[...]

quota_v1 16384 0 - Живой 0xffffffffc037c000

quota_v2 16384 2 - Живой 0xffffffffc0377000

quota_tree 20480 1 quota_v2, Live 0xffffffffc0250000

[...]

quotaon -pa

[...]

групповая квота на / (/ dev / sda1) отключена

пользовательская квота на / (/ dev / sda1) отключена

[...]

quotacheck -avugm

[...]

quotacheck: Невозможно определить старый файл квот пользователя //quota.user: Нет такого файла или каталога. Использование не вычитается.

quotacheck: Невозможно определить старый файл квот группы //quota.group: Нет такого файла или каталога. Использование не вычитается.

[...]

quotaon -avug

[...]

/ dev / sda1 [/]: групповые квоты включены

/ dev / sda1 [/]: пользовательские квоты включены

[...]