Estou usando uma placa BeagleBone com Linux.
Quando eu digito o comando "df-h", vejo que o tmpfs foi montado algumas vezes.
Isso significa que todas essas entradas são montadas no mesmo local ou em uma parte diferente do tmpfs?
Isso me leva a outra coisa que não entendo muito bem. Onde esse sistema de arquivos tmpfs é realmente criado? Eu acho que isso acontece quando o Linux inicializa. Devo encontrar um script que crie esse sistema de arquivos?
tmpfs 242.4M 0 242.4M 0% /dev/shm
tmpfs 242.4M 8.3M 234.2M 3% /run
tmpfs 242.4M 0 242.4M 0% /sys/fs/cgroup
tmpfs 242.4M 36.0K 242.4M 0% /tmp
tmpfs 242.4M 16.0K 242.4M 0% /var/volatile
tmpfs 242.4M 16.0K 242.4M 0% /var/lib
Responder1
Eles são todos sistemas de arquivos diferentes. O que eles têm em comum é o tipo de sistema de arquivos: utilizam o tmpfs
driver, que armazena os dados na memória¹. Não existem “super-tmpfs” dos quais todos fazem parte: todas as instâncias são independentes.
A “coluna do dispositivo” mostra tmpfs
porque muitas configurações não são imaginativas e usam a mesma string para o nome do dispositivo e para o tipo de sistema de arquivos. O driver tmpfs ignora o “nome do dispositivo”, pois não carrega dados de lugar nenhum.
Esses sistemas de arquivos são criados ao montá-los e são destruídos ao desmontá-los. Por exemplo, o comando a seguir cria um sistema de arquivos tmpfs cujo conteúdo é apenas o diretório raiz (todos os sistemas de arquivos tmpfs começam desta forma), de propriedade de root e com permissões rwxrwxrwt
, e cujo tamanho máximo é 100MB:
mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt
As chamadas de montagem são feitas em scripts de inicialização. Antigamente, você podia encontrar chamadas para o mount
comando em scripts de shell executados durante a inicialização. /var/lib
é incomum como ponto de montagem tmpfs e pode ser configurado via /etc/fstab
. Hoje em dia, a maioria, senão todos, são montados pelo systemd.
¹ Isso é memória virtual: RAM ou swap.