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:
Postagem original do artigo
http://imasters.com.br/artigo/21375/redes-e-servidores/gerenciamento-de-pontos-de-montagem-em-sistemas-gnu-linux/