% 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/mtabdo 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 mountsarquivo 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/mtabportanto, 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/mtabum arquivo regular gravável. E existem alguns casos de esquina em que as informações normalizadas em mountsque 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 mountsarquivos individuais para cada processo nos procfs, sendo que a própria tabela de cada processo pode ser acessada através do selflink 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.)mountsmountsmountinfo
O SunOS / Solaris possui um mecanismo semelhante. Na /etc/mnttabverdade, 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/mnttabtambé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.
não apenas /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)
Conheço pseudo arquivos e arquivos regulares, mas o que é um arquivo pseudo-regular?
gerrit 24/04
@gerrit é um arquivo regular que tem tamanho 0, mas ainda contém dados ;-)
mosvy 24/04
12
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.
man 5 mtab
está faltando.Respostas:
/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 emmounts
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 doself
link simbólico comoself/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 aread()
chamada do sistema, é possível observar alterações no ponto de montagempoll()
e obter várias informações adicionaisioctl()
.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.Leitura adicional
/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.fonte
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
é documentadoproc(5)
como idêntico afstab(5)
De acordo com
man mount
:Na montagem sem gravação em
/etc/mtab
:Muitas outras nuances são fornecidas na página de manual.
fonte