quinta-feira, 28 de abril de 2011

Linux - Partições e Sistemas de Arquivos

(Viva o Linux) - O Linux é muito versátil quando o assunto é sistema de arquivos e por isso, é muito importante o entendimento de suas funcionalidades. Um exemplo disso é a possibilidade de criar e manter arquivos em diferentes tipos de partições, discos, dispositivos e computadores remotos. Além disso, o Linux da suporte há vários tipos de sistemas de arquivos (EXT2, EXT3, ReiserFS, NTFS, entre outros).

O Linux possui uma extensa gama de dispositivos de sistema, sendo que estes podem ser formatados para utilizar os mais diversos tipos de sistemas de arquivos. O diretório padrão dos dispositivos do sistema é o /dev. Observe o exemplo:

# ls /dev 

Dos inúmeros dispositivos apenas falarei de dois, os do tipo IDE e os do tipo SCSI. O primeiro padrão atende a maioria dos computadores caseiros enquanto o segundo é utilizado em servidores por oferecer melhor desempenho do que os discos IDE.

As placas mãe da maioria dos computadores possuem duas interfaces IDE, primária e secundária, que podem conectar dois discos IDE cada. O padrão SCSI não tem limitação de discos como o padrão IDE, podendo chegar até pelo menos 15 discos.

Os discos IDE e SCSI seguem as seguintes nomenclaturas nos sistemas operacionais Linux:
/dev/hda Disco IDE Mestre Primário
/dev/hdb Disco IDE Escravo Primário
/dev/hdc Disco IDE Mestre Secundário
/dev/hdd Disco IDE Escravo Secundário
/dev/sda Disco SCSI conectado no primeiro canal
/dev/sdb Discos SCSI conectado no segundo canal
/dev/sdc Discos SCSI conectado no terceiro canal

Cada disco pode ter de uma até dezesseis partições onde cada partição é representada por um número inteiro. Por exemplo /dev/hda1 será a primeira partição se houver outra partição ela será a /dev/hda2 e assim por diante sendo que a mesma regra se pratica nos discos SCSI.

Existem quatro tipos de partições:
  • Partições primárias - Cada disco pode conter até quatro partições primárias elas contêm pelo menos um sistema de arquivos e pelo menos uma deve ser criada. Uma dessas partições deve ser marcada como ativa para que a carga do sistema operacional seja possível.
  • Partição estendida - Esse tipo de partição é um contêiner de partições lógicas, ele não pode conter nenhum sistema de arquivos e um disco pode ter somente uma partição estendida.
  • Partições lógicas - As partições lógicas são subpartições que existem em conjunto com a partição estendida, podem-se ter doze partições desse tipo e elas podem ser nomeadas á partir do número cinco até o dezesseis. Podemos ter no máximo 15 partições com sistemas de arquivos em único disco, sendo três primárias e doze lógicas.
  • Partições de swap - São partições que tem o objetivo de aumentar a performance do sistema, ela possibilita que o Linux tenha uma memória virtual em disco. Ela trabalha como um arquivo de troca de dados entre a memória física e o disco.

Criando partições e sistemas de arquivos

fdisk

O programa fdisk é um manipulador de tabelas de partições do Linux. Com ele podemos criar, mudar, listar e apagar as partições de um disco rígido. Ele nos possibilita criar vários tipos de partições com diferentes sistemas operacionais para o Linux.


Vamos listar a tabela de partições do meu sistema:

# fdisk -l
Disk /dev/sda: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

Device     Boot    Start    End   Blocks  Id   System
/dev/sda1  *       1        6     48163   +83  Linux
/dev/sda2          7        37    249007  +82  Linux swap
/dev/sda3          38       219   1461915  83  Linux
/dev/sda4          220      1305  8723295  5   Extended
/dev/sda5          220      705   3903763 +83  Linux
/dev/sda6          706      766   489951   83  Linux
/dev/sda7          767      888   979933  +83  Linux
/dev/sda8          889      1305  3349521  83  Linux

Disk /dev/sdb: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

Disk /dev/sdb doesn't contain a valid partition table


Observe que possuo dois HDs SCSI, /dev/sda e /dev/sdb, porém o /dev/sdb ainda não tem nenhuma tabela de partições válidas. Veja que o disco /dev/sda possui duas partições primárias, uma partição de swap, uma partição estendida e quatro partições lógicas. Vamos criar algumas partições no disco /dev/sdb. Lembrando que para fazer estas operações você deve estar logado como superusuário. 

# fdisk /dev/sdb 

Tecle m para obter a ajuda dos comandos

Command (m for help): m
Command action
   a   Marca ou desmarca a partição como ativa para o processo de boot.
   b   Edita discos bsd
   c   Faz comutação compatível com DOS
   d   Deleta uma partição
   l   Lista os tipos de partições possíveis
   m   Mostra o menu de ajuda
   n   Adiciona uma nova partição
   o   Cria uma partição vazia DOS na tabela de partições
   p   Mostra a tabela de partições
   q   Sai sem salvar as mudanças
   s   Cria uma partição SUN disklabel
   t   Muda o tipo de sistema de arquivos da partição
   u   Muda o display
   v   Verifica a tabela de partições
   w   Grava as alterações efetuadas em disco
   x   Funcionalidades Extras (Somente para experts) 

Vamos criar uma nova partição:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4) 

Escolha "p" para criarmos uma partição primária, como podemos notar o número de partições primárias possíveis é quatro. A próxima etapa é escolher o número da partição:

Partition number (1-4): 1 

Se a partição for lógica o fdisk se encarrega de numerá-la. Agora devemos escolher o tamanho da partição definindo o cilindro inicial e o cilindro final ou pelo tamanho em megabytes ou gigabytes.

Por exemplo, para criar uma partição de 1 giga, digite +1024M ou +1G. No meu caso, selecionei 1 que é o default e depois defini o tamanho dessa partição para três gigas.

First cylinder (1-1305, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): +3G 

Vamos repetir o procedimento e criar uma partição de dois gigas:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4) p
Partition number (1-4): 2
First cylinder (384-1305, default 384): 384
Last cylinder or +size or +sizeM or +sizeK (384-1305, default 1305): +2G 

Agora vamos criar uma partição extendida e duas lógicas de um giga cada. No meu caso criarei uma partição extendida com as opções default:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (639-1305, default 639): 639
Last cylinder or +size or +sizeM or +sizeK (639-1305, default 1305): 1305 

A próxima etapa é criar as partições lógicas:

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (639-1305, default 639): 639
Last cylinder or +size or +sizeM or +sizeK (639-1305, default 1305): +1G

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (767-1305, default 767): 767
Last cylinder or +size or +sizeM or +sizeK (767-1305, default 1305): +1G 

Observe que a opções agora são para criação de partições lógicas e primárias. Vamos analisar como ficou a nossa tabela de partições. Para isso tecle “p” no menu de ajuda:

Command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot  Start  End   Blocks    Id  System
/dev/sdb1    1      83    3076416   83  Linux
/dev/sdb2    384    638   2048287  +83  Linux
/dev/sdb3    639    1305  5357677  +5   Extended
/dev/sdb5    639    766   102812   +83  Linux
/dev/sdb6    767    894   1028128  +83  Linux

Podemos verificar que todas as partições possuem sistema de arquivos com o tipo 83 ext2 e que a partição /dev/sdb3 é a partição estendida que contêm as partições lógicas /dev/sdb5 e /dev/sdb6.

Mas suponhamos que eu necessite de um outro tipo de sistema de arquivos diferente do ext2 para uma das partições, uma partição NTFS por exemplo. Podemos usar a opção "t" para essa tarefa, observe:

Command (m for help): t
Partition number (1-6): 5
Hex code (type L to list codes): L 

0  Empty        1c  Hidden Win95 FA 65  Novell Netware   bb  Boot Wizard hid
1  FAT12        1e  Hidden Win95 FA 70  DiskSecure Mult c1  DRDOS/sec (FAT-
2  XENIX root   24  NEC DOS         75  PC/IX           c4  DRDOS/sec (FAT-
3  XENIX usr    39  Plan 9           80  Old Minix       c6  DRDOS/sec (FAT-
4  FAT16 <32M   3c  PartitionMagic   81  Minix / old Lin c7  Syrinx
5  Extended     40  Venix 80286     82  Linux swap       da  Non-FS data
6  FAT16        41  PPC PReP Boot   83  Linux           db  CP/M / CTOS / .
7  HPFS/NTFS    42  SFS             84  OS/2 hidden C:   de  Dell Utility
8  AIX          4d  QNX4.x           85  Linux extended   df  BootIt
9  AIX bootable 4e  QNX4.x 2nd part 86  NTFS volume set e1  DOS access
a  OS/2 Boot Manag 4f  QNX4.x 3rd part 87  NTFS volume set e3  DOS R/O
b  Win95 FAT32     50  OnTrack DM       8e  Linux LVM       e4  SpeedStor
c  Win95 FAT32 (LB 51  OnTrack DM6 Au 93  Amoeba           eb  BeOS fs
e  Win95 FAT16 (LB 52  CP/M             94  Amoeba BBT       ee  EFI GPT
f  Win95 Ext'd (LB 53  OnTrack DM6 Au 9f  BSD/OS           ef  EFI (FAT-12/16/
10  OPUS             54  OnTrackDM6       a0  IBM Thinkpad hi f0  Linux/PA-RISC b
11  Hidden FAT12     55  EZ-Drive         a5  FreeBSD         f1  SpeedStor
12  Compaq diagnost 56  Golden Bow       a6  OpenBSD         f4  SpeedStor
14  Hidden FAT16 <3 5c  Priam Edisk     a7  NeXTSTEP         f2  DOS secondary
16  Hidden FAT16     61  SpeedStor       a9  NetBSD           fd  Linux raid auto
17  Hidden HPFS/NTF 63  GNU HURD or Sy b7  BSDI fs         fe  LANstep
18  AST SmartSleep   64  Novell Netware   b8  BSDI swap       ff  BBT
1b  Hidden Win95 FA 

Hex code (type L to list codes): 7
Changed system type of partition 5 to 7 (HPFS/NTFS) 

Command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot  Start  End    Blocks    Id  System
/dev/sdb1    1      383    3076416   83  Linux
/dev/sdb2    384    638    2048287+  83  Linux
/dev/sdb3    639    1305   5357677+  5   Extended
/dev/sdb5    639    766    1028128+  7   HPFS/NTFS
/dev/sdb6    767    894    1028128+  83  Linux

Agora vamos excluir uma partição:

Command (m for help): d
Partition number (1-6): 6

Command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot  Start  End   Blocks   Id  System
/dev/sdb1    1      383   3076416  83  Linux
/dev/sdb2    384    638   2048287+ 83  Linux
/dev/sdb3    639    1305  5357677+ 5   Extended
/dev/sdb5    639    766   1028128+ 7   HPFS/NTFS

Para finalizar vamos gravar as alterações efetuadas em disco:

Command (m for help): w
The partition table has been altered! 

Calling ioctl() to re-read partition table.
Syncing disks. 


cfdisk

Assim como o fdisk, o cfdisk também é um manipulador de tabelas de partições para Linux. Com ele podemos criar, modificar, excluir, listar partições assim como no fdisk. A diferença é que o cfdisk (na minha opinião) é mais interativo e fácil de usar do que o fdisk. Vamos por a mão na massa:

# cfdisk /dev/sdb
cfdisk 2.11n

Disk Drive: /dev/sdb
Size: 10737418240 bytes
Heads: 255   Sectors per Track: 63   Cylinders: 1305

Name  Flags   Part Type   FS Type     [Label]   Size (MB)
---------------------------------------------------------------
Pri/Log  Free Space   10734.00         

[  Help  ]  [  New   ]  [ Print  ]  [  Quit  ]  [ Units  ]  [ Write ]

Print help screen 

Primeiro vamos identificar qual a utilidade de cada botão:

[ Help ] - Exibe a tela de ajuda (Estas opções são usadas na linha de comando) 

CommandMeaning
bSeleciona qual será a partição de boot
dDeleta a partição corrente
gMuda os parâmetros Cilindros, Cabeças e Setores por trilha
hMostra o menu de ajuda
mAumenta o espaço da partição corrente
nCria uma nova partição
PMostra a tabela de partições

Opções:
  • r - Dados não processados
  • s - Tabela ordenada por setores
  • t - Tabela em formato não processado
qSai do cfdisk sem salvar a tabela de partições
tMuda o tipo do sistema de arquivos
uMuda a unidade de informação de tamanho da partição no display (MB, setores ou cilindros)
WGrava a tabela de partições no disco sendo necessário confirmar esta operação com "yes" ou "no"


[ New ] - Cria uma nova partição 

[ Print ] - Mostra a tabela de partições 

Opções:
  • r - Dados não processados
  • s - Tabela ordenada por setores
  • t - Tabela em formato não processado

[ Quit ] - Sai do cfdisk sem salvar a tabela de partições 

[ Units ] - Muda a unidade de informação de tamanho da partição no display (MB, setores ou cilindros) 

[ Write ] - Grava a tabela de partições no disco sendo necessário confirmar esta operação com "yes" ou "no" 

Agora que já sabemos qual é a utilidade de cada botão da interface do cfdisk vamos criar uma nova partição no disco, selecione o botão [ New ]: 

[Primary]  [Logical]  [Cancel ] 

Agora selecione o botão [Primary] para criarmos uma partição primária e depois defina o tamanho da partição em Megabytes. 

Size (in MB): 2048 

Selecione o botão [Beginning] para adicionar a partição na tabela de partições: 

[Beginning]  [   End   ]  [ Cancel  ] 

Observe que criamos uma nova partição chamada sdb1 com sistema de arquivos do tipo Linux e com dois Gigabytes de espaço físico. 

sdb1   Primary Linux    2048.10    Pri/Log   

Repita o processo para criar outras partições primárias, pois agora vamos criar as partições lógicas. Selecione: 

Pri/Log     Free Space      8685.90 

Depois selecione o botão [ New ]: 

[Primary]  [Logical]  [Cancel ] 

Selecione o botão [Logical] para criar a partição lógica e depois defina o tamanho da partição em Megabytes. 

Size (in MB): 1024 

Selecione o botão [Beginning] para adicionar a partição na tabela de partições: 

[Beginning]  [   End   ]  [ Cancel  ] 

Repita este procedimento para criar outras partições lógicas de acordo com a sua necessidade. 

sdb1    Primary   Linux    2048.10        
sdb2    Primary   Linux    2048.10
sdb3    Primary   Linux    501.75
sdb5    Logical   Linux    1019.94
sdb6    Logical   Linux    797.86
sdb7    Logical   Linux    2048.10
sdb8    Logical   Linux    2270.18     

Observe que foram criadas três partições primárias e quatro lógicas, a partição estendida foi criada automaticamente quando decidi criar a primeira partição lógica. Vamos analisar as opções que temos agora para as partições criadas: 

[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]  [  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ] 

[Bootable] - Seleciona qual será a partição de boot. 

[ Delete ] - Deleta a partição corrente. 

[ Help ] - Exibe a tela de ajuda. 

[Maximize] - Aumenta o tamanho da partição corrente. 

[ Print ] - Mostra a tabela de partições. 

[ Quit ] - Sai do cfdisk sem gravar a tabela de partições. 

[ Type ] - Muda o tipo do sistema de arquivos. 

[ Units ] - Muda as unidades de tamanho das partições que são mostradas no display. Podem ser: Megabytes, setores ou cilindros. 

[ Write ] - Grava a tabela de partições no disco. 

Agora que já sabemos para que serve cada botão da interface do cfdisk vamos mudar o tipo de sistema de arquivos da partição /dev/sdb2 para NTFS. Selecione o botão [ Type ]. Observe que será exibida uma tabela com diversos tipos de sistemas de arquivos entre eles o HPFS/NTFS que é referenciado pelo número 07. 

Enter filesystem type: 07 

Repare que a partição /dev/sdb2 agora possui o sistema de arquivos NTFS. 

sdb2     Primary   NTFS   2048.10 

Suponhamos que eu necessite deletar uma partição, selecione a partição que deseja deletar e pressione o botão [ Delete ]. 

Observe que a partição sdb8 foi deletada e que o seu espaço está livre. Agora para finalizar vamos gravar a nossa tabela de partições, para essa função selecione cada partição criada e pressione o botão [ Write ]: 

Digite "yes" para gravar a partição... 

Are you sure you want write the partition table to disk? (yes or no): yes 

Depois de gravar a tabela de partições pressione o botão [ Quit ] para sair do cfdisk. 

mkfs


O comando mkfs é usado para formatar as partições criadas pelo fdisk ou cfdisk com o sistema de arquivos. Ele possui as seguintes opções:
  • -c Verifica se o dispositivo possui bad blocks (defeitos)
  • -L nome Configura o nome do dispositivo
  • -n nome Configura o dispositivo para o formato msdos
  • -q Não mostra a saída de vídeo
  • -v Mostra a saída de vídeo
  • -t Especifica o tipo de sistema de arquivos a ser formatado.

Ele pode ser usado de duas maneiras: 

Primeira: 

# mkfs -t ext3 -L partição1 /dev/sdb1 
mke2fs 1.27 (8-Mar-2002)
Filesystem label=partição1
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
250368 inodes, 500015 blocks
25000 blocks (5.00%) reserved for the super user
First data block=0
16 block groups
32768 blocks per group, 32768 fragments per group
15648 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done 
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override. 

Segunda: 

# mkfs.ext3 -L particão3 /dev/sdb3
mke2fs 1.27 (8-Mar-2002)
Filesystem label=particão3
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
122880 inodes, 489982 blocks
24499 blocks (5.00%) reserved for the super user
First data block=1
60 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done 
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override. 

mkswap
O comando mkswap é usado para formatar uma partição swap preparando o dispositivo para ser usado como área de memória virtual. 

# mkswap /dev/sdb6
Setting up swapspace version 1, size = 797814784 bytes


Montando e desmontando sistemas de arquivos

mount

O comando mount é usado para montar arquivos de sistemas no Linux, ou seja, ele é utilizado para montar um dispositivo na hierarquia do sistema de arquivos do Linux podendo aceitar outros casos de uso. As opções mais usadas são:
  • -a Monta todos os dispositivos especificados no arquivo /etc/fstab que não tem a opção noauto selecionada.
  • -r Monta o sistema de arquivos com permissão somente de leitura.
  • -w Monta o sistema de arquivos com permissão de leitura e gravação.
  • -o Especifica as opções de montagem. Elas podem ser: auto, noauto, ro, rw, exec, noexec, user, users, nouser, sync, async, dev, nodev, suid, nosuid, defaults, remount, atime.
  • -t tipo - Especifica o tipo de sistema de arquivos do dispositivo. Eles podem ser: adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs, xiafs.

Vamos a um exemplo prático, a sintaxe é a seguinte: 

mount opções dispositivo diretório 

# mount -text3 /dev/sdb3 /mnt/particão1 

Com o comando "df" podemos ver o dispositivo /dev/sdb3 montado no diretório /mnt/particão1 e o espaço utilizado pelo sistema de arquivos, mais adiante veremos as suas funcionalidades. Observe: 

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 1.4G 62M 1.2G 5%  /
/dev/sda1 45M 5.9M 37M 14% /boot
/dev/sda5 3.7G 659M 2.8G 19% /usr
/dev/sda6 463M 38M 402M 9% /var
/dev/sda7 942M 17M 877M 2% /tmp
/dev/sda8 3.1G 33M 2.9G 2% /home
/dev/sdb3 463M 8.1M 431M 2% /mnt/particão1

Para montar partições Windows: 

# mount -tvfat /dev/hdb3 /mnt/windows98
# mount -tntfs /dev/hdb4 /mnt/win2000
 

(serve p/ XP e Windows 2003) 

Para montar o CDROM: 

# mount -tiso9660 /dev/cdrom /cdrom 

(ou /mnt/cdrom) 

Para montar unidades de disquetes: 

# mount -text3 /dev/fd0 /floppy 

(ou /mnt/floppy) 

umount
O comando umount é utilizado para desmontar os dispositivos montados pelo comando mount. Ele pode ser usado com as seguintes opções:
  • -r Em caso do umount falhar remonta o dispositivo com permissão somente de leitura.
  • -a Desmonta todos os dispositivos listados no arquivo /etc/mtab, que é mantido pelo comando mount como referência de todos os dispositivos montados.
  • -t tipo Desmonta somente os dispositivos que contenham o sistema de arquivos especificado.
  • -f Força a desmontagem do dispositivo.

Vamos ver como ele funciona: 

# umount /mnt/particão1
# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda3 1.4G 62M 1.2G 5%  /
/dev/sda1 45M 5.9M 37M 14% /boot
/dev/sda5 3.7G 659M 2.8G 19% /usr
/dev/sda6 463M 38M 402M 9% /var
/dev/sda7 942M 17M 877M 2% /tmp
/dev/sda8 3.1G 33M 2.9G 2% /home

/etc/fstab

O arquivo /etc/fstab é usado pelos sistemas Linux para determinar onde as partições são montadas e qual o ponto de montagem de cada uma, automaticamente, na inicialização do sistema operacional. O arquivo /etc/fstab possui os parâmetros sobre as partições que são lidos pelo comando mount. Ele é composto e dividido da seguinte maneira: 

Dispositivo (Primeira Coluna) - Partição a ser montada. Ex: /dev/hda2 

Ponto de Montagem (Segunda Coluna) - Especifica o diretório em que a partição será montada. Ex: /mnt/particão1. 

Tipo (Terceira Coluna) - Determina o tipo de sistema de arquivos que será usado na partição a ser montada. Pode ser: ext2, ext3, reiserfs, msdos, vfat, iso9660, nfs, ntfs, swap, proc entre outras. 

Opções (Quarta Coluna) - Especifica as opções usadas com o sistema de arquivos. Pode ser:
  • auto - Especifica que o dispositivo deve ser montado na carga do sistema.
  • noauto - Especifica que o dispositivo não seja montado na carga do sistema.
  • ro - Especifica que o sistema de arquivos será montado com permissão somente de leitura.
  • rw - Especifica que o sistema de arquivos será montado com permissão de leitura e gravação.
  • exec - Especifica que o sistema de arquivos será montado com permissão de execução de arquivos.
  • noexec - Especifica que o dispositivo não seja montado com permissão de execução de arquivos.
  • user - Permite que qualquer usuário monte o sistema de arquivos, mas proíbe outros de desmonta-lo.
  • users - Permite que qualquer usuário monte e desmonte os sistemas de arquivos.
  • nouser - Especifica que somente o superusuário pode montar e desmontar os arquivos de sistema.
  • sync - Habilita a transferência de dados síncrona no dispositivo.
  • async - Habilita a transferência de dados assíncrona no dispositivo.
  • dev - Dispositivo especial de caracteres.
  • suid - Habilita que os executáveis tenham bits do suid e sgid.
  • nosuid - Especifica que os executáveis não tenham bits do suid e sgid.
  • defaults - Especifica as opções de montagem como rw, suid, exec, auto, nouser e async.

Freqüência de Backup (Quinta Coluna) - O comando dump consulta o arquivo etc/fstab para saber quais sistemas de arquivos devem ser copiados. Se for 1 ele faz o backup se for 0 ele assumirá que o sistema de arquivos não precisa ser copiado. 

Checagem de disco (Sexta Coluna) - Determina se o dispositivo deve ou não ser checado na carga do sistema pelo fsck. Se for 0 o sistema de arquivos não será checado, o número 1 deve ser usado para checar a partição raiz ( / ) e a partir do 2 em diante depois do sistema raiz, ou seja, 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. 

Observe um exemplo do arquivo /etc/fstab: 
# <Sist. Arq.>  <Ponto Mont.>   <tipo>  <opçõess>  <dump>  <passo>
/dev/sda3  /        ext3    errors=remount-ro  0  1
/dev/sda2  none     swap    sw                 0  0
proc       /proc    proc    defaults           0  0
/dev/fd0   /floppy  auto    user,noauto        0  0
/dev/cdrom /cdrom   iso9660 ro,user,noauto     0  0
/dev/sda1  /boot    ext3    defaults           0  2
/dev/sda5  /usr     ext3    defaults           0  2
/dev/sda6  /var     ext3    defaults           0  2
/dev/sda7  /tmp     ext3    defaults           0  2
/dev/sda8  /home    ext3    defaults           0  2

Para finalizar, vamos adicionar uma das partições criadas anteriormente para ser montada automaticamente, em um determinado diretório, na inicialização do sistema.

# vi /etc/fstab

Na última linha do arquivo adicionei a seguinte entrada de dados:
/dev/sdb2   /mnt/particão1   ext3   defaults      0   3

Quando o sistema for inicializado a partição será montada automaticamente, observe a saída do comando "df -v": 

# df -v
Filesystem  1k-blocks   Used      Available    Use%   Mounted on
/dev/sda3   1438920   62472     1303356      5%    /
/dev/sda1   46636      5986       38242     14%    /boot
/dev/sda5   3842376   674044   2973144     19%    /usr
/dev/sda6   474443      38429     411517      9%    /var
/dev/sda7   964500      16440     899064      2%    /tmp
/dev/sda8   3296840   32828     3096536      2%    /home
/dev/sdb2   1968620   32828     1835788      2%    /mnt/particão1

Gerenciando partições e sistemas de arquivos
du
O comando du exibe o espaço ocupado por arquivos e sub-diretórios dentro do diretório atual. As suas opções de uso são:
  • -a - Mostra todos os arquivos e não somente diretórios
  • --block-size - Mostra os arquivos por tamanho de blocos
  • -b - Mostra o tamanho em bytes
  • -c - Mostra um total no final da listagem
  • -h - Mostra as informações de forma mais clara, utiliza M para megabytes e G para Gigabytes
  • -H - Mostra as informações do mesmo modo que a opção –h, porém o tamanho de bloco é 1000 e não 1024.
  • -k - Mostra o tamanho em kilobytes
  • -l - Mostra o espaço utilizado pelos links simbólicos.
  • -m - Mostra o tamanho em megabytes
  • -S - Não mostra os subdiretórios na contagem
  • -s - Mostra um sumário do diretório especificado e não o total de cada subdiretório
  • -x - Omite diretórios de arquivos de sistemas diferentes
  • -X - Exclui arquivos iguais a um determinado arquivo.
Observe o exemplo:  # du -h /boot
12k     /boot/lost+found
1.9M    /boot


df
O comando df, como mencionado anteriormente, mostra o espaço utilizado por um sistema de arquivos. Ele possui as seguintes opções de uso:
  • -a - Mostra todos os sistemas de arquivos, até mesmo os com 0 blocos de uso.
  • --block-size - Mostra os sistemas de arquivos por tamanho de bloco.
  • -h - Mostra as informações dos sistemas de arquivos de forma mais amigável, utiliza K para kilobytes, M para megabytes e G para gigabytes.
  • -H - Mostra as informações do mesmo modo que a opção –h, porém o tamanho de bloco é 1000 e não 1024.
  • -i - Mostra o número de inodes disponíveis no disco.
  • -k - Mostra o número de kilobytes disponíveis no sistema de arquivos.
  • -l - Lista somente as informações de sistemas de arquivos locais
  • -m - Mostra o número de megabytes disponíveis no sistema de arquivos.
  • -P - Usa o padrão POSIX no formato de saída das informações dos arquivos de sistema.
  • -t - Mostra somente os sistemas de arquivos de um determinado tipo especificado. Ex: df -t ext3.
  • -T - Mostra os tipos de sistema de arquivos usado por cada sistema de arquivo listado.
Observe o exemplo:  # df -h
Filesystem   Size   Used   Avail  Use%  Mounted on
/dev/sda3    1.4G   62M    1.2G   5%    /
/dev/sda1    45M    5.9M   37M    14%   /boot
/dev/sda5    3.7G   659M   2.8G   19%   /usr
/dev/sda6    463M   40M    400M   9%    /var
/dev/sda7    942M   17M    877M   2%    /tmp
/dev/sda8    3.1G   33M    2.9G   2%    /home
/dev/sdb2    1.9G   33M    1.7G   2%    /mnt/particão1

fsck

O comando fsck é usado para checar e opcionalmente reparar um ou mais sistemas de arquivos Linux. Depois de executado ele retorna as seguintes condições:
  • 0 - Não houve erros
  • 1 - Sistema de arquivos com erros corrigidos
  • 2 - O sistema deverá ser reinicializado
  • 4 - Sistema de arquivos com erros não corrigidos
  • 8 - Erro operacional
  • 16 - Tratamento ou erro de sintaxe
  • 128 - Erro de bibliotecas compartilhadas
Observe algumas opções:
  • -s - Serializa as operações checando múltiplos sistemas de arquivos em um modo interativo.
  • -t - Especifica o tipo de sistema de arquivo a ser checado.
  • -A - Checa todos os arquivos de sistemas listados no arquivo /etc/fstab
  • -c - Checa por bad blocks
  • -r - Mostra um prompt interativo caso haja mudanças
  • -b - Usa um superbloco alternativo
  • -f - Força a checagem mesmo se o sistema de arquivos estiver marcado como limpo
  • -l - Adiciona bad blocks para a lista
  • -L - Retira bad blocks da lista
  • -p - Repara automaticamente o sistema de arquivos
  • -y - Executa o fsck de modo interativo, não fazendo nenhuma pergunta ao usuário.
  • -v - Exibe informações completas sobre o sistema de arquivos.
A checagem do fsck é feita em cinco etapas:  1. Checagem de inodes, blocos e área; 2. Checagem da estrutura de diretórios; 3. Checagem da conectividade dos diretórios; 4. Checagem da contagem de referência; 5. Checagem da informação de sumário de grupo.  Observe o exemplo:  # fsck -v -f /dev/sda1
fsck 1.27 (8-Mar-2002)
e2fsck 1.27 (8-Mar-2002)
/dev/sda1 is mounted.  

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/dev/sda1: recovering journal
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

      23 inodes used (1%)
       0 non-contiguous inodes (0.0%)
         # of inodes with ind/dind/tind blocks: 4/2/0
    7513 blocks used (15%)
       0 bad blocks
       0 large files

      11 regular files
       2 directories
       0 character device files
       0 block device files
       0 fifos
       0 links
       1 symbolic links (1 fast symbolic links)
       0 sockets
--------
      14 files

Bibliografia

Ribeiro, Uirá. Certificação Linux Rio de Janeiro: Axcel Books do Brasil Editora, 2004. da SILVA, Gleydson Mazioli. Guia Foca GNU/Nível Intermediário.  Disponível em:http://focalinux.cipsga.org.br/.  Acesso em: 17 mar. 2004. Nash, Angie e JAson. LPIC 1 Certification Bible Indianápolis, IN Cleveland, OH e Nova York, NY: Hungry Minds, 2001.

Nenhum comentário:

Postar um comentário