Seções iMasters
Linux + Redes e Servidores

Gerenciamento de pontos de montagem em sistemas GNU/Linux

Neste artigo abordaremos um tema fundamental para administradores de sistemas GNU/Linux e também para usuários avançados deste sistema: o gerenciamento de pontos de montagem em modo Shell. Todas as técnicas explanadas neste artigo são aplicáveis a qualquer distro GNU/Linux.

Espero que este artigo seja útil ao maior número possível de profissionais e usuários do GNU/Linux.

1. FHS – O padrão hierárquico do sistema de arquivos do GNU/Linux

FHS (Filesystem Hierarchy Standard) é o padrão estabelecido pela LSB (Linux Standard Base) o qual define a estrutura (hierarquia) de diretórios para sistemas GNU/Linux certificados por este instituto, bem como a localização de cada tipo de arquivo dentro desta estrutura. O padrão FHS é originário do sistema Unix.

Dentre as vantagens proporcionadas pelo FHS para sistemas GNU/Linux, destaco as seguintes:

  • Facilitar a administração de sistemas baseados em GNU/Linux, independente da distro adotada, pois proporciona uma estrutura de diretórios padronizada.
  • Proporcionar segurança ao sistema, pois arquivos binários específicos e fundamentais à administração do sistema são localizados em diretórios específicos do FHS cujo acesso e execução são restritos ao usuário root, impedindo sua utilização ou remoção indevidas.
  • Facilitar o desenvolvimento de softwares para a plataforma GNU/Linux, pois define a localização de arquivos específicos como as bibliotecas compartilhadas do sistema.

Destas vantagens, a que mais nos interessa para o âmbito deste artigo é a primeira, referente à administração de sistemas GNU/Linux.

Veja na figura a seguir os diretórios do FHS abaixo do diretório raiz (/) do sistema:

2. Pontos de montagem: diretórios “recipientes”

Para podermos ter acesso a dados em discos e partições (leitura/gravação) precisamos antes montar tal disco ou partição em um determinado ponto de montagem previamente criado dentro da estrutura de diretórios do FHS em um sistema GNU/Linux. As montagens poderão ser feitas manual ou automaticamente, conforme explanarei mais adiante.

Ponto de montagem é um diretório, preferentemente vazio, que será o “recipiente” do sistema de arquivos do disco ou partição ao qual queremos ter acesso.

No FHS há dois diretórios indicados para a criação de pontos de montagem:

  • /media/
  • /mnt/

A maioria dos administradores de sistemas GNU/Linux prefere utilizar o diretório /media/ para criar pontos de montagem. E eu também. Portanto,utilizarei este diretório para a criação de pontos de montagem.

3. Identificando discos e partições para montagem: o utilitário blkid

Agora que você já sabe o que são o FHS e pontos de montagem, é necessário saber identificar os dispositivos (discos e partições) detectados pelo GNU/Linux para poder montá-los. Basicamente, o GNU/Linux detecta estes dispositivos automaticamente nos seguintes momentos:

  • Na da inicialização do sistema são detectados os dispositivos já conectados ao sistema (coldplug: conectados à frio) ou já disponíveis no próprio hardware do computador, como é o caso de partições existentes no HD.
  • Após o sistema já estar inicializado, serão detectados todos os dispositivos USB, como pendrives, que forem conectados ao sistema (hotplug: conectados à quente) ou novas partições que forem criadas no HD, bem como CD/DVD’s que forem inseridos.

Obs.: Note que quando você estiver utilizando um desktop (ambiente gráfico, como GNOME, KDE, XFCE, dentre outros) no GNU/Linux, a montagem de dispositivos USB (como pendrives) e CD/DVD’s é, geralmente, feita automaticamente, assim que estes forem conectados ou inseridos no sistema. Para o âmbito deste artigo, considerarei que esta característica de montagem automática esteja desabilitada no sistema.

Os dispositivos detectados pelo GNU/Linux são identificados como arquivos especiais dentro do diretório /dev/ do FHS. Para montagem de um dispositivo (disco ou partição), precisaremos obter as seguintes informações sobre o mesmo:

  • A identificação atribuída ao dispositivo pelo GNU/Linux dentro do diretório /dev/ do FHS.
  • O tipo do sistema de arquivos utilizado pelo dispositivo.

Para obter estas informações, abra um Shell (Terminal) do GNU/Linux, logue-se como superusuário (su) e digite o seguinte comando:

# /sbin/blkid


No exemplo acima, o utilitário blkid identificou os seguintes dispositivos montáveis em meu sistema

01 - hda: um HD master com cinco partições:

  • hda1: primeira partição com o tipo de sistema de arquivos NTFS na qual tenho o MS-Windows instalado.
  • hda2: segunda partição com o tipo de sistema de arquivos VFAT (FAT32) a qual é utilizada pelo MS-Windows como memória virtual.
  • hda5: quinta partição com o tipo de sistema de arquivos Ext3 na qual tenho o CentOS instalado.
  • hda6: sexta partição com o tipo de sistema de arquivos SWAP a qual é utilizada pelo CentOS como memória virtual.
  • hda7: sétima partição com o tipo de sistema de arquivos NTFS na qual mantenho documentos e arquivos compartilhados entre os sistemas CentOS e MS-Windows

02 – sda: um Pendrive (dispositivo USB) com uma única partição:

  • sda1: única partição deste dispositivo com o tipo de sistema de arquivos VFAT (FAT32).

03 – hdc: uma unidade de CD/DVD (tipo de sistema de arquivos iso9660).

4. Montagens manuais de discos e partições: o comando mount

Para a montagem de discos e partições os passos a serem seguidos são:

a) Abrir o Shell (Terminal) do GNU/Linux e logar-se como superusuário (su);

b) Identificar o dispositivo que será montado e o tipo de sistema de arquivos do mesmo utilizando o utilitário blkid:

# /sbin/blkid

c) Criar, caso ainda não exista, o ponto de montagem correspondente dentro do diretório /media/ do FHS com o comando mkdir:

# mkdir /media/<ponto_montagem>, onde:

•    <ponto_montagem>: é o ponto de montagem, isto é, o diretório “recipiente” para a montagem do dispositivo.

Ex.: # mkdir /media/Docs

d) Montar o dispositivo com o comando mount cuja sintaxe geral é a seguinte:

# mount -t <tipo_sistema_arquivos> <dispositivo> <ponto_montagem>, onde:

•    <tipo_sistema_arquivos>: é o tipo de sistema de arquivos utilizado pelo dispositivo (disco ou partição) a ser montado; esta informação é obtida com o comando blkid.

•    <dispositivo>: é identificação do dispositivo pelo GNU/Linux, por exemplo, /dev/hda1, /dev/sda1, /dev/hdc.

•    <ponto_montagem>: é o ponto de montagem (diretório “recipiente”) no qual o dispositivo será montado.

Ex.: # mount -t ntfs-3g /dev/hda7 /media/Docs

Para que fique bem claro a montagem manual de discos e partições apresentarei os três exemplos a seguir:

Exemplo 1 – Montagem de uma partição NTFS local:

Estando logado como superusuário (su) no Shell para montar a partição /dev/hda7 identificada pelo GNU/Linux como /dev/hda7, a qual utiliza o tipo de sistema de arquivos NTFS, em um ponto de montagem chamado Docs (/media/Docs), a sequência de comandos é a seguinte:

# /sbin/blkid
# mkdir /media/Docs
# mount -t ntfs-3g /dev/hda7 /media/Docs

Obs.: Note que o tipo de sistema de arquivos utilizado pelo dispositivo /dev/hda7 informado pelo utilitário blkid é NTFS. Porém, montei informando o tipo ntfs-3g. A explicação para isso é que o tipo ntfs padrão do comando mount é correspondente ao tipo NTFS utilizado pelo MS-Windows 2000. A partição em questão foi formatada utilizando o MS-Windows 7 o qual utiliza um formato NTFS mais recente.

Exemplo 2 – Montagem de um pendrive (dispositivo USB):

Estando logado como superusuário (su) no Shell, para montar um pendrive identificado pelo GNU/Linux como /dev/sda1 o qual utiliza o tipo de sistema de arquivos VFAT (FAT32) em um ponto de montagem chamado USB (/media/USB), a sequência de comandos é a seguinte:

# /sbin/blkid
# mkdir /media/USB
# mount -t vfat /dev/sda1 /media/USB

Exemplo 3 – Montagem de uma imagem ISO de DVD armazenada no HD local:

Estando logado como superusuário (su) no Shell, para montar um arquivo de imagem ISO do DVD do CentOS localizada na partição NTFS (/media/Docs/SO/CentOS-5.4-i386-bin-DVD.iso) de meu HD em um ponto de montagem chamado ISO (/media/ISO), a qual já está montada, a sequência de comandos é a seguinte:

# /sbin/blkid
# mkdir /media/ISO
# mount -t iso9660 -o loop /media/Docs/SO/CentOS-5.4-i386-bin-DVD.iso /media/ISO


Obs.: Note que o tipo de sistema de arquivos utilizado por CD’s e DVD’s é iso9660. Para que seja possível navegar pelos diretórios da imagem ISO como em um diretório normal no sistema é necessário utilizar o parâmetro -o loop.

5. Desmontagem de discos e partições: o comando umount

Para desmontar um disco ou partição montado no sistema o comando a ser utilizado é o umount. Para executá-lo, você deverá estar logado em um Shell (Terminal) do GNU/Linux como usuário superusuário (su) e o dispositivo (disco ou partição) a ser desmontado não poderá estar em uso.

Há duas formas de de desmontar um dispositivo com o comando umount:

01 – Informando o ponto de montagem a ser desmontado:

# umount <ponto_montagem>, onde:

  • <ponto_montagem>: é o ponto de montagem (diretório “recipiente”) no qual o dispositivo (disco ou partição) foi montado.

Ex.: # umount /media/Docs

02 – Informando o dispositivo a ser desmontado:

# umount <dispositivo>, onde:

  • <dispositivo>: é a identificação do dispositivo (disco ou partição) atribuída ao mesmo pelo GNU/Linux, a qual pode ser obtida com o utilitário blkid já explanado neste artigo.

Ex.: # /dev/hda7

Obs.: Antes de desmontar dispositivos USB no qual você tenha feito alterações nos dados armazenados (gravações de dados), execute o comando sync para fazer uma desmontagem mais segura do dispositivo, evitando perdas de dados. O comando sync grava no dispositivo todos os dados armazenados em buffers. Veja um exemplo na figura a seguir:

É isso!

Comente também

4 Comentários

Claudio Roberto França Pereira

Bom artigo Roberto. Mas está desatualizado. Talvez seja a distribuição que você está usando. Não sei precisar desde quando ou de qual versão do kernel, mas o driver de dispositivos PATA/IDE (CONFIG_IDE) foi depreciado em favor do driver SATA (libata) que agora também suporta dispositivos PATA. Em função dessa mudança, distros modernas utilizam nomes no /dev no format sdX, ao invés do anterior hdX. Ou seja, o primeiro hd/drive óptico agora é referenciado como /dev/sda, e não mais como /dev/hda. Outro ponto é em relação ao coldplug e hotplug, que também já foram depreciados em favor do udev.
Qual distro você usou pra montar esse artigo? É bom deixar claro, porquê montagem de pendrives, por exemplo, é algo bastante comum para novatos no linux, e essas pequenas diferenças podem confundi-los.

    Roberto Rodrigues Junior

    Caro Claudio R. F. Pereira,
    Obrigado por seus comentários.
    A distro Linux que utilizo profissionalmente, e que utilizei para redigir este artigo, é a CentOS 5.6. Até este momento, é a versão mais atual desta distro e está completamente atualizada em relação a seus repositórios oficiais. O CentOS é uma distro Linux, 100% compatível a distro RHEL 5.6, voltada para ambientes corporativos. Portanto, trata-se de uma distro “conservadora” que prima pela estabilidade. Provavelmente, por esta razão, os novos drivers a que você se referiu ainda estejam disponíveis nesta distro.
    Mas, de qualquer forma, seus comentários vieram a complementar este meu artigo. Novamente, obrigado.

    Roberto Rodrigues Junior

    Corrigindo minha resposta acima:

    Provavelmente, por esta razão, os novos drivers a que você se referiu ainda NÃO estejam disponíveis nesta distro.

Francisco Machado

Ótimo tutorial em todos os quesitos. Didático e esclarecedor. Muito obrigado ‘Betão’ e parabéns.

Qual a sua opinião?