Systemd backed tmpfs | Como especificar manualmente o tamanho de / tmp

4

Monto /tmp em tmpfs usando:

sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount

Mas desta forma /tmp ocupa toda a RAM livre:

$ df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.9G   12K  3.9G   1% /tmp
$

Como eu digo ao systemd tmp.mount para usar apenas 1G? Eu sei que não posso usar o systemd ou adicionar manualmente uma entrada para /etc/fstab e especificar o tamanho lá. Mas eu não quero fazer isso. Eu quero usar o tmpfs suportado pelo systemd.

    
por GMaster 17.03.2017 / 09:16

1 resposta

4

A forma sistêmica de substituir tmp.mount ou estendê-la é adicione uma substituição local em /etc/systemd/system . Você pode copiar o tmp.mount (de /lib/systemd/system ou /usr/share/systemd provavelmente) existente e editar a cópia ou, melhor ainda, adicionar trechos de configuração para alterar apenas as opções de montagem:

  • crie um diretório chamado /etc/systemd/system/tmp.mount.d
  • dentro desse diretório, adicione um arquivo chamado options.conf contendo

    [Mount]
    Options=mode=1777,strictatime,nosuid,nodev,size=1073741824
    

Observe que systemd.mount ainda diz que

In general, configuring mount points through /etc/fstab is the preferred approach.

então você pode apenas querer fazer isso. Na verdade, essa é a abordagem recomendada para alterar as opções de montagem de qualquer um dos "sistemas de arquivos de API" do systemd :

Even though normally none of these API file systems are listed in /etc/fstab they may be added there. If so, any options specified therein will be applied to that specific API file system. Hence: to alter the mount options or other parameters of these file systems, simply add them to /etc/fstab with the appropriate settings and you are done. Using this technique it is possible to change the source, type of a file system in addition to simply changing mount options. That is useful to turn /tmp to a true file system backed by a physical disk.

Os sistemas de arquivos da API incluem: /sys , /proc , /dev , /run , /tmp , /sys/fs/cgroup , /sys/kernel/security , /sys/kernel/debug , /sys/kernel/config , /sys/fs/selinux , /dev/shm , /dev/pts , /proc/sys/fs/binfmt_misc , /dev/mqueue , /dev/hugepages , /sys/fs/fuse/connections , /sys/firmware/efi/efivars . O systemd garante que eles sejam montados, mesmo que eles não estejam especificados em /etc/fstab ou em uma unidade de montagem.

    
por 17.03.2017 / 09:32