Cota do projeto em um sistema de arquivos EXT4 raiz ao vivo sem live-cd

Cota do projeto em um sistema de arquivos EXT4 raiz ao vivo sem live-cd

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:

  1. Cota instalada comapt install quota -y
  2. Colocado prjquotaem /etc/fstabroot / 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)
  3. 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.koforam /lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v1.koencontrados (deessetutorial)
  4. Colocado GRUB_CMDLINE_LINUX_DEFAULT="rootflags=prjquota"em /etc/default/grub, executei update-grube reiniciei, a máquina não aparece mais.
  5. Colocar rootflags=quotaem GRUB_CMDLINE_LINUX="... rootflags=quota"execução update-grube reiniciar mostrou quotae usrquotafoi habilitado no root, mas não funciona prjquotaou pquotaestá projectdefinido 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:

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 prjquotanas opções de root in/etc/fstab

Aproveitar!

informação relacionada