Usando partições e sistemas de arquivos

Este artigo está dividido em quatro partes: Introdução sobre partições e sistemas de arquivos; Criando partições e sistemas de arquivos; Montando e desmontando sistemas de arquivos; Gerenciando partições e sistemas de arquivos.

[ Hits: 130.112 ]

Por: Cristian Alexandre Castaldi em 02/01/2006


Criando partições e sistemas de arquivos



2.1. 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.

2.2. 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)

Command Meaning
b Seleciona qual será a partição de boot
d Deleta a partição corrente
g Muda os parâmetros Cilindros, Cabeças e Setores por trilha
h Mostra o menu de ajuda
m Aumenta o espaço da partição corrente
n Cria uma nova partição
P 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

q Sai do cfdisk sem salvar a tabela de partições
t Muda o tipo do sistema de arquivos
u Muda a unidade de informação de tamanho da partição no display (MB, setores ou cilindros)
W Grava 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.

2.3. 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.

2.4. 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

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando partições e sistemas de arquivos
   3. Montando e desmontando sistemas de arquivos
   4. Gerenciando partições e sistemas de arquivos
   5. Bibliografia
Outros artigos deste autor

Trabalhando com coringas, filtros e expressões regulares no shell

Instalando e configurando o servidor Samba

Sistema de boot, níveis de execução e shutdown

Gerenciando quotas de disco

Servidor CVS: Instalando, configurando e gerenciando no Linux

Leitura recomendada

Controlando projetos com o fantástico CVS

Acesso a compartilhamentos do Samba sendo autenticados pelo Active Directory usando Kerberos

Trilha Filesystems Linux - Operação de Sistemas de Arquivos

Linux - Quota de disco

Ativando suporte ao NTFS no RedHat9 sem recompilar o kernel

  
Comentários
[1] Comentário enviado por halquimista em 02/01/2006 - 08:59h

Parabens pelo artigo! Acabo de esclarecer muitas dúvidas minhas em relação a partições! Principalmente na configuração do fstab!
Parabens!!!

[2] Comentário enviado por agk em 05/01/2006 - 09:17h

Olha fazia tempo que não via artigos tão bem escritos, você está realmente de parabéns. Apesar de se obter essas informações em man pages, esse artigo reune e explica uma série de detalhes referentes a particionamento e montagem das partições.
Eu sempre tive dúvidas em relação a quais opções usar no fstab, após ler o artigo ficou bem mais claro. Mesmo assim, ainda tenho algumas dúvidas, não sei se cabe perguntar aqui, mas vamos lá.
No caso específico de dispositivos usb, como eu faço a configuração deles no fstab, essa é uma dúvida antiga que tenho, considerando que já consegui fazer com que os dispositivos montem automaticamente, mas apenas o usuário root tem permissões de leitura/escrita.
Acredito que seja algum problema de configuração no fstab, mas como configurar isso?
Eu utilizo assim no fstab:
none /proc/bus/usb usbfs defaults 0 0

Quando um dispositivo usb é inserido o usbfs cria o dispositivo em /dev, então presumo eu que esse dispositivo deva ser criado com permissões suficientes para que os usuários "comuns" do sistemas possam acessá-los.
Eu tentei diversas configurações, todas sem sucesso:
none /proc/bus/usb usbfs uid=0,devgid=100,devmode=077,umask=0000 0 0
none /proc/bus/usb usbfs default,devuid=1000 0 0
none /proc/bus/usb usbfs uid=0,devgid=1000,devmode=0660 0 0
none /proc/bus/usb usbfs devmode=0666 0 0

Tem alguma forma de se especificar as permissões para a criação de devices através do fstab?
Bem o artigo está excelente, desculpa o tamanho do comentário.
Se alguém puder me ajudar, desde já agradeço, [ ]'s.

[3] Comentário enviado por crildo em 09/01/2006 - 23:14h

agk tente essa entrada no /etc/fstab

none /proc/bus/usb usbdevfs users,ro ou rw 0 0

Para maiores informações dê uma olhada nesse site aqui:
http://www.linux-usb.org/USB-guide/x173.html

[4] Comentário enviado por capeleiro em 12/01/2006 - 13:29h

Cara.
Parabéns.
Realmente um excelente arquivo, prático e de bom entendimento, para mim que sou iniciante no Linux , foi um achado. Realmente estes são so tutoriais que valem a pena ser lidos .
Valeu,
Abraços.

[5] Comentário enviado por removido em 22/01/2006 - 13:52h

Aí Crildo mandou bem nesse artigo, além de muito bem escrito e elaborado explicou muito bem deixando claro para muita gente que necessita desse artigo. Espero que continue assim; logo vou escrever meu primeiro artigo para a comunidade e vou me espelhar no seu belo trabalho para não fazer feio. Fui.....

[6] Comentário enviado por DHRS em 08/06/2006 - 10:40h

Buenas. Colega!

Parabéns mesmo, como já colocado pelos colegas acima. Este artigo informa a todos de uma maneira clara e simples, assim as dúvidas podem ser esclarecidas de formarápida e fácil.

Um grande Abraço. []'s-Gurizito-

[7] Comentário enviado por Skilo em 04/07/2006 - 14:45h

Ei cara, realmente o artigo esta bem esclarecedor, parabéns.

Agora queria lhe pedir uma ajuda com relação ao servidor de arquivos que alguns amigos meus estão montando:

eles conseguiram instalar o slack 10.2 em um dos 3 hds SCSI e agora os outros dois hds não estão visiveis na interface gráfica do slack, o=como eu faço para poder enxergar os outros hds para fazer o espelhamento?

[8] Comentário enviado por carlinux em 01/11/2006 - 09:18h

Cara esse seu artigo me ajudou muito nesse início de convivio com Linux, me tirou diversas dúvidas a respeito de partições!!!!!!!!!!!!!


Abraço

[9] Comentário enviado por pbasque em 04/01/2007 - 11:52h

crildo , parabéns. Ficou shou o artigo. uma leitrua bem clara e compreensilvel.

Só uma problema pelo qual estou passando, precisei trocar o hd de um cliente por conta do espaço em disco insuficiente. Adicionei um disco novo de 80 GB Tenho um RH9 instalado devidamente no hda
hda1 = /boot
hda2 = /
hda3 = /home

porem tem um outro disco de 40 " meu antigo disco" instalado na secondary master

seria meu hdc, e esse disco é quem esta instalado a algum tempo atraz, com todo o sistema, tbm é um RH9, com Grub partionado da mesma maeira que o de 80 Gb.
O que não estou conseguindo fazer é montar esse disco de 40

tentei
" mount /dev/hdc2 /mnt/disco-antigo "
" mount /dev/hdc3 /mnt/disco-antigo "

mas não montou
A secondary está funcionando com certeza
acho q está faltando algo na sintaxe, tentei colocar no final "-ext3"
OBS todas as portições estão formatadas como EXT3

Se alguem tiver uma dica agradeço.

até mais e obrigado.

[10] Comentário enviado por rbn_jesus em 23/03/2007 - 17:04h

Estou com um problema em LVM, creio que vc possa me ajudar...
tenho uma configuração lvm em apenas 1 dispositivo, da seguinte forma:
xda1 - /boot - ext3
xda2 - lvm (lvm1 - / - ext3; lvm2 - swap)

como recupero as informações da 1ª partição do lvm neste despositivo?

[11] Comentário enviado por lucasa em 21/06/2007 - 14:29h

Estou querendo criar uma partição escondida (hidden) do tipo Fat32.
Mas procurei na internet e não achei como criar este tipo de partição, só com o uso de programas proprietários como o Partition Magic.
Meu objetivo mesmo é conseguir montar as partições escondidas no linux em um HD USB, mas que estas partições escondidas não possam ser detectadas por meu aparelho de DVD com entrada usb.
O problema é que o dvd não pode tratar dispositivos com mais de uma partição.
Obridado por qualquer informação. Sou um usuário avançado mas não sei o q fz :-/.

[12] Comentário enviado por icefusion em 22/10/2007 - 15:37h

Muito bom artigo brother....parabéns mesmo.....continue assim...

[13] Comentário enviado por fasseabra em 23/09/2008 - 22:34h

Mto bom - estou estudando p/ um Concurso e ja me abriu bem a mente.
É isso ai - Vlw


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts