fstab no Linux

Fstab (static information about the filesystems) é um arquivo de configuração do Linux que contém descrições dos vários sistemas de arquivos. Sua localização correta é “/etc/fstab” e é através da configuração deste que o sistema irá montar as partições, CD-ROMS, compartilhamento de rede e outros. O arquivo é lido pela primeira vez no boot para que os pontos de montagem sejam feitos corretamente e você possa utilizar o sistema.

Diferentemente do Windows, tudo no Linux é representado por um arquivo, até mesmo os dispositivos físicos da máquina são mapeados em arquivos. Por exemplo um hd sata é representado pelo arquivo “/dev/sda”. Se você possuir mais de um hd sata, a representação seria “/dev/sdb”, “/dev/sdc” e assim por diante. Um hd pode ser dividido em vários blocos, que chamamos de partições, no Linux cada partição é representada por um número, então para poder acessar as partições de um disco rígido IDE precisaríamos nos referir aos arquivos “/dev/hda1” e “/dev/hda2”. Se houvessem mais partições elas seriam representadas pelos números 3, 4, 5 e assim sucessivamente.

No Windows quando uma nova partição é detectada ela é montada no “Meu Computador” e representada por alguma letra como, “D:”, “E:” e outras. Estas somente podem ser acessadas através destes locais. O Linux lhe da a liberdade de montar a partição onde você desejar, não existe um local específico para montá-la, embora seja recomendado montar as partições que não fazem parte do sistema dentro do diretório “/mnt/” apenas por uma questão de organização.

Vamos então visualizar um arquivo fstab de exemplo.

$ cat /etc/fstab

#/etc/fstab

/dev/sda1 / ext4 defaults 0 1

/dev/sda2 swap swap defaults 0 0

/dev/sda3 /home ext4 defaults 0 2

/dev/sdb1 /mnt/Filmes reiserfs noauto,users,exec 0 0

A primeira coluna identifica o dispositivo no sistema operacional, neste caso temos o “/dev/sda” e suas partições e o “/dev/sdb” também com sua partição. Ambos são HD’s SATA. A segunda coluna indica onde o dispositivo deverá ser montado, então temos como exemplo o dispositivo “/dev/sda1” sendo montado no diretório raiz “/” do sistema, pois é neste dispositivo onde o sistema está instalado. O “/dev/sda3” monta o diretório “/home”, onde ficam armazenadas as informações do usuário. É sempre interessante ter este diretório em uma partição separada, pois caso você necessite reinstalar o sistema operacional basta não formatar a partição que contém os arquivos do home e configurar o fstab para montar esta partição novamente no diretório “/home” da instalação nova, preservando assim todos seus arquivos pessoais.

A terceira coluna indica qual o sistema de arquivos utilizado, ext3, ext4, reiserfs, fat32 (neste caso é representado por vfat) e ntfs. A quarta, quinta e sexta colunas são configurações de como a partição deve ser montada.

A quinta coluna é utilizada pelo dump, um software de backup, ele examina quais modificações foram feitas na partição para copiar os arquivos modificados em um backup incremental por exemplo. Para ativar esta opção utilize o número 1, para desativá-la utilize 0. A sexta coluna é utilizada pelo fsck, um software que verifica a integridade do sistema de arquivos, esta verificação é feita no momento do boot. Para desativar a verificação utlize o número 0, o número 1 diz que esta partição deve ser checada antes de todas as outras, portanto é usado na partição raiz do sistema “/”, o número 2 irá indicar que a partição deverá ser checada mas somente depois da partição raiz do sistema.

Visualizando então o exemplo:

/dev/sdb1 /mnt/Filmes reiserfs noauto,users,exec 0 0

esta linha diz que o sistema deve montar a partição “/dev/sdb1” no diretório “/mnt/Filmes”, o tipo de sistema de arquivos é reiserfs, a opção “noauto” significa que ela não deve ser montada automaticamente durante o boot mas somente no momento que for acessada, o “users” significa que qualquer usuário terá permissão de montar ou desmontar a partição e o “exec” permite a execução de binários dentro dela. Ela não utilizará o dump e não deverá ser checada pelo fsck.

Outros exemplos de opção de montagem são:

  • auto, noauto: com a opção “auto” o dispositivo será montado automaticamente durante o boot, o “noauto” portanto significa que ele não deve ser montado durante o boot.

  • user, nouser: a opção “user” permite que qualquer usuário tenha permissão de montar e desmontar o dispositivo, já com o “nouser” ativado somente o root terá a permissão para montagem e desmontagem.

  • exec, noexec: permite ou não a execução de binários no dispositivo montado, é utilizada por questões de segurança.

  • ro: monta o dispositivo no modo de somente leitura.

  • rw: monta o dispositivo no modo de leitura e gravação.

  • noatime: não altera as propriedades do arquivo quando este é acessado, somente quando ele é alterado.

Utilizando o fstab é possível montar também compartilhamentos de rede. Para um compartilhamento NFS, utilizado entre sistemas operacionais Linux, a linha seria:

172.16.0.20:/home/tux/publico /mnt/tux nfs noauto,users,exec 0 0

Onde “ 172.16.0.20:/home/tux/publico” é o ip da máquina na rede seguido pela pasta que está compartilhada.

Também é possível montar compartilhamentos com rede Windows automaticamente, para isto:

//172.16.0.10/M$/publico /mnt/M$ smbfs noauto,user,username=teste,password=123 0 0

A sintaxe muda um pouco em relação ao nfs, para acessar a máquina deve-se usar “//ipdamaquina/pastacompartilhada”, e o protocolo de acesso é o smbfs. Também temos duas novas opções, o username onde deve ser colocado o nome do usuário para acesso ao compartilhamento e o password, onde é colocada a senha. Como a senha neste caso fica exposta é bom alterar as permissões do arquivo fstab para que somente o root consiga ler e escrever no arquivo, portanto utilize o comando:

#chmod 600 /etc/fstab

Outra opção segura caso você não queria limitar o acesso ao fstab é criar um arquivo contendo o usuário e senha de acesso e deixar somente este arquivo acessivel ao root, como no exemplo:

//172.16.0.10/M$/publico /mnt/M$ smbfs noauto,user,credentials=/etc/usuariosamba 0 0

A opção credentials indica qual o arquivo que contém o usuário e a senha para acesso ao compartilhamento. Então é necessário criar o arquivo “/etc/usuariosamba”.

#vi /etc/usuariosamba

e adicionar as linhas:

username = teste

password = 123

e tornar o arquivo somente acessível pelo usuário root.

#chmod 600 /etc/usuariosamba

Apesar de parecer um mistério a primeira vista, o fstab é um arquivo de fácil entendimento, existem muitas outras opções de montagem que não foram citadas, para vê-las acesse as manpages do “mount” e comece a personalizar o seu fstab.