Como usar o comando mount para visualizar, montar e desmontar sistemas de arquivos no Linux

O comando mount permite ver rapidamente e com riqueza de detalhes todos os sistemas de arquivos montados na sua máquina Linux.
Sua função primordial, contudo, não é essa.
Ele é muito mais usado para montar novos sistemas de arquivos.
Para desmontar, usa-se o comando umount.
comando-findmnt-para-listar-sistemas-de-arquivos-ativos

O modo listagem do comando mount

O modo de listagem do comando é mantido por questões de compatibilidade. Há outros métodos recomendados para listar os file systems ativos — como veremos, ainda neste texto.
Para usar o modo listagem, basta executar o comando sozinho:

mount

Ao usar o comando desta maneira, você vai notar que a quantidade de informações pode ser muito grande e, para quem só quer saber quais sistemas de arquivos estão ativos, este método não é mesmo o melhor.
Uma solução rápida para isto, compreende o uso do comando grep:

mount | grep -i '/dev/sd'

A saída deste comando é mais sucinta — inclui o os nomes dos sistemas de arquivos ativos e as opções de montagem, como você pode ver abaixo:

/dev/sdb1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/)
/dev/sda2 on /home type ext4 (rw,relatime,data=ordered)
/dev/sdc on /media/justincase/BLUE type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

Você pode também especificar exatamente quais tipos de sistemas de arquivos deseja ver na sua listagem:

mount --types btrfs,ext4
/dev/sdb1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/) [utraSSD]
/dev/sda2 on /home type ext4 (rw,relatime,data=ordered)

A documentação do comando mount, no entanto, sugere que se use o findmnt para listar os sistemas ativos.
Veja como o resultado é mais organizado:

findmnt | grep -i '/dev/sd'
/                                     /dev/sdb1  btrfs           rw,relatime,ssd,space_cache,subvolid=5,subvol=/
├─/home                               /dev/sda2  ext4            rw,relatime,data=ordered
└─/media/justincase/BLUE              /dev/sdc   vfat            rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro

Se você quiser, pode usar esta sequência dentro de um só comando ou alias, basta incluí-lo na ultima linha do arquivo .bashrc:

alias montados="findmnt | grep -i '/dev/sd'"

Com isto, toda vez em que você digitar ‘montados’, a linha de comando findmnt | grep -i '/dev/sd' é que será executada.
Não esqueça de reiniciar o Bash, para o alias funcionar — com ‘logout’ ou ‘exit’.

Os arquivos /etc/fstab, /etc/mtab and /proc/mounts

Cada um destes arquivos tem sua função dentro do sistema.
O arquivo /etc/fstab conterá linhas descrevendo quais dispositivos podem ser montados no seu sistema, aonde e de que modo podem ser montados.
Leia o artigo Como montar um drive pelo nome de volume para saber mais sobre o fstab.

Use também a caixa de busca deste site, para encontrar outros artigos que envolvem o uso do fstab e do mount.

Por fim, todos os sistemas de arquivos mencionados no fstab são montados na inicialização do sistema — desde que descritos apropriadamente e não tenham a tag noauto em sua linha descritiva.
O arquivo /etc/mtab contém a lista de sistemas de arquivos montados no sistema.
Embora ele ainda seja suportado na maioria das distribuições Linux, a documentação sugere que você busque estas referência no arquivo /proc/mounts.
Isto ocorre por que o arquivo mtab, mantido no espaço do usuário, não consegue trabalhar com confiabilidade com namespaces, contêineres e outros recursos avançados do Linux.
Combine os comandos cat e grep, para ver o conteúdo parcial deste arquivo:

cat /proc/mounts | grep -i /dev/sd

Se quiser entender melhor o funcionamento do sistema de arquivos proc, leia o artigo Como obter informações do sistema através do /proc.

Como montar dispositivos usando o mount

Nos dias atuais, é muito incomum o usuário ou o sysadmin ter que “mountar” manualmente algum dispositivo conectado ao sistema.
Pendrives, CDs, DVDs, cartões de memória flash etc. todos já entram funcionando e exibindo seu conteúdo.
Dispositivos locais podem ser montados seguindo a regra de indicar o endereço ao qual o dispositivo está conectado, ponto de montagem desejado e o tipo de sistema de arquivos.
Por exemplo, para montar um drive de CD (com a mídia dentro), use o seguinte comando:

sudo mount -t iso9660 /dev/cdrom /cdrom

O ISO 9660 também conhecido como ECMA-119 ou CDFS (Compact Disc File System) por alguns provedores de hardware e software, é uma norma de sistema de arquivos, publicado pela International Organization for Standardization, a ISO, para mídias de disco ótico — Wikipedia.

Para montar um drive flash externo, ligado à sua porta USB, com o sistema de arquivos VFAT, no endereço ‘/dev/sdc’, sob o ponto de montagem ‘/mnt’, use a seguinte linha de comando:

sudo mount -t vfat /dev/sdc /mnt/

Se você já tem alguma linha no seu fstab, descrevendo aquele dispositivo especificamente, você pode montá-lo informando apenas o ponto de montagem: mount /cdrom, por exemplo.
Todas as opções da linha, referente àquele dispositivo, serão usadas na montagem.
Há outros casos em que pode ser necessário usar o processo de montagem manual — quando queremos montar um sistema de arquivos remoto, via rede, por exemplo.
Há alguns exemplos disto no artigo Como montar e acessar o sistema de arquivos WebDAV, onde este processo é descrito.
Para desmontar um dispositivo, basta também fornecer apenas o nome do ponto de montagem:

sudo umount /cdrom

Como montar sistemas de arquivos sem ser superusuário

Como você deve ter notado, os exemplos mostram como montar dispositivos, acompanhados do comando sudo.
É possível dispensar isto, permitindo que qualquer usuário no sistema monte um dispositivo, sem a necessidade de invocar privilégios especiais.
Para isto, basta adicionar a opção ‘user’ à linha de opções de montagem daquele dispositivo no fstab.
Veja um exemplo:

/dev/cdrom  /cd  iso9660  ro,user,noauto,unhide

Com estas opções, é possível a qualquer usuário do sistema montar o cdrom, com o comando:

mount /cd

Note que a opção ‘user’ só vai permitir que o usuário que montou o dispositivo o desmonte posteriormente.
Se você quiser que todos os usuários possam desmontar aquele dispositivo, use a opção ‘users’ (no plural).

Como montar partições e drives NTFS no Linux

Qualquer distro Linux atual tem suporte completo a leitura e escrita em sistemas de arquivos Windows, o que inclui o NTFS.
Os exemplos que seguem, foram aplicados a uma máquina Ubuntu 14.04 LTS, mas valem para Debian, Fedora ou qualquer outra distro Linux popular e atualizada.

Se você não estiver conseguindo realizar alguma operação com o drive, provavelmente falta algum módulo no seu kernel ou você não configurou algo adequadamente —. Neste texto, vou tentar mostrar algumas dicas de como montar partições NTFS, com todas as funções possíveis habilitadas.
Como montar partição NTFS no Linux - capa do tutorial

Cuidados básicos ao montar drives ou partições NTFS ou FAT32

Uma vez montado o drive, o Linux irá mostrar arquivos e pastas (diretórios) que, no Windows, estariam escondidos — o que pode expor arquivos de sistema. Portanto, é importante ter cuidado para não apagar o que não deve.

O Windows 7 armazena o estado do sistema em um arquivo em disco, quando entra em hibernação.
Ao “acordar”, restaura seu estado a partir daquele arquivo.
Isto quer dizer que você pode perder alterações feitas, durante a hibernação, em um drive compartilhado em uma máquina Windows (versão 7 e superior). — Manual do Ubuntu.

Um típico HD Windows costuma ter uma partição chamada “SYSTEM“, com tamanho entre 100 e 200 megabytes. A menos que você saiba o que está fazendo, não há qualquer necessidade de montá-la no Linux. A mesma dica vale para partições de recuperação do sistema, que costumam ser chamadas de “RECOVERY“.

Sistemas de arquivos comuns no Windows

Basicamente, os sistemas de arquivos mais comuns em sistemas Windows são estes:

  • O Windows 7, Vista, XP 2000, antigos sistemas NT e o Windows Server 2003 e 2008, são formatados com NTFS. O FAT32 é raramente usado, como padrão, nestas versões.
  • As versões anteriores, raramente usam o NTFS — O padrão é o FAT32.
  • Drives e cartões flash (pendrives, cartões SD etc) são tipicamente formatados como FAT16. Em alguns casos, é usado o exFAT.

Você pode verificar quais sistemas de arquivos estão sendo usados nos drives e dispositivos conectados ao seu computador com o comando fdisk:


sudo fdisk -lu

A relação dos sistemas de arquivos conectados pode ser extensa. O exemplo abaixo, mostra informações de um pendrive, conectado em /dev/sdc1 (no meu sistema):

Disco /dev/sdc: 4009 MB, 4009754624 bytes
84 cabeças, 22 setores/trilhas, 4237 cilindros, total de 7831552 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0x00054216

Dispositivo Boot      Início        Fim      Blocos   Id  Sistema
/dev/sdc1              62     7831551     3915745    7  HPFS/NTFS/exFAT

Use o comando grep para obter um resultado mais compacto:


sudo fdisk -l | grep -i ntfs

/dev/sdc1              62     7831551     3915745    7  HPFS/NTFS/exFAT

No decorrer deste artigo, vou usar este dispositivo como exemplo — não esqueça de adaptar os exemplos dados à situação do seu sistema.

Suporte a NTFS no Linux

O Linux usa o driver ntfs-3g para ler e alterar partições NTFS.
O driver vem pré-instalado em várias distribuições — no Ubuntu, ele é parte da distro desde a versão 11.10.
Se você estiver usando uma distro Linux atual, provavelmente não precisará fazer nada para trabalhar plenamente com dispositivos e partições NTFS.
Se você estiver tendo problemas para alterar dados em alguma partição NTFS, cheque se o pacote ntfs-3g se encontra instalado em seu sistema.

Configure o Linux para montar automaticamente os dispositivos e partições NTFS

Se você pretende manter o drive sempre conectado à sua máquina Linux e deseja que ele seja sempre montado na inicialização, configurar as opções de montagem no arquivo /etc/fstab é uma boa idéia.
Será necessário adicionar um linha para cada partição a ser montada, no arquivo fstab.
A documentação oficial do Ubuntu, enumera, pelo menos 3 razões para configurar o fstab, em vez de montar pelo seu gerenciador de arquivos (Nautilus, no Ubuntu):

  • Quando mais de uma conta de usuário estiver ativa durante uma sessão — com o uso do fstab, é possível montar uma vez só, para todo mundo poder usar.
  • Quando você tem softwares ou bibliotecas configurados para usar a partição ou o drive em questão, na inicialização, você vai querer que tudo esteja pronto para eles, sem a sua interferẽncia.
  • Conveniência de ter um procedimento a mais automatizado no seu sistema.

Como configurar o fstab

Uma das melhores formas de automatizar o processo de montagem de um drive ou partição no Linux é fazê-lo pelo seu nome de volume — isto é especialmente útil, quando se trata de um pendrive, que vai ser conectado/desconectado sempre.

Por ora, use o comando blkid, para saber mais sobre a localização das unidades que já se encontram conectadas ao seu sistema:


sudo blkid

No nosso exemplo, o dispositivo que interessa é o último da lista:

/dev/sda1: UUID="ce32e86c-e404-4f84-8125-74d0fc4897f7" TYPE="swap" 
/dev/sda2: UUID="a2ab821d-ae58-42fc-9384-f96dfcdc22cc" TYPE="ext4" 
/dev/sdb1: UUID="eb8e4cca-42c6-498d-b5ba-cd397096b3e9" TYPE="ext4" 
/dev/sdc1: LABEL="NTFS-FLASH" UUID="4D016F2B3DF4A3CE" TYPE="ntfs"

De acordo com a listagem, acima, a partição a ser configurada no fstab é a /dev/sdc1 que, neste caso, corresponde a um drive flash USB (pendrive) — note que o nome do volume (LABEL) é NTFS-FLASH e o seu UUID é 4D016F2B3DF4A3CE.
Comece por criar um ponto de montagem ou mountpoint para cada dispositivo, que você for configurar no fstab.
O ponto de montagem é um diretório, que pode ter qualquer nome. Eu gosto de usar um nome semelhante ao do volume a ser montado:


sudo mkdir /media/ntfsflash

A seguir, faça backup do fstab:


sudo cp /etc/fstab /etc/fstab.original

Agora, abra o fstab com o seu editor preferido (eu vou de nano):


sudo nano /etc/fstab

Agora adicione a seguinte linha ao arquivo do fstab, para montar o dispositivo pelo seu UUID:


UUID=4D016F2B3DF4A3CE  /media/ntfsflash  ntfs-3g  defaults,windows_names,locale=pt_BR.utf8  0 0

Não se esqueça de substituir o UUID e ponto de montagem /media/ntfsflash por valores adequados ao seu sistema.
Se o seu idioma não for português do Brasil, você vai precisar adequar esta variável também.
Use o comando locale para determinar qual o valor mais adequado para você:


locale | grep LANG

Quando terminar de editar o fstab, grave as alterações e feche o editor.
Caso não saiba, para gravar as alterações no nano, use a combinação de teclas Ctrl+o.
Para fechar e sair do editor, use Ctrl+x.

Exemplo de execução do comando blkid
Clique, para ver detalhes.

A nova configuração do fstab terá efeito na próxima inicialização do sistema.
Se tiver pressa para ver o resultado, use o comando mount:


sudo mount -a

O comando, acima, monta todos (all) os dispositivos disponíveis e citados no fstab.
Se quiser, use o mount, para verificar se o seu dispositivo foi montado:


mount

/dev/sdb1 on / type ext4 (rw,errors=remount-ro,discard)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

...

/dev/sda2 on /home type ext4 (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=justincase)
/dev/sdc1 on /media/ntfsflash type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)[/plain]

Como montar uma partição NTFS como apenas-leitura

Uma solução fácil para montar uma partição NTFS com restrição a escrita é usar o driver NTFS antigo.
Substitua a linha que você adicionou ao fstab por esta:

UUID=4D016F2B3DF4A3CE  /media/ntfsflash  ntfs  defaults,umask=222  0 0

Novamente, não se esqueça de adequar o exemplo ao seu caso.
O método preferível é usar o driver atual e especificar que a partição deve permanecer apenas para leitura.
Coloque a cláusula ‘ro’, logo após ‘defaults’:

UUID=4D016F2B3DF4A3CE  /media/ntfsflash  ntfs-3g  defaults,ro,windows_names,locale=pt_BR.utf8  0 0

Isto irá permitir que o acesso ocorra em condições maiores de segurança ao sistema externo.

Como montar um drive ou partição NTFS na linha de comando do Linux

Para montar um dispositivo NTFS, usando um comando no terminal, use o exemplo abaixo.
Não esqueca de substituir os valores do exemplo dado pelos que se adequam ao seu sistema:


sudo mount -t ntfs-3g /dev/sdc1 /media/ntfsflash/

Você pode montar o dispositivo, com detecção automática do sistema de arquivos:


sudo mount -t auto /dev/sdc1 /media/ntfsflash/

Referências

Como montar um drive pelo nome do volume (label)

A cada vez que você monta um dispositivo de armazenamento externo, é comum ele ser referenciado, no Linux, em locais diferentes.
Um pendrive, hoje, pode estar em /dev/sdc e amanhã em /dev/sdb.
flash memory icon
Mas, e se você tem um script ou aplicativo que precisa saber exatamente onde encontrar os seus dados, sempre?
Se o nome deste dispositivo de armazenamento se mantiver sempre único e sem mudanças, é possível se referir a ele, no Linux.
O comando mount permite montar qualquer dispositivo a partir do seu nome de volume (disk volume label).



Se você ainda não configurou o nome do volume do seu dispositivo, pode usar o comando e2label, para isto.
Veja um exemplo de como mostrar o nome do volume atual:

e2label /dev/sdd3
musicas

Para alterar o nome do volume do seu dispositivo de armazenamento externo, use este exemplo:

e2label /dev/sdd3 novo_nome

Como montar um drive pelo seu nome de volume

No exemplo que segue, vou montar um drive externo, cujo nome de volume é “Fotos”, na minha pasta de usuário, com o nome de “Camera”.

mount -L fotos /home/Imagens/Camera

Vamos ver um outro exemplo.
Se quiser montar um HD externo, com o nome de volume “Documentos” em “/media/usb”, faça o seguinte:

mkdir -p /media/usb
mount -L Documentos /media/usb

Configure o fstab

Opcionalmente, você pode pode posicionar a requisição para montar o seu dispositivo dentro do arquivo /etc/fstab.
Ao fazer isto, você irá garantir que ele seja montado automaticamente a cada vez que o sistema for iniciado.
Adicione a seguinte linha ao arquivo /etc/fstab (com os devidos ajustes, para que se adequem à sua realidade):

LABEL=Documentos     /media/usb    ext4   defaults 0 0

Espero que isto resolva.

Referências