Frases

domingo, 13 de abril de 2008

Montando partições no fstab

Olá pessoal, vou falar um pouco sobre o arquivo fstab (/etc/fstab). É através desse arquivo que são montadas as partições para que o Gnu/Linux inicie corretamente, pois sem ele não teria como iniciar o sistema. O fstab também serve para montar outras partições com outros sistemas de arquivos, facilitando para você não precisar montar aquela sua partição windows toda vez que ligar o computador, e através dele também são montados os dispositivos(cd-rom, dvd, floppy...). Este documento se baseia no manual do fstab(man fstab) e do manual do mount(man mount).
Então vamos lá.
Abaixo temos um exemplo de um arquivo /etc/fstab:

Device
Moint point
File Sistem
Options
/dev/hda4 / ext3 defaults 1 1
/dev/hda5 /var ext3 defaults 1 2
/dev/hda6 swap swap defaults 0 0
/dev/hdb /mnt/cdrom iso9660 defaults,noauto,user 0 0
/dev/fd0 /mnt/floppy auto defaults, noauto, user 0 0
/dev/hda2 /mnt/win vfat noexec,uid=100,gid=100 0 0
none /proc proc defaults 0 0

O modelo do arquivo fstab é assim:
[dispositivo] [ponto de montagem] [sistema de arquivos] [opções] [opção para o dump] [opção para o fsck]

dispositivo:
Nesse campo é colocado o dispositivo a ser montado ou um sistema de arquivos remoto. Para montagens NFS deve ser colocado :

, exemplo: dark.dark.net:/home/minhapasta. Para procfs, use somente 'proc'. No exemplo acima a primeira linha monta o dispositivo hda4.

ponto de montagem:
Ele identifica em qual pasta será montada a partição, para partições swap esse campo deve ser especificado como 'swap', se o nome do ponto de montagem contiver espaços, estes podem ser representados por '\040'. No nosso exemplo na primeira linha coloquei a pasta raiz do Gnu/linux, já na segunda linha identifiquei como a pasta /var que seria montado no sistema.

sistema de arquivos:
Nesse campo você descreve qual o sistema de arquivo. Atualmente os seguintes tipos de sistemas de arquivos são suportados - consulte /proc/filesystems para saber quais sistemas de arquivos são suportados pelo seu kernel:
adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs.

opções:
Segue abaixo explicação de algumas das opções disponíveis no fstab:

noauto: Essa opção faz com que o dispositivo não montado automaticamente durante o boot, é a opção que deve ser usada para disquetes e cd-roms no fstab, pois senão o Gnu/Linux iria tentar monta-los mesmo que não tivessem discos neles.

user: Essa opção é ótima também para discos removíveis, ela permite que qualquer usuário possa montar esse dispositivo.

noexec: Essa opção é muito útil para quando montamos partições windows, pois ele não gerencia os arquivos com permissões como no Gnu/Linux, com isso os arquivos ficam todos como executáveis, se você clicar em cima de um arquivo mp3, usando o konqueror por exemplo, ele vai tentar "executar" o arquivo é claro que sem funcionar, usando essa opção você faz com que isso não ocorra.

uid: Essa opção também é útil quando se monta partições FAT, pois elas não trabalham com permissões de arquivo, assim todas as partições que forem montadas estarão com o dono dos arquivos seja o root. Assim você com um usuário normal não poderia ter total controle desse diretório, com essa opção você pode mudar o dono do arquivo usando o uid dele que pode ser encontrado no arquivo /etc/passwd:

jean:x:144:200::/home/jean:/bin/false

Nesse exemplo o uid do usuário jean seria 144.

gid: Com essa opção você pode mudar o grupo do diretório, na verdade é a mesma função da opção acima, só que faz isso com o grupo.

jean:x:144:200::/home/jean:/bin/false

Nesse exemplo o gid do usuário jean é 200.

umask: serve para indicar quais serão as permissões dos arquivos, já que os sistemas Fat e derivados não tem sistema de permissões. O padrão é a mascára do processo atual. O valor é dado em formato octal. O padrão geralmente é representado por 022, ou seja, bit 'w'(permissão de escrita) apenas para o dono.

Abaixo uma explicação para os valores de umask(fonte www.conectiva.com.br):
A umask funciona retirando permissões, ou seja, a permissão padrão do sistema seria 666, mas com um valor de 022, no caso do superusuário, teríamos 644 (666-022=644), o que significa que quando um arquivo for criado pelo superusuário ele vai ter suas permissões inicias em -rw-r-r--, permitindo escrita e leitura para o dono do arquivo e somente leitura ao grupo ao qual ele pertence e para os demais usuários do sistema. Já no caso dos usuários comuns do sistema, todo arquivo iniciará sua vida com permissões 664 (666-002=664), o que significa leitura e escrita para o dono e para o grupo (no formato absoluto será -rw-rw-r--) e aos outros usuários do sistema permite apenas leitura.

ro: O dispositivo será montado somente para leitura

rw: Monta o sistema de arquivos com permissão de leitura e gravação.

exec: Permite a execução de binários.

suid: Permite o uso dos bits de configuração de identificação do usuário e do grupo.

dev: Interpreta dispositivos especiais de blocos ou caracteres no sistema de arquivos.

defaults: Usa as opções padrão: rw, suid, dev, exec, auto, nouser, e async.

opção para o dump:
Essa opção é usada pelo comando dump para determinar quais sistemas de arquivos precisam ser copiados, caso não tenha sido escrito nada nesse quinto campo o valor dele será considerado zero, e o dump assumirá que esse sistema de arquivos não precisa ser copiado.

opção para o fsck:
Nesse campo você deve colocar a ordem em que os sistemas de arquivos serão verificados durante o boot. A partição raiz ( / ), sempre como 1, e os outros sistemas de arquivos devem ter esse campo a partir de 2 fazendo seqüência de acordo com o número de partições que você quiser montar. Sistemas de arquivos em um mesmo dispositivo, serão verificados seqüencialmente, e sistemas de arquivos em dispositivos diferentes, serão verificados ao mesmo tempo para utilizar o paralelismo disponível com o hardware. Caso esse campo não exista ou esteja com o valor 0 o fsck não irá checar essa partição ao inicializar o Gnu/Linux.

Mais informações sobre essa opções podem ser encontradas com o comando "man mount" ou "man fstab", aqui eu somente coloquei as que julguei mais importantes. Na primeira linha do exemplo você puderam ver que esta com as opções default do sistema, já na linha onde montei o cd-rom utilizei das opções noauto, defaults e user, fazendo com que fique da melhor maneira para trabalhar, é claro que essas opções ficam a seu critério, e suas necessidades.

Vou passar aqui para vocês alguns exemplos usando o comando mount. (Colaboração: Andrei Drusian )
Montando disquete formatado em FAT
# mount -t vfat /dev/fd0 /mnt/floopy

Montando o Cdrom

# mount -t iso9660 /dev/hdX /mnt/cdrom

Montando partição Windows FAT

# mount -t vfat /dev/hdaX /mnt/win

Montando partição Windows NTFS
# mount -t ntfs /dev/hdaX /mnt/win

Montando compartilhamento remoto Windows/SMB
# mount -t smbfs //192.168.0.1/dados /mnt/smb -o username=xxx

Montando compartilhamento remoto NFS
# mount -t nfs 192.168.0.1:/dados /mnt/nfs

Montando uma partição do FreeBSD
# mount -t ufs -o ufstype=44bsd /dev/hdaX /mnt/bsd/

Montando uma partição windows com problemas na exibição de caracteres
Um problema muito comum é quando montamos uma partição FAT, existe o problema com a exibição de caracteres (ç,ã,á,é,í...). Uma maneira de resolver isso é usando as seguintes opções no fstab ou mesmo no mount:

iocharset=iso8859-1
codepage=850

exemplo de linha no fstab:
/dev/hdaX /mnt/win vfat noexec,uid=100,gid=100,iocharset=iso8859-1,codepage=850 0 0

exemplo de mount:
# mount -t vfat -o codepage=850,iocharset=iso8859-1,noexec /dev/hdaX /mnt/win

Esses exemplos foram somente para explicar a função da iocharset e codepage, as outras opções foram somente demonstrativas, ficando ao seu critério quais opções usar nas maneiras de montar o dispositivo.

Ta aí pessoal, um manualzinho bem simplificado e explicadinho sobre o fstab, espero que ajude todos, e tirem quase todas as dúvidas de vocês.
Gostaria de agradecer a Deus pela minha sabedoria, e que sempre me ajude a compartilhar ela com todos os que necessitam.

3 comentários:

Relsi Maron disse...

Opá, bem legal o blog, vou linkar no meu se não for problema!!

Um abração!!

Anônimo disse...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Celular, I hope you enjoy. The address is http://telefone-celular-brasil.blogspot.com. A hug.

Anônimo disse...

Ae brother MUITO BOM esse "tutorial" para montar partições...Muito util

Parabens