Como faço para configurar a cota do projeto para minha pasta raiz ativa sendo ext4 no Ubuntu 18.04?
A documentação específica para a cota do projeto no sistema de arquivos ext4 é basicamente inexistente e tentei o seguinte:
- Cota instalada com
apt install quota -y
- Colocado
prjquota
em/etc/fstab
root / e reinicializado, o sistema de arquivos foi inicializado como somente leitura, sem cota de projeto (deaquisomente com prjquota em vez das cotas de usuário e grupo) - Também
find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'
foi executado e ambos os módulos do kernel/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v2.ko
foram/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v1.ko
encontrados (deessetutorial) - Colocado
GRUB_CMDLINE_LINUX_DEFAULT="rootflags=prjquota"
em/etc/default/grub
, executeiupdate-grub
e reiniciei, a máquina não aparece mais. - Colocar
rootflags=quota
emGRUB_CMDLINE_LINUX="... rootflags=quota"
execuçãoupdate-grub
e reiniciar mostrouquota
eusrquota
foi habilitado no root, mas não funcionaprjquota
oupquota
estáproject
definido como rootflag
Eu preciso disso para o back-end de armazenamento DIR deLXDpara poder limitar o tamanho de armazenamento do contêiner. O que mais posso tentar?
Responder1
Disseram-me que a execução tune2fs -O project -Q prjquota /dev/sdaX
é absolutamente essencial para ativar o Project Quota em um dispositivo. Então procurei uma solução que não exigisse desligar ou usar um live-cd, pois isso requer muito tempo e nem sempre funciona bem na minha experiência com meu provedor VPS. E também esperava poder transformar as etapas em um roteiro, o que não deu certo até agora.
Graças a outra pergunta consegui montar uma solução que funcionou para mim no Ubuntu 18.04. Você precisa de ca. 4GB de RAM para fazer isso (e, claro, um kernel após a versão 4.4).
Fontes:
- Como reduzir o sistema de arquivos raiz sem inicializar um livecd
- http://www.ivarch.com/blogs/oss/2007/01/resize-a-live-root-fs-a-howto.shtml
1. Crie um sistema de arquivos 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. Mude o root para o novo sistema de arquivos 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. Reinicie o SSH em outra porta diferente de 22 e reconecte-se com outra sessão
nano /etc/ssh/sshd_config
Mude a porta para 2211
Reinicie o SSH com
/usr/sbin/sshd -D &
Conecte-se novamente a partir de 2211
4. Elimine processos usando /oldroot ou /dev/sdaX
fuser -km /oldroot
fuser -km /dev/sdaX
5. Desmonte /dev/sdaX e aplique o recurso de cota do projeto
umount -l /dev/sdaX
tune2fs -O project -Q prjquota /dev/sdaX
6. Monte com Cota de Projeto
mount /dev/sda2 -o prjquota /oldroot
7. Colocando as coisas de volta
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. Ative a cota após reiniciar
apt install quota -y
quotaon -Pv -F vfsv1 /
9. Verifique se a cota está ativada no root
repquota -Ps /
10. Torne-o persistente
- Coloque
prjquota
nas opções de root in/etc/fstab
Aproveitar!