Eu costumo usar mount
para verificar quais sistemas de arquivos estão montados. Eu também sei que há alguma conexão entre mount
e /etc/mtab
mas não tenho certeza sobre os detalhes. Depois de ler Como verificar se / proc / está montado , fico mais confuso.
Minha pergunta é: Como obter a lista mais precisa de sistemas de arquivos montados? Devo apenas usar mount
ou ler o conteúdo /etc/mtab
ou o conteúdo dele /proc/mounts
? O que daria o resultado mais confiável?
linux
filesystems
mount
xanpeng
fonte
fonte
Respostas:
A lista definitiva de sistemas de arquivos montados está em
/proc/mounts
.Se você tiver qualquer forma de contêiner no seu sistema,
/proc/mounts
lista apenas os sistemas de arquivos que estão no seu contêiner atual. Por exemplo, em um chroot ,/proc/mounts
lista apenas os sistemas de arquivos cujo ponto de montagem está dentro do chroot. ( Existem maneiras de escapar do chroot, mente. )Há também uma lista de sistemas de arquivos montados no
/etc/mtab
. Esta lista é mantida pelos comandosmount
eumount
. Isso significa que, se você não usar esses comandos (o que é bastante raro), sua ação (montar ou desmontar) não será registrada. Na prática, é principalmente em um chroot que você encontrará/etc/mtab
arquivos que diferem bastante do estado do sistema. Além disso, as montagens realizadas no chroot serão refletidas no chroot,/etc/mtab
mas não no principal/etc/mtab
. As ações executadas enquanto/etc/mtab
estiver em um sistema de arquivos somente leitura também não são registradas lá.A razão pela qual você às vezes deseja consultar
/etc/mtab
com preferência ou além disso/proc/mounts
é que, por ter acesso à linha de comando mount, às vezes é capaz de apresentar informações de uma maneira que é mais fácil de entender; por exemplo, você vê as opções de montagem conforme solicitado (enquanto/proc/mounts
lista osmount
padrões e do kernel também), e montagens de ligação aparecem como tal em/etc/mtab
.fonte
mount
manter/etc/mtab
se não se pode confiar? Não seria melhor se asmount
informações apresentadas fossem apresentadas/proc/mounts
?/etc/mtab
pode registrar informações que o kernel não rastreia, como as opções solicitadas originalmente, e montar montagens que aparecem como tal, em vez de aparecerem como entradas duplicadas para dispositivos. No entanto, muitas distribuições estão avançando no sentido de fazer/etc/mtab
um link simbólico para/proc/mounts
./etc/mtab
um link simbólico para/proc/mounts
. É bom ouvir - adicionar essas informações para responder as tornaria ainda melhores. Você acha que o rastreamento das opções solicitadas pelo kernel seria viável e benéfico?findmnt
que é o caminho preferido desde 2010 e provavelmente o único caminho seguro em um futuro próximo, quando os namespaces de montagem serão comuns.A partir da versão 2.18 (julho de 2010)
util-linux
inclui uma ferramenta que permite exibir uma lista de sistemas de arquivos atualmente montados:Você pode alternar da visualização em árvore padrão para a visualização em lista
-l
, definir colunas de saída com-o
(semelhante alsblk
), filtrar resultados com base no tipo de sistema de arquivos com-t
etc ...Para mais detalhes, leia a
man
página (efindmnt --help
obtenha a lista de colunas disponíveis)fonte
Talvez porque se passaram 5 anos desde que essa pergunta foi respondida, as coisas mudaram. O
cat /proc/mounts
cria muitas informações que você não se importa. Hoje, IMHO, acho que essa é a solução definitiva.Quando você lê as páginas do manual, há todos os tipos de opções que você pode fazer, mas é isso que você faz. Por exemplo, para limpar ainda mais os resultados, você pode excluir os tipos de arquivo "tmpfs" com este comando:
df
funciona no nível do sistema de arquivos e não no nível do arquivo.Os comandos acima incluirão montagens de rede também.
Para ver um pouco mais de informações, use isto:
NOTA Com conexões de rede montadas lentamente, isso pode levar alguns minutos!
Se você não tem ou se preocupa com conexões de rede montadas (e você tem permissões de root), isso é ainda melhor:
fonte
--output
algo como o Ubuntu 12 que não aceita essas opções, confira afindmnt
resposta de don_crissti abaixo.findmnt
parece precisar de recursos mais altos (testados com raiz; raiz tem todos os recursos) para exibir rótulos.Na maioria das vezes,
mount
é o método mais conveniente. Para obter uma lista completa e exata dos sistemas de arquivos atualmente montados, leia o conteúdo de/proc/mounts
(por exemplo, comcat /proc/mounts
).Por exemplo, se a montagem de
/
leitura e gravação falhar e ela foi montada somente como um fallback/etc/mtab
(da qual omount
comando lê para informar o que está montado, e grava - se puder - quando altera o que está montado) não será atualizada para refletir que/
(que contém/etc/mtab
) está atualmente montado somente para leitura. Nessa situação, a execuçãomount
normalmente informava (incorretamente) que/
foi montado o readwrite.Sob condições normais (por exemplo, quando o sistema de arquivos que o contém pode ser gravado),
/etc/mtab
contém uma lista dos sistemas de arquivos atualmente montados. Isso não deve ser confundido/etc/fstab
, que contém uma lista de sistemas de arquivos que devem ser montados automaticamente quando o sistema é iniciado.Obviamente, se o
/proc
próprio sistema de arquivos virtual não estiver montado, você não poderá ler nenhum dos arquivos virtuais nele, o que incluiria/proc/mounts
. Isso muito raramente é o caso. Nessa situação,mount
é provavelmente a melhor opção para ver o que está montado.fonte