O que há /etc/mtab
no Linux?
Por que é necessário e vantagens de tê-lo?
man 5 mtab
está faltando.
O que há /etc/mtab
no Linux?
Por que é necessário e vantagens de tê-lo?
man 5 mtab
está faltando.
Respostas:
% arquivo / etc / mtab / etc / mtab: link simbólico para ../proc/self/mounts % arquivo / proc / montagens / proc / mounts: link simbólico para self / mounts %
/etc/mtab
é um mecanismo de compatibilidade. Décadas atrás, o Unix não tinha uma chamada de sistema para ler as informações de montagem existentes. Em vez disso, esperava-se que os programas que montassem sistemas de arquivos mantivessem cooperativa e voluntariamente uma tabela /etc/mtab
do que foi montado onde.
Por razões óbvias, este não era um mecanismo ideal.
O Linux ganhou a noção de "procfs" e uma das coisas que ganhou foi uma versão dessa tabela mantida pelo kernel, na forma de um mounts
arquivo pseudo-regular. A "chamada do sistema" para ler as informações de montagem do kernel tornou-se uma sequência de abrir-ler-fechar nesse arquivo, seguida pela análise do resultado da forma legível por humanos para legível por máquina (algo que possui algumas capturas sutis, como você pode ver nos relatórios de erros de pouco mais de duas semanas atrás).
/etc/mtab
portanto, tornou-se popularmente um link simbólico /proc/mounts
, permitindo que os programas que instalaram esse nome continuem lendo uma tabela de montagem desse arquivo, para a qual os programas que montaram e desmontaram sistemas de arquivos não precisam mais fazer nada explicitamente para se manterem atualizados. (Alguns deles ainda o tornarão /etc/mtab
um arquivo regular gravável. E existem alguns casos de esquina em que as informações normalizadas em mounts
que faltam todas as coisas que não são do kernel não são exatamente o que é necessário; embora elas não superem os problemas gerais com /etc/mtab
.)
Atualmente, cada processo pode ter sua própria visão individual do que está montado e, como conseqüência, agora existem mounts
arquivos individuais para cada processo nos procfs, sendo que a própria tabela de cada processo pode ser acessada através do self
link simbólico como self/mounts
, e agora também/proc/mounts
é uma compatibilidade mecanismo. (Curiosamente, nem o processo nem o formato de são documentados no documento atual do Linux, embora o arquivo pseudo-regular semelhante seja.)mounts
mounts
mountinfo
O SunOS / Solaris possui um mecanismo semelhante. Na /etc/mnttab
verdade, o arquivo é um sistema de arquivos de arquivo único e, além de ler a tabela, por meio de um descritor de arquivo aberto para esse arquivo, com a read()
chamada do sistema, é possível observar alterações no ponto de montagem poll()
e obter várias informações adicionais ioctl()
.
No HP-UX, /etc/mnttab
também é o nome do arquivo, mas a partir da versão 11 ainda era um arquivo comum cujo conteúdo era mantido de forma cooperativa pelos programas utilitários do sistema.
O AIX não exporta uma tabela de texto legível por humanos que os programas precisam analisar e não há arquivo equivalente. Os BSDs, da mesma forma, têm chamadas de sistema completas, getfsstat()
no FreeBSD e no OpenBSD, para programas para obter a tabela de montagem do kernel na forma legível por máquina sem organizá-la através de uma forma intermediária legível por humanos.
/proc/self/mountinfo
with \ r no caminho de montagem . # 35137. Erros de coreutils do GNU./proc/mounts
. Documentation / filesystems / proc.txt . Linux 5.1.fstab-decode
. Bug # 567071. Erros do Debian.getfsstat()
. Manual de Chamadas do Sistema FreeBSD . 27/12/2016.mtab(5)
dos velhos tempos: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, mas /proc/self/mounts
é um mecanismo de compatibilidade agora; está apenas mostrando um subconjunto das informações disponíveis em /proc/self/mountinfo
. O formato de /proc/self/mounts
é documentado proc(5)
como idêntico afstab(5)
De acordo com man mount
:
Os programas montam e montam tradicionalmente mantinha uma lista de sistemas de arquivos atualmente montados no arquivo / etc / mtab. Esse arquivo mtab real ainda é suportado, mas nos sistemas Linux atuais, é melhor transformá-lo em um link simbólico para / proc / mounts, porque um arquivo mtab regular mantido no espaço do usuário não pode funcionar de forma confiável com namespaces, contêineres e outros recursos avançados do Linux.
Na montagem sem gravação em /etc/mtab
:
-n, --no-mtab
Monte sem escrever em / etc / mtab. Isso é necessário, por exemplo, quando / etc estiver em um sistema de arquivos somente leitura.
Muitas outras nuances são fornecidas na página de manual.