Você está na página 1de 68

1

Guia completo para iniciantes sobre discos e


partições no Linux

Manipulação de discos ou partições são muito comuns,


principalmente quando decide-se ter mais de um sistema
instalado na máquina ou criar “espaço reservado” para
determinados…
Manipulação de discos ou partições são muito comuns, principalmente quando decide-se ter mais de
um sistema instalado na máquina ou criar “espaço reservado” para determinados arquivos. Contudo,
alguns detalhes técnicos acabam por confundir muitos usuários que deixam de realizar algumas
tarefas desse tipo, por conta disso. Sendo assim, resolvi escrever um artigo que “deixasse de lado”
termos, altamente, técnicos, associados a este assunto, e que oferecesse uma leitura mais simples e
descomplicada.

Antes de começar…
Primeiramente, saiba que toda operação com partições de discos é perigosa, pois há o risco de
perda ou corrompimento dos dados. Tenha sempre um backup (cópia de segurança) de seus
arquivos. Ou, prefira realizar testes dessa natureza em ambientes isolados ou que não afetem dados
críticos do seu cotidiano. Por exemplo, sugiro o uso de máquinas virtuais para esse cenário.
Diante disso, apresento alguns conceitos importantes para uma boa compreensão:

Discos e partições no Linux


1. NOMENCLATURA DOS DISCOS
Diferentemente de sistemas Windows, não existe nenhuma unidade C ou D no Linux. Uma
referência a um disco rígido no Linux, normalmente, você verá algo como arquivos /dev/sda,
/dev/sdb, /dev/sdc, etc.
2

O nome e pasta “dev” é a tradução de dispositivo e, neste caso, representa um dispositivo de


armazenamento em bloco. O prefixo “sd”, do arquivo contido na pasta “dev”, é a tradução para o
driver de armazenamento em massa SCSI (Small Computer System Interface). Os discos SCSI são
unidades que podem ser HDs (pendrives), unidades de CD-RW e gravadoras de DVD. E a ‘letra’,
sufixo de ‘sd’, indica o número do disco (sda).
De acordo com a imagem acima, é mostrado como os discos rígidos são representados no
Windows e num sistema Linux. O Windows, no caso, vê um disco na unidade C: e outro na
unidade D:. Já no caso do Linux, ele assume uma abordagem diferente. O primeiro disco rígido
detectado por um sistema Linux possui o rótulo sda. Em termos numéricos, é o disco rígido 0
(zero, a contagem começa de 0, não 1). O segundo disco rígido é sdb, e uma possível terceira
unidade, sdc, e assim por diante.
2. PARTIÇÕES
Para instalar um sistema operacional em um disco rígido, ele deve primeiro ser subdividido em
unidades de armazenamento distintas. Em outras palavras, um disco precisa ser particionado (ter
partições). Analogamente, a uma pizza com respectivos pedaços.
As partições são divisões lógicas existentes no disco rígido, indicando onde começa e onde
termina uma região do disco. Um disco rígido (HD) pode ser dividido em várias partições, e cada
partição será tratada com se fosse um dispositivo à parte.
Dessa forma, podemos instalar mais de um sistema operacional num mesmo HD, bem como salvar
arquivos em uma partição separada, de modo a não perder os dados numa eventual corrupção do
sistema. Uma partição de disco não interfere em outras partições existentes, por este motivo é
3

possível usar o Windows, Linux e qualquer outro sistema operacional no mesmo disco. Mas,
quando se apaga uma partição, você estará apagando TODOS os arquivos existentes nela!

Se você observar a imagem, você verá que, ao contrário dos discos rígidos, os números de partição
começam de 1, não 0 (zero). Ou seja, se tivermos 2 partições, elas serão representadas por sda1 e
sda2.
Em relação aos tipos, as partições subdividas em Primárias, Estendidas e Lógicas.
• Primárias: partições que contém um sistema de arquivos. Normalmente, partições de
sistemas operacionais.
• Estendidas: partições primárias especiais, que ao invés de receber um sistema de arquivos
“abrigam” outras partições lógicas.
• Lógicas: são as partições criadas dentro das partições estendidas. Essas partições, assim
como as primárias, recebem sistemas de arquivos.
4

Na imagem acima, vemos o uso de partições primárias, estendidas e lógicas. Ao marcar uma
partição como uma partição estendida, é possível criar muitas mais partições debaixo dela. Essas
partições são chamadas de partições lógicas.
Ainda na imagem anterior, você pode ver que existem 3 partições primárias – sda1, sda2 e sda3. A
quarta partição é uma partição estendida, que permite criar mais partições lógicas – sda6 e sda7.
Contudo, conforme a tabela de partições de cada disco, características importantes das partições
podem mudar.
3. TABELA DE PARTIÇÕES
Uma tabela de partição descreve o “layout” (aparência) das partições de um disco rígido.
Atualmente, existem dois padrões de tabela de partição de disco: MBR (Master Boot Record) e
GPT (GUID Partition Table). MBR, também conhecido como ms-dos, e é o padrão mais comum
e antigo – suportado pela BIOS. Já o GPT veio depois – suportado pela interface UEFI, presente
computadores modernos.
O esquema de particionamento MBR é o que você encontrará em computadores mais antigos.
Computadores mais recentes suportam ambos os esquemas (MBR e GPT), por isso ainda é possível
usar um esquema de partição MBR nesses computadores. As principais limitações do MBR
levaram ao desenvolvimento da GPT. Essas limitações são:
• Não permite a configuração de mais de 4 partições primárias (GPT suporta até 128 partições
primárias)
• As partições de disco (cada fatia da pizza) são limitadas a 2 TB, ou seja, um disco com
capacidade superior não será compreendido com sua capacidade máxima (GPT suporta
partições acima dos 2 TB e um máximo de 1 ZB a depender do sistema de arquivos usado)
5

• Computadores mais recentes vêm com um firmware de substituição para o antigo sistema
BIOS chamado UEFI (interface Unified Extensible Firmware), e o GPT faz parte do
padrão UEFI. Se você comprou um computador com Windows 7/8 recentemente, é
garantido que ele está instalado em um esquema de particionamento GPT.

A figura acima mostra o resultado do comando “sudo fdisk -l”, a partir de uma distribuição Ubuntu
Linux. O ‘Disklabel Type‘ confirma que o GPT está em uso. Caso fosse o esquema de partição de
disco fosse o MBR, o ‘Disklabel Type‘ seria representado por dos.
No esquema de particionamento GPT, como dito anteriormente, “supera” duas limitações do
esquema MBR – máximo de quatro partições primárias e o limite de 2 TB para os tamanhos de
partição. A imagem abaixo mostra um disco sob o esquema de particionamento GPT:
6

Como visto existem 7 partições, todas primárias. Assim, o conceito de partições estendidas e
lógicas é “irrelevante” ao GPT.
4. SISTEMA DE ARQUIVOS
Antes que uma partição de disco possa ser usada para armazenar dados, primeiro ela deve ser
formatada. O processo de formatação inclui “carimbá-lo” com um sistema de arquivos.
SAIBA MAIS
Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao
sistema operacional controlar o acesso ao disco rígido. Diferentes sistemas operacionais usam
diferentes sistemas de arquivos. Conforme cresce a capacidade dos discos e aumenta o volume
de arquivos e acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas
de arquivos cada vez mais complexos e robustos.
O sistema de arquivos no Windows é NTFS (New Technology File System). Já no Linux, existem
mais de um sistema de arquivos disponível. Na verdade, existem pelo menos duas dúzias.
A imagem abaixo mostra, como opção para instalação, o sistema de arquivo Ext4, que é uma versão
aprimorada do Ext3, é o padrão mais usado em lançamentos recentes das distribuições Linux:
7

O BtrFS é o “mais novo” sistema de arquivos Linux. Ele vem com muitos recursos que não estão
disponíveis em outros sistemas de arquivos Linux, como gerenciamento de volume e
reconhecimento de RAID – acrônimo para Redundant Array of Disclaimer Disks – que é um
método de combinação de dois ou mais discos rígidos em uma única unidade lógica.
Ele é visto como o sistema de arquivos da próxima geração para usuários de Linux, pois já está
presente como opção, para instalação, na maioria das distribuições Linux existentes. Por exemplo, o
openSUSE traz o Btrfs como opção padrão.
8

A imagem acima mostra o tipo de partição swap. É uma pequena seção de disco rígido sem
formatação que o Linux e outros sistemas operacionais usam como memória virtual. A grosso
modo, é um método para aumentar a quantidade de RAM total (RAM física física + memória
virtual).
SAIBA MAIS
A memória virtual é um recurso que utiliza o disco rígido para armazenar dados não utilizados na
memória RAM, liberando-a para receber mais dados. Isso torna o sistema mais estável e evita que
ele se torne excessivamente lento quando muitas aplicações são executadas simultaneamente.
5. PONTO DE MONTAGEM
No Linux, para acessar um dispositivo de disco é necessário antes “montá-lo” em um diretório do
sistema. O processo de montagem consiste em tornar o dispositivo acessível para o usuário. Em
outras palavras, é preciso informar em qual diretório do sistema determinada partição será
“configurada”.
Atribuir um ponto de montagem a uma partição é uma das coisas que vem com a formatação,
além de incluir um sistema de arquivos. No Linux, uma partição pode ser montada em um dos
vários pontos de montagem tradicionais. Em um sistema Linux, os pontos de montagem mais
usados são /, /boot, /home e swap. ‘/’ é o equivalente Linux da unidade Windows :C.
9

fonte: https://www.vivaolinux.com.br/artigo/Fundamentos-do-sistema-Linux-discos-e-particoes/?
pagina=1

***
Fundamentos do sistema Linux: discos e partições
Neste artigo veremos como o GNU/Linux trabalha com discos, além de ver conceito de
partições, sistemas de arquivos, bem como os principais programas para trabalhar com discos
e partições.

1. Introdução
2. Partições
3. Sistemas de arquivos
4. Montando partições
5. Particionando o HD
6. Trabalhando com sistemas de arquivos

1. Introdução

Um computador não tem muita utilidade se não puder armazenar os dados que processa para
consulta posterior.

O principal dispositivo de armazenamento do computador é o disco rígido, mas ainda temos outros
dispositivos de disco como disquetes, unidades de CD, DVD, Zip, entre outros. A forma como o
10

sistema operacional trabalha com os discos é algo vital para a eficácia do sistema e segurança dos
dados.

Neste artigo veremos como o GNU/Linux trabalha com discos, além de ver conceito de partições,
sistemas de arquivos, bem como os principais programas para trabalhar com discos e partições.

Tipos de disco

Existem vários tipos de unidades de disco, utilizadas para armazenamento de dados. No


GNU/Linux, elas são referenciadas de uma forma bastante particular, através de nomes de arquivos
do diretório /dev/.

Discos IDE: os discos IDE são os mais comuns, presentes na maioria dos computadores. Essas
unidades podem ser HD's, unidades de CD-ROM, CD-RW e DVD's. No GNU/Linux, elas são
identifacadas como /dev/hdxy, onde "x" é a letra que representa o número do disco, e "y" é o
número da partição. No caso dos HD's. CD-ROM's, CD-RW's e DVD's não têm partições, portanto
são identificados apenas como /dev/hdx, sendo "x" a letra que representa o número do disco;
Discos SCSI: os discos SCSI são discos de alto desempenho, utilizados em servidores onde a
velocidade na leitura e gravação de dados é de suma importância. Essas unidades podem ser HD's,
unidades de CD-RW e gravadoras de DVD. Essas unidades são referenciadas como /dev/sdxy,
sendo "x" a letra que indica o número do disco e "y" o número da partição, no caso dos HD's. CD-
RW's e gravadoras de DVD não têm partições, sendo identificadas apenas como /dev/sdx, sendo "x"
a letra que representa o número do disco;
Unidades de Disquete: também conhecidas como "floppy", as unidades de disquete ainda são
utilizadas, embora venham sendo abandonadas gradualmente, graças ao barateamento das unidades
de CD-RW e suas mídias. Essas unidades são referenciadas como /dev/fdx, onde "x" é o número da
unidade de disquete, começando por 0.

2. Partições

As partições são divisões lógicas existentes no disco rígido, indicando onde começa e onde termina
um sistema de arquivos. Um HD pode ser dividido em várias partições, e cada partição será tratada
com se fosse um dispositivo à parte.
Dessa forma, podemos instalar mais de um sistema operacional no mesmo HD, bem como salvar
arquivos em uma partição separada, de modo a não perder os dados numa eventual corrupção do
sistema operacional.

Tipos de Partições
• Primárias: são as partições que contém um sistema de arquivos. Num HD deve haver no
mínimo uma e no máximo quatro partições primárias. Se existirem quatro partições
primárias, nenhuma outra partição poderá existir neste disco. Por isso, o padrão é que
somente as partições onde serão instalados os sistemas operacionais sejam definidas como
primárias, mas isso não é regra, uma vez que alguns sistemas operacionais, como o
GNU/Linux, podem ser instalados totalmente dentro de partições lógicas;
11

• Extendidas: são partições primárias especiais, que ao invés de receber um sistema de


arquivos abriga outras partições, lógicas. Num disco pode existir somente uma partição
extendida;
• Lógicas: são as partições criadas dentro das partições extendidas. Essas partições, assim
como as primárias, recebem sistemas de arquivos. Dentro de uma partição extendida podem
existir no máximo 12 partições lógicas.

Como dito anteriormente, cada partição é identificada como um dispositivo à parte. No GNU/Linux,
essas partições são identicadas como /dev/[tipo de disco][disco][partição].

Os tipos de disco podem ser:


• hd: Disco rígidos IDE;
• sd: Disco rígido SCSI.

Já [disco] é substituído pela letra correspondente à unidade de disco:


• a: Primary Master;
• b: Primary Slave;
• c: Secondary Master;
• d: Secondary Slave.

E, por fim, [partição] é substituído pelo número da partição.

Veja alguns exemplos de referências a partições:


• /dev/hda1: disco rígido IDE (hd), primary master (a), primeira partição (1);
• /dev/sdc3: disco rígido SCSI (sd), secondary master (c), terceira partição (3);
• /dev/hdd4: disco rígido IDE (hd), secondary slave (d), quarta partição (4);
• /dev/sdb7: disco rígido SCSI (sd), primary slave (b), sétima partição (7).

A partição swap
Para a instalação básica de um sistema GNU/Linux são necessárias pelo menos duas partições: uma
principal, onde será instalado o sistema, e uma partição swap, conhecida também como área de
troca. A função da partição swap é funcionar como memória virtual.

A memória virtual é um recurso que utiliza o disco rígido para armazenar dados não utilizados na
memória RAM, liberando-a para receber mais dados. Isso torna o sistema mais estável e evita que
ele se torne excessivamente lento quando muitas aplicações são executadas simultaneamente.
12

A partição swap deve ser dimensionada de acordo com a quantidade de memória RAM instalada e a
carga de trabalho da máquina. O ideal é que o tamanho da partição swap seja no mínimo duas vezes
maior que a quantidade de memória RAM instalada e no máximo 1 GB.

3. Sistemas de arquivos
Sistemas de arquivos são as estruturas utilizadas para a leitura e gravação de arquivos e diretórios
pelo sistema operacional. Um disco rígido, disquete ou qualquer outro dispositivo de
armazenamento de dados não pode ser utilizado se não estiver fazendo uso de um sistema de
arquivos.

Existem inúmeros sistemas de arquivos, cada um com suas características particulares que lhe
conferem desempenho e capacidades diferentes, mas todos eles têm em comum o objetivo básico de
fornecer a estrutura necessária para o sistema operacional ler e gravar os arquivos e diretórios.

Journaling
O journaling consiste em reservar um espaço no início do disco para gravar informações sobre as
operações que serão realizadas, antes delas serem realmente feitas. Assim, se alguma falha ocorrer
durante a operação, seja gravação, movimentação ou exclusão, basta o sistema ler o setor de
journaling para facilmente poder desfazer as operações, retornando os arquivos para seu estado
anterior, ou então completar as operações interrompidas.

O espaço onde ficam gravadas as informações de operações chama-se journal, daí o nome
journaling. Graças ao journal, a verificação de sistemas de arquivos com suporte a journaling é
realizada muito rapidamente, pois basta verificar se existe alguma operação pendente registrada no
journal. Dependendo do sistema de arquivos utilizado, essa verificação pode durar de 1 a 2
segundos somente, podendo ser executada toda vez que se carrega o sistema operacional,
garantindo uma grande segurança quanto à integridade dos dados.

Como no journaling é necessário gravar as informações no journal antes de realizar as operações de


fato, o processo de gravação pode se tornar mais lento, sobretudo nos casos de várias operações
consecutivas com arquivos pequenos. Entretanto, a velocidade nas operações com dados está mais
relacionada a outros aspectos do sistema de arquivos do que com a presença ou não do journaling,
de forma que facilmente encontramos sistemas de arquivos como o ReiserFS, com journaling, que
possuem um desempenho muito maior que grande parte dos sistemas sem journaling, como o
FAT32 e o EXT2.

Tipos de sistemas de arquivos


13

Os sistemas de arquivos sem journaling são muito inseguros, mas costumam ser mais rápidos,
devido ao número menor de informações que são armazenadas sobre os arquivos.

A principal vulnerabilidade dos sistemas de arquivos sem journaling é quanto ao desligamento


repentino do computador. Se um computador que utiliza um sistema de arquivos desse tipo estiver
ligado e for desligado diretamente através do botão ou devido a falha elétrica, certamente haverá
perda de dados, possivelmente até o comprometimento total do sistema de arquivos, tornando os
dados gravados no HD inacessíveis. Além disso, em caso de falhas, a verificação de erros em
sistemas de arquivos sem journaling é lenta, pois requer a análise de todos os dados do HD.

Sistemas de arquivos com journaling, por sua vez, são muito seguros e confiáveis, muito tolerantes
à queda de energia, e a verificação de erros é muito mais rápida. Entretanto, podem ser muito mais
lentos que os sistemas de arquivos sem journaling, mas isso é bastante relativo.
• EXT2: o EXT2 é um sistema de arquivos muito rápido pelo fato de não possuir um journal,
sendo assim os dados são gravados diretamente. Quando ocorre alguma falha que provoque
o desligamento incorreto do sistema, o utilitário fsck é acionado para a verificação do
sistema, sendo às vezes um processo lento e nem sempre com bons resultados, ocasionado
quase sempre perda de dados.
• FAT32: o FAT32 é o sistema de arquivos padrão do Windows, utilizado nas versões 95, 98 e
Me, e disponível também para as versões 2000 e XP. É um sistema de arquivos simples, um
pouco lento e bastante vulnerável a falhas, motivos pelos quais ele não pôde ser usado nos
sistemas operacionais de rede da Microsoft, como as versões NT, 2000 Server e 2003 Server
do Windows.
• EXT3: o sistema de aquivos EXT3 foi desenvolvido pelo doutor Stephen Tweedie e
colaboradores na Red Hat. Pode-se dizer que ele é um EXT2 com journaling e passou a ser
suportado na versão 2.4 do kernel Linux. No EXT3, o journal usa uma camada chamada
JDB (Journaling Block Device), que utiliza um método diferente na recuperação de dados:
ao invés de armazenar bytes que devem ser gravados, ele armazena blocos modificados do
sistema de arquivos na memória para poder rastrear as operações que ficaram pendentes. A
vantagem é que ele não precisa lidar com a complexidade de gravar bytes no journal e a
desvantagem é que o journal acaba ficando maior. Em compensação ao considerável
aumento na segurança dos dados, o desempenho nas operações em sistemas de arquivos
EXT3 é muito inferior à dos sistemas EXT2.
• ReiserFS: o ReiserFS é um sistema desenvolvido especialmente para o Linux, muito
confiável e surpreendentemente rápido, em muitos casos mais rápido até mesmo que
sistemas sem journaling. O ReiserFS, por não utilizar blocos de tamanho fixo, mas ajustar
seu tamanho de acordo com o arquivo, evita os problemas de desperdício de espaço comuns
em outros sistemas de arquivos. Possui suporte a arquivos maiores que 2 GB e o acesso a
árvore de diretórios é muito mais rápido. Utiliza uma eficiente estrutura de dados chamada
balanced tree (árvore equilibrada), que trata toda a partição como se fosse uma única tabela
de banco de dados contendo diretórios, arquivos e arquivos de meta-data, o que aumenta
muito o desempenho de aplicativos que trabalham com arquivos pequenos, porque estes são
lidos de uma só vez, em apenas um ciclo de I/O do HD.
14

Sua versão 3 não trabalha perfeitamente com o sistema de arquivos de rede NFS (Network
File System). Existem alguns patches para resolver o problema, mas eles não o resolvem
completamente.

O criador do ReiserFS é Hans Reiser. Atualmente o projeto é patrocinado pela SuSE e


mantido pela empresa NameSys. Aguarda-se o lançamento oficial da versão 4 do ReiserFS,
o Reiser4, que foi totalmente reescrito e possui um desempenho superior à da versão 3.
• JFS: Sigla de Journaling File System, foi criado pela IBM para uso em servidores
corporativos, e teve seu código-fonte liberado. O sistema de arquivos JFS também usa a
estrutura I-node para armazenar a localização dos blocos de cada arquivo nas estruturas
físicas do disco. A versão JFS2 armazena esses I-nodes em uma árvore binária para acelerar
o acesso a essas informações. Esses blocos podem variar de 512 a 4096 bytes, e a alocação
dos I-nodes é feita conforme vai sendo necessário.
• XFS: desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o
código-fonte, o XFS possui vários patches e alguns bugs, mas é um sistema de arquivos
muito rápido na gravação e possui um desfragmentador para arquivos.
• NTFS: sigla de New Technology File System, foi desenvolvido pela Microsoft para ser
utilizado nas versões de rede do Windows, inicialmente o NT, e posteriormente o 2000
Server e o 2003 Server. Baseado no HPFS (High Performance File System), da IBM, o
NTFS possui suporte a gravação de permissões de acesso, Reparse Points, que permite
associar ações a arquivos e pastas, quotas de discos, entre outros recursos.

Por ser um sistema proprietário, da Microsoft, não foi possível desenvolver para o
GNU/Linux um suporte nativo a sistemas de arquivos NTFS. É possível ler, mas não há
suporte eficiente à gravação nesse sistema de arquivos. Em alguns casos, pode-se usar o
Captive, um programa disponibilizado sob a licença GNU GPL que se utiliza de arquivos de
sistema do Windows para permitir a gravação em sistemas de arquivos NTFS, e por isso
requer que o Windows esteja instalado no computador. O desempenho do Captive é pobre, a
gravação de arquivos é muito lenta, atingindo míseros 2 MB por segundo. Outra alternativa,
porém paga, é o Paragon NTFS, que funciona muito bem e possui um desempenho muito
superior ao do Captive.

Qual sistema de arquivos utilizar


Falar qual sistema de arquivos você deve usar é uma missão quase impossível, é como falar de
distribuições GNU/Linux: alguém que adora o Slackware com certeza só vai recomendar o
Slackware, e alguém que adora o Debian com certeza só vai recomendar o Debian, e assim por
diante.

Em se tratando de sistemas de arquivos, a recomendação é que você escolha, entre os que possuem
15

os recursos que você precisa, aquele que apresentar o melhor desempenho.

Nesse caso, a menos que você vá utilizar NFS, o sistema de arquivos mais indicado é o ReiserFS,
que possui comprovadamente um desempenho muito superior ao de outros sistemas de arquivos. Se
for utilizar NFS, uma vez que existe o problema de compatibilidade do ReiserFS, pode-se utilizar o
XFS, ou o EXT3. Entretanto, se você realmente não precisa das vantagens do journaling, o EXT2
pode ser a melhor alternativa para você.

4. Montando partições
No GNU/Linux, para acessar um dispositivo de disco é necessário antes montá-lo em um diretório
do sistema. O processo de montagem consiste em tornar o dispositivo acessível para o usuário.

Vamos tomar como exemplo simples um disquete. O dispositivo de disquete é /dev/fd0. Entretanto,
se você colocar um disquete no drive e tentar acessá-lo através de /dev/fd0, você não conseguirá:

# cd /dev/fd0
bash: cd: /dev/fd0: Não é um diretório

Você precisa, antes, montar o disquete:

# mount /dev/fd0 /media/floppy


# cd /media/floppy
# ls
doc.tar.bz2 linux-apostila.sxw lost+found ROTEIRO_divisao.doc

Com o comando mount nós informamos ao sistema operacional para permitir o acesso ao conteúdo
do disquete através do diretório /media/floppy/. Dessa forma, o conteúdo desse diretório passa a ser
o contéudo do sistema de arquivos do disquete.

Isso torna possível utilizar várias partições como se eles fossem uma só. Por exemplo, podemos
utilizar uma partição separada para gravar os dados do diretório /home/:

# mount /dev/hda5 /home

Agora, quando gravarmos alguma coisa no diretório /home/, ela será gravada na partição /dev/hda5,
e não na mesma partição em que está o sistema de arquivo raiz /. A utilidade disso é bem clara: se
por acaso acontecer algum problema e o sistema operacional for corrompido, basta formatar a
partição principal e reinstalar o sistema, sem mexer na partição /dev/hda5, que contém o diretório
/home/.
16

Utilizando o mount
O mount é o utilitário usado para montar sistemas de arquivos. Seu uso é simples:

# mount -t [sistema de arquivos] -o [opções] [dispositivo] [ponto de montagem]


• sistema de arquivos: aqui devemos informar qual o sistema de arquivos utilizado no
dispositivo ou partição que se deseja montar. Pode ser ext3, ext2, reiserfs, xfs, vfat, jfs,
minix, etc. Se você não souber o sistema de arquivos utilizados, experimente a opção auto;
• opções: várias opções podem ser utilizadas aqui. Algumas delas:
• ro: monta a partição no modo somente leitura, não sendo possível fazer alterações no
sistema de arquivos do dispositivo;
• rw: monta a partição no modo de leitura e escrita, permitindo fazer alterações no
sistema de arquivos;
• loop: utilizada para montar sistemas de arquivos gravados em arquivo;
• noexec: não permite a execução de programas que estejam gravados no sistema de
arquivos do dispositivo;
• noatime: não grava informações sobre data do último acesso nos arquivos;
• nodev: não permite a criação de dispositivos no sistema de arquivos do dispositivo;
• nosuid: não permite a criação de arquivos com o bit SUID ligado.
• dispositivo: é a partição, disco ou arquivo que deseja acessar;
• ponto de montagem: é o diretório a partir de onde queremos acessar o dispositivo.

Alguns exemplos de uso:

# mount -t vfat /dev/fd0 /media/floppy

Monta um disquete (/dev/fd0) usando sistema de arquivos FAT (vfat) em /media/floppy/.

# mount -t reiserfs /dev/hda5 /backup

Monta a partição /dev/hda5 usando sistema de arquivos ReiserFS em /backup/.

# mount -t ext3 -o noexec,noatime /dev/hda7 /home

Monta a partição /dev/hda7 usando sistema de arquivos EXT3 em /home/, sem permissão de
executar programas (noexec) e gravar informações sobre data do último acesso (noatime).

# mount -o loop debian-br-cdd.iso /mnt/loop

Monta o arquivo ISO (imagem de CD) debian-br-cdd.iso em /mnt/loop/.


17

umount
O umount, como o nome sugere, é o comando que utilizamos para desmontar o sistema de arquivos,
ou seja, desconectá-lo da máquina, tornando-o novamente inacessível.

Em sistemas de arquivos pequenos, como em disquetes, a gravação dos arquivos só ocorre de fato
depois de executado o umount. Isso quer dizer que não importa que você tenha copiado vários
arquivos para o seu disquete, eles só serão de fato gravados quando você desmontá-lo através do
comando umount, ou utilizar o comando sync.

Seu uso é bem simples:

# umount [dispositivo ou ponto de montagem]

Como você pode ver, pode-se especificar tanto o dispositivo quanto o ponto de montagem. Assim,
se você montou um dispositivo com o comando mount /dev/fd0 /media/floppy, por exemplo, você
poderá desmontá-lo tanto com umount /dev/fd0 como com umount /media/floppy.

O fstab
Existe um arquivo que podemos utilizar para gerenciar a montagem de dispositivos. Esse arquivo é
o /etc/fstab.

Nele encontram-se as entradas dos sistemas de arquivos que são montados durante a inicialização
do sistema, juntamente com outros sistemas de arquivos que são montados com freqüência.

Uma utilidade do fstab é permitir montar sistemas de arquivos com o mount utilizando apenas um
parâmetro. Como exemplo, vamos ver como fica o comando para montar um disquete no diretório /
media/floppy/:

# mount -t auto /dev/fd0 /media/floppy

Agora, abrimos o /etc/fstab e adicionamos a seguinte linha:

/dev/fd0 /media/floppy auto rw,noauto 0 0

Agora, para montar a unidade de disquete, basta o comando:

# mount /dev/fd0

Ou
18

# mount /media/floppy

O que é bem mais simples.

A estrutura do fstab
Vamos analisar a estrutura do fstab:

# cat /etc/fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/hda2 / reiserfs notail 0 1
/dev/hda5 none swap sw 0 0
/dev/hda1 /mnt/windows vfat rw,user,gid=100,umask=000 0 0
/dev/hdd /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Cada linha do fstab é chamada de entrada. Cada entrada é composta de seis informações, dispostas
na seguinte ordem:
• sistema de arquivos: é a partição que se deseja montar;
• ponto de montagem: diretório onde a partição será acessada;
• tipo: Tipo do sistema de arquivos utilizado pela partição que se deseja montar;
• opções: as opções usadas no sistema de arquivos, separadas por vírgula. As opções utilizadas
juntamente com o parâmetro -o do comando mount são válidas aqui, e também algumas
outras, tais como:
• defaults: utiliza as opções padrão de montagem;
• noauto: não monta o sistema de arquivos automaticamente na inicialização do
sistema. Deve ser usado em disquetes, CD's e outros dispositivos removíveis;
• sync: usado para discos removíveis, como disquetes e Zip drives, para que os dados
sejam gravados imediatamente na unidade, de forma que não seja necessário usar o
comando sync ou desmontar o disquete para que os dados sejam gravados;
• user: permite que o usuário comum possa montar o sistema de arquivos. Sem essa
opção, somente o administrador de sistema, o usuário root, pode realizar a
montagem.
• dump: especifica a frequência de backup feita com o programa dump no sistema de
arquivos. O valor 0 desativa o backup;
19

• ordem: define a ordem em que o sistema de arquivos é verificado na inicialização do


sistema. O valor 0 desativa a verificação. O valor 1 deve ser definido sempre para o sistema
de arquivo raiz /.

Para ver uma lista completa das opções do fstab, veja as páginas de manual:

$ man fstab

5. Particionando o HD
O particionamento consiste em criar as partições necessárias para instalar o sistema operacional. As
partições são divisões no disco, tratadas como se fossem discos independentes.

O particionamento faz parte do processo de instalação de qualquer distribuição GNU/Linux.


Algumas trazem ferramentas gráficas para essa tarefa, como Mandriva, SuSE e Fedora, outras
possuem ferramentas em modo texto um pouco mais simples, como o Debian, e outras, como o
Slackware, não possuem ferramentas próprias, e exigem que o usuário execute um aplicativo de
particionamento em modo texto antes de iniciar o processo de instalação.

O programa mais poderoso para particionamento de HD's é o fdisk (não confunda com o fdisk para
DOS), entretanto, por ser baseado em linha de comando, podemos facilmente cometer erros que
podem nos levar a perder todos os dados de um disco que tenha dados gravados.

Uma alternativa para o fdisk é o cfdisk. O cfdisk nada mais é que uma interface para o fdisk,
bastante intuitiva e muito simples de usar.

Tabela de partições
Tabela de partições, ou partition table, é o local no HD onde ficam armazenadas as informações
sobre as partições existentes.

Como visto anteriormente, as partições podem ser de 3 tipos: primárias, extendidas e lógicas, de
forma que podemos ter até 16 partições no disco: 3 primárias, 1 extendida e 12 lógicas. Dessas,
apenas 15 podem receber sistemas de arquivos, uma vez que a partição extendida só serve para
abrigar as partições lógicas.

Esquema de particionamento
Primeiramente, é preciso ter em mente as partições que se deseja criar. Por motivos de desempenho
e segurança, pode-se decidir criar várias partições, uma para cada diretório importante do sistema.
20

Esse procedimento é muito útil pois, no caso de uma corrupção no sistema que o torne inacessível, é
possível recuperar facilmente os dados das outras partições. Além disso, pode-se colocar os
diretórios que são mais acessados no início do disco, onde os dados são lidos mais rapidamente.

Ponto de
Partição Tipo Tamanho Bandeira
montagem
extendid
/dev/hda1 8736 MB
a
/dev/hda5 /boot lógica 32 MB boot
/dev/hda6 /usr lógica 4096 MB
/dev/hda7 swap lógica 512 MB
/dev/hda8 /var lógica 4096 MB
/dev/hda2 / primária 3072 MB
/dev/hda3 /home primária 24032 MB
/dev/hda4 /backup primária 5120 MB

Nessa estrutura existem 7 partições. 1 para a raiz do sistema /, 1 para a memória virtual (swap), 4
para diretórios importantes do sistema (/boot/, /usr/, /var/, /home/) e 1 para um diretório de backup
(/backup/).

Existem basicamente duas vantagens em escolher partições separadas para os diretórios importantes
do sistema:
• Segurança: Gravar nossos dados pessoais em partições separadas da partição principal é
seguro pois, na eventualidade de o sistema ser corrompido e não puder ser inicializado,
poderemos recuperar facilmente os nossos dados, pois eles não estarão gravados na mesma
partição do sistema, mas em uma partição à parte;
• Desempenho: Nem todos os diretórios são acessados com a mesma freqüência. Alguns são
mais lidos, outros são mais gravados, alguns são lidos somente na inicialização do sistema,
enfim. Dessa forma, podemos otimizar o sistema colocando os diretórios mais acessados em
partições localizadas no início do disco, onde a leitura e a gravação ocorrem de forma mais
rápida.

Sabendo disso, fica fácil entender o porquê dessa estrutura de particionamento acima escolhida.

A primeira partição foi separada para receber o diretório /boot/, pois é nesse diretório que se
encontram a imagem do kernel e os arquivos utilizados pelo gerenciador de inicialização, ambos
utilizados durante a inicialização do sistema. Colocar esse diretório numa partição no início do
disco garante uma leitura mais rápida dos arquivos e, portanto, alguns segundos a menos no tempo
de carregamento do sistema.
21

A segunda partição foi separada para receber o diretório /usr/, que contém os arquivos utilizados
pela maioria dos programas dos usuários. Colocar esse diretório numa partição próxima ao início do
disco torna a inicialização dos programas um pouco mais rápida.

A terceira partição foi separada para a memória virtual. A memória virtual é utilizada para
armazenar dados quando a memória RAM não for suficiente. Quanto mais rapidamente os dados
forem lidos e gravados na partição swap, melhor o desempenho do sistema quando a memória
virtual estiver sendo utilizada.

A quarta partição separamos para o diretório /var/. Essa partição contém diversas informações sobre
muitos dos programas do sistema, incluindo arquivos de log. Em sistemas de servidores, os logs são
muito importantes, além de outros arquivos que podem ser muito úteis para o administrador do
sistema. Separar o diretório /var/ é útil para fins de segurança, pois os dados contidos nesse diretório
podem ser de extrema importância em certos casos.

A quinta partição será utilizada pela raiz do sistema e o demais diretórios principais.

A penúltima partição será utilizada para o diretório /home/. Esse diretório, como você sabe, recebe
os arquivos pessoais de cada usuário, e tê-lo em uma partição separada oferece uma segurança em
relação a integridade dos dados, que podem ser facilmente recuperados no caso de corrompimento
do sistema.

Por fim, temos a última partição, que separamos para o diretório /backup/. Esse diretório é
personalizado, não existindo na FHS do Linux, e nesse exemplo será utilizado para realização de
backup.

Agora, vejamos como proceder para criar essa tabela de partições. Para isso, podemos utilizar
vários programas. O mais conhecido é o fdisk, ferramenta em modo texto extremamente poderosa,
porém não muito intuitiva. Existe ainda o cfdisk, que nada mais é que uma interface para o fdisk,
bem mais simples de utilizar.

Existem ainda alguns utilitários de particionamento em modo gráfico, com o QTParted, bastante
simples de utilizar e muito eficiente.

Vejamos agora como criar a tabela de partições acima utilizando o fdisk.

O fdisk
Para iniciar o fdisk, usamos o seguinte comando:

# fdisk [dispositivo]
22

Onde [dispositivo] é o disco que estamos particionando. Geralmente utilizamos o disco rígido IDE
ligado como primary master, o /dev/hda:

# fdisk /dev/hda

The number of cylinders for this disk is set to 4865.


There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

Ao iniciar, o fdisk mostra algumas informações a respeito do programa e apresenta o prompt de


comandos "Command (m for help):". É aqui que devemos dar os comandos para trabalhar as
partições. Os comandos são:
• a: Marcar uma partição como ativa;
• d: Apagar uma partição;
• l: Lista dos sistemas de arquivos conhecidos;
• m: Ajuda básica sobre os comandos;
• n: Criar uma nova partição;
• p: Mostra da tabela de partições do disco;
• q: Sair sem salvar as alterações;
• t: Mudar o tipo do sistema de arquivos em uma partição;
• w: Gravar a tabela de partições no disco.

Vejamos agora um exemplo prática de uso do fdisk, criando a tabela de partições mostrada na seção
anterior.

Considerando que o disco está vazio, o primeiro passo é criar a partição extendida /dev/hda1:

command (m for help): n


Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-4865, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-4865, default 4865): +8736M

Ao usar o comando n, para criar uma nova partição, o fdisk pergunta que tipo de partição criar.
23

Escolhemos e (extendida). O fdisk pergunta então qual o número que queremos dar à partição.
Escolhemos 1. Em seguida, devemos informar o cilindro inicial da partição. Apenas pressionamos
Enter, pois a partição deve ficar no início do disco. Por fim, devemos informar o tamanho da
partição. Colocamos +8736M, para definir um tamanho de 8736 MB.

Agora, devemos criar as 4 partições lógicas /dev/hda5, /dev/hda6, /dev/hda7 e '/dev/hda8, com 32
MB, 4096 MB, 512 MB e 4096 MB, respectivamente. Vamos criar primeira a partição /dev/hda5,
com 32 MB:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-1063, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1063, default 1063): +32M

Na seqüência, criamos a partição /dev/hda6, com 4096 MB:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (6-1063, default 6):
Using default value 6
Last cylinder or +size or +sizeM or +sizeK (6-1063, default 1063): +4096M

Em seguida, criamos a partição /dev/hda7, com 512 MB:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (505-1063, default 505):
Using default value 505
Last cylinder or +size or +sizeM or +sizeK (505-1063, default 1063): +512M

E, por fim, criamos a última partição lógica, /dev/hda8. Como ela deve ocupar todo o espaço
disponível, não precisamos informar o seu tamanho:

Command (m for help): n


24

Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (568-1063, default 568):
Using default value 568
Last cylinder or +size or +sizeM or +sizeK (568-1063, default 1063):
Using default value 1063

Concluída a criação das partições lógicas, é hora de criar as 3 partições primárias restantes:
/dev/hda2, /dev/hda3 e /dev/hda4. Começamos por criar a partição /dev/hda2, com 3072 MB:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1064-4865, default 1064):
Using default value 1064
Last cylinder or +size or +sizeM or +sizeK (1064-4865, default 4865): +3072M

Em seguida, criamos a partição /dev/hda3, com 24032 MB:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1438-4865, default 1438):
Using default value 1438
Last cylinder or +size or +sizeM or +sizeK (1438-4865, default 4865): +24032M

E, finalmente, criamos a última partição primária, /dev/hda4, utilizando o espaço restante no HD:

Command (m for help): n


Command action
l logical (5 or over)
p primary partition (1-4)
p
Selected partition 4
First cylinder (4361-4865, default 4361):
Using default value 4361
25

Last cylinder or +size or +sizeM or +sizeK (4361-4865, default 4865):


Using default value 4865

Agora, utilizamos o comando p para listar as partições criadas:

Command (m for help): p

Disk /dev/hda: 40.0 GB, 40020664320 bytes


255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System


/dev/hda1 1 1063 8538516 5 Extended
/dev/hda2 1064 1437 3004155 83 Linux
/dev/hda3 1438 4360 23478997+ 83 Linux
/dev/hda4 4361 4865 4056412+ 83 Linux
/dev/hda5 1 5 40099+ 83 Linux
/dev/hda6 6 504 4008186 83 Linux
/dev/hda7 505 567 506016 83 Linux
/dev/hda8 568 1063 3984088+ 83 Linux

Pronto. Todas as partições estão criadas, mas o particionamento ainda não está completo.
Precisamos definir a partição /dev/hda7 como swap. Para isso, utilizamos o comando t, e
escolhemos o número 82, para definir a partição como Linux Swap:

Command (m for help): t


Partition number (1-8): 7
Hex code (type L to list codes): 82
Changed system type of partition 7 to 82 (Linux swap / Solaris)

Segue abaixo a lista completa com os códigos de todos os tipos de partições suportados pelo fdisk:

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot


1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
26

c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor


e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX

Por fim, precisamos ligar a bandeira inicializável em uma das partições. Pelo menos uma partição
deve ter essa bandeira ligada, para que seja possível inicializar o sistema operacional.

Vamos utilizar o comando a para ligar essa bandeira na partição /dev/hda5, que é a primeira partição
do HD:

Command (m for help): a


Partition number (1-8): 5

E a tabela de partições está finalmente concluída. Vejamos como ela ficou:

Command (m for help): p


Device Boot Start End Blocks Id System
/dev/hda1 1 1063 8538516 5 Extended
/dev/hda2 1064 1437 3004155 83 Linux
/dev/hda3 1438 4360 23478997+ 83 Linux
/dev/hda4 4361 4865 4056412+ 83 Linux
/dev/hda5 * 1 5 40099+ 83 Linux
/dev/hda6 6 504 4008186 83 Linux
/dev/hda7 505 567 506016 82 Linux swap
/dev/hda8 568 1063 3984088+ 83 Linux

Uma vez concluído o particionamento, utilizamos o comando w para gravar a tabela de partições no
disco. O fdisk vai pedir confirmação antes de fazer a gravação.

Para sair do programa, utilize o comando q.

6. Trabalhando com sistemas de arquivos


27

Criando um sistema de arquivos em uma


partição
Para criar um sistema de arquivos em uma partição utilizamos o utilitário mkfs. Esse processo é
conhecido como formatação.

A sintaxe básica de uso do mkfs é:

# mkfs.[sistema de arquivos] [partição]

Dessa forma, se quisermos criar um sistema de arquivos ReiserFS na partição /dev/hda5, usamos o
comando:

# mkfs.reiserfs /dev/hda5

Da mesma forma, se quisermos formatar a partição /dev/hda2 como EXT2, o comando fica:

# mkfs.ext3 /dev/hda2

Podemos criar qualquer tipo de partição cujo suporte esteja ativado no sistema, como EXT2, EXT3,
ReiserFS, FAT16, FAT32, NTFS, XFS, JFS, etc. Entretanto, para utilizar essas partições, é
necessário que o suporte para o sistema de arquivos em questão esteja habilitado no kernel Linux.

Criando um sistema de arquivos em um


arquivo
Uma possibilidade nos sistemas GNU/Linux bastante interessante é a de usar arquivos como se
fossem partições de disco. A utilidade disso está na segurança, pois é possível gravar todos os seus
documentos importantes em um arquivo com um nome bem pouco suspeito como libXrender.so ou
debian-sarge-i386.iso. Ou mesmo facilitar a cópia de um grupo de arquivos. Você poderia gravar
vários diretórios em um sistema de arquivos montado em um arquivo e, quando quisesse copiar os
diretórios, bastaria copiar esse arquivo.

Para isso, o primeiro passo é criar um arquivo vazio, que será usado para o sistema de arquivos.
Para isso, vamos utilizar o utilitário dd:

# dd if=/dev/zero of=[arquivo de saída] bs=[tamanho do bloco] count=[número de blocos]

Vamos criar um arquivo /home/macro/imagem.img com 128 MB:


28

# dd if=/dev/zero of=/home/davidson/imagem.img bs=1M count=128

Agora, vamos criar um sistema de arquivos ReiserFS no arquivo imagem.img:

# cd /home/davidson
# mkfs.reiserfs imagem.img

Pronto. Agora, basta criar um ponto de montagem em /mnt/ e montar o arquivo para poder utilizá-lo
como se fosse uma partição qualquer:

# mkdir /mnt/loop
# mount -o loop imagem.img /mnt/loop

Repare no parâmetro -o loop. Ele é usado sempre que se quiser acessar um sistema de arquivos
gravado em um arquivo, como nesse caso. É possível acessar o conteúdo de imagens de CD
gravados no formato ISO utilizando esse procedimento.

Verificando erros em uma partição


Quando alguma mensagem de erro é exibida ao tentar acessar dados em uma partição, é indício de
que esta contém erros no sistema de arquivos. Quando isso acontece, o ideal é fazer a checagem
para corrigir eventuais erros ou, se for o caso, constatar a danificação de alguns setores do HD para
então providenciar as soluções cabíveis.

O utilitário utilizado para chegar sistemas de arquivos é o fsck, sigla de file system check (verificar
sistema de arquivos). A sintaxe básica de uso do fsck é:

# fsck -t [sistema de arquivos] [opções] [partição]

Existem diversas opções para o fsck, as principais são:


• -C: Exibe uma barra de progresso. Esse opção só funciona para checagem de sistemas de
arquivos EXT2;
• -V: Exibe informações detalhadas sobre os processos que vão sendo realizados durante a
verificação. Interessante para entender como o fsck trabalha e ver com detalhes as ações
realizadas, vem como os erros encontrados;
• -a: Corrige automaticamente os problemas encontrados utilizando as soluções marcadas
como padrão. Essa opção não é segura, pois nem sempre a solução padrão é a mais adequada
ao problema encontrado;
• -r: Corrige os problemas encontrados interativamente, perguntando ao usuário qual solução
aplicar para cada problema. É o modo mais seguro e eficiente de corrigir erros no sistema.

Como exemplo, se quisermos corrigir automaticamente os erros da partição /dev/hda7, com sistema
29

de arquivos FAT32, o comando fica:

# fsck -t vfat -a /dev/hda7

Se quisermos usar o modo interativo e ver os detalhes da verificação:

# fsck -t vfat -r -V /dev/hda7

Para checar a partição /dev/hda4, formatada como EXT2, corrigindo os erros de forma interativa e
exibindo uma barra de progresso, usamos o comando:

# fsck -t ext2 -r -C /dev/hda4

Mais opções do comando fsck podem ser obtidas na sua página de manual:

$ man fsck

Trabalhando com sistemas de arquivos

Criando um sistema de arquivos em uma partição

Para criar um sistema de arquivos em uma partição utilizamos o utilitário mkfs. Esse processo é
conhecido como formatação.

A sintaxe básica de uso do mkfs é:

# mkfs.[sistema de arquivos] [partição]

Dessa forma, se quisermos criar um sistema de arquivos ReiserFS na partição /dev/hda5, usamos o
comando:

# mkfs.reiserfs /dev/hda5

Da mesma forma, se quisermos formatar a partição /dev/hda2 como EXT2, o comando fica:
30

# mkfs.ext3 /dev/hda2

Podemos criar qualquer tipo de partição cujo suporte esteja ativado no sistema, como EXT2, EXT3,
ReiserFS, FAT16, FAT32, NTFS, XFS, JFS, etc. Entretanto, para utilizar essas partições, é
necessário que o suporte para o sistema de arquivos em questão esteja habilitado no kernel Linux.

Criando um sistema de arquivos em um arquivo

Uma possibilidade nos sistemas GNU/Linux bastante interessante é a de usar arquivos como se
fossem partições de disco. A utilidade disso está na segurança, pois é possível gravar todos os seus
documentos importantes em um arquivo com um nome bem pouco suspeito como libXrender.so ou
debian-sarge-i386.iso. Ou mesmo facilitar a cópia de um grupo de arquivos. Você poderia gravar
vários diretórios em um sistema de arquivos montado em um arquivo e, quando quisesse copiar os
diretórios, bastaria copiar esse arquivo.

Para isso, o primeiro passo é criar um arquivo vazio, que será usado para o sistema de arquivos.
Para isso, vamos utilizar o utilitário dd:

# dd if=/dev/zero of=[arquivo de saída] bs=[tamanho do bloco] count=[número de blocos]

Vamos criar um arquivo /home/macro/imagem.img com 128 MB:

# dd if=/dev/zero of=/home/davidson/imagem.img bs=1M count=128

Agora, vamos criar um sistema de arquivos ReiserFS no arquivo imagem.img:

# cd /home/davidson
# mkfs.reiserfs imagem.img

Pronto. Agora, basta criar um ponto de montagem em /mnt/ e montar o arquivo para poder utilizá-lo
como se fosse uma partição qualquer:

# mkdir /mnt/loop
31

# mount -o loop imagem.img /mnt/loop

Repare no parâmetro -o loop. Ele é usado sempre que se quiser acessar um sistema de arquivos
gravado em um arquivo, como nesse caso. É possível acessar o conteúdo de imagens de CD
gravados no formato ISO utilizando esse procedimento.

Verificando erros em uma partição

Quando alguma mensagem de erro é exibida ao tentar acessar dados em uma partição, é indício de
que esta contém erros no sistema de arquivos. Quando isso acontece, o ideal é fazer a checagem
para corrigir eventuais erros ou, se for o caso, constatar a danificação de alguns setores do HD para
então providenciar as soluções cabíveis.

O utilitário utilizado para chegar sistemas de arquivos é o fsck, sigla de file system check (verificar
sistema de arquivos). A sintaxe básica de uso do fsck é:

# fsck -t [sistema de arquivos] [opções] [partição]

Existem diversas opções para o fsck, as principais são:

-C: Exibe uma barra de progresso. Esse opção só funciona para checagem de sistemas de
arquivos EXT2;
-V: Exibe informações detalhadas sobre os processos que vão sendo realizados durante a
verificação. Interessante para entender como o fsck trabalha e ver com detalhes as ações realizadas,
vem como os erros encontrados;
-a: Corrige automaticamente os problemas encontrados utilizando as soluções marcadas como
padrão. Essa opção não é segura, pois nem sempre a solução padrão é a mais adequada ao problema
encontrado;
-r: Corrige os problemas encontrados interativamente, perguntando ao usuário qual solução
aplicar para cada problema. É o modo mais seguro e eficiente de corrigir erros no sistema.

Como exemplo, se quisermos corrigir automaticamente os erros da partição /dev/hda7, com sistema
de arquivos FAT32, o comando fica:
32

# fsck -t vfat -a /dev/hda7

Se quisermos usar o modo interativo e ver os detalhes da verificação:

# fsck -t vfat -r -V /dev/hda7

Para checar a partição /dev/hda4, formatada como EXT2, corrigindo os erros de forma interativa e
exibindo uma barra de progresso, usamos o comando:

# fsck -t ext2 -r -C /dev/hda4

Mais opções do comando fsck podem ser obtidas na sua página de manual:

$ man fsck

fonte: https://www.linuxdescomplicado.com.br/2017/09/guia-completo-para-iniciantes-sobre-
discos-e-particoes-no-linux.html

***

Guia Foca GNU/Linux


Capítulo 5 - Discos e Partições

Este capítulo traz explicações de como manipular discos rígidos e partições no sistema GNU/Linux
e como acessar seus discos de CD-ROM e partições DOS, Windows 9X/XP/Vista/Seven no
GNU/Linux.

Também será ensinado como formatar uma partição ou arquivo em formato EXT2, EXT3, reiserfs,
xfs e usar a ferramenta mkswap (para criar uma partição ou arquivo de memória virtual).
5.1 Partições

São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de
arquivos. As partições nos permitem usar mais de um sistema operacional no mesmo computador
33

(como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser
usado por um único sistema operacional ou até mesmo por diferentes arquiteturas (32 e 64 bits).

Para gravar os dados, o disco rígido deve ser primeiro particionado (usando o cfdisk, parted,
diskdruid, fdisk), escolher o tipo da partição (Linux Native, Linux Swap, etc) e depois aquela
partição deve ser formatada com o mkfs.ext3 (veja Partição EXT3 (Linux Native), Seção 5.5).

Após criada e formatada, a partição será automaticamente identificada como um dispositivo no


diretório /dev (veja Identificação de discos e partições em sistemas Linux, Seção 5.12) . e deverá ser
montada (Montando (acessando) uma partição de disco, Seção 5.13) para permitir seu uso no
sistema.

Uma partição de disco não interfere em outras partições existentes, por este motivo é possível usar o
Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco. Para escolher qual
deles será inicializado, veja Gerenciadores de Partida (boot loaders), Capítulo 6.

Para particionar (dividir) o disco rígido em uma ou mais partes é necessário o uso de um programa
de particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux
são fdisk, cfdisk e o Disk Druid.

Lembre-se:

Quando se apaga uma partição, você estará apagando TODOS os arquivos existentes nela!

A partição do tipo Linux Native (Tipo 83) é a usada para armazenar arquivos no GNU/Linux,
tanto ext2, ext3, ext4, reiserfs, xfs, etc. Para detalhes veja Partição EXT2 (Linux Native), Seção 5.3.

A partição do tipo Linux Swap (Tipo 82) é usada como memória virtual. Para detalhes veja
Partição Linux Swap (Memória Virtual), Seção 5.7.

Em sistemas novos, é comum encontrar o Windows instalado em uma partição que consome
TODO o espaço do disco rígido. Uma solução para instalar o GNU/Linux é apagar a partição
Windows e criar três com tamanhos menores (uma para o Windows, uma para o GNU/Linux e outra
para a Memória Virtual do Linux (SWAP). Ou criar apenas 2 se você não quiser mais saber mais do
Windows ;-)
34

A outra solução é usar o parted (e gparted sua versão gráfica), que trabalha com FAT16, FAT32,
NTFS. Esta técnica também é chamada de Reparticionamento não destrutivo (e o outro obviamente
Reparticionamento destrutivo). Para sistemas que foram formatados em Windows XP e superiores,
é possível que o parted não consiga redimensionar o sistema, neste caso você pode reparticionar
usando ferramentas como o ntfsresize ou Partition Magic (para Windows).

Para mais detalhes sobre discos, partições ou como particionar seu disco, veja algum bom
documento sobre particionamento (como a página de manual e documentação do fdisk, cfdisk,
parted ou Disk Druid).
5.2 Sistema de Arquivos

É criado durante a "formatação" da partição de disco (quando se usa o comando mkfs.ext3). Após a
formatação toda a estrutura para leitura/gravação/permissões de arquivos e diretórios pelo sistema
operacional estará pronta para ser usada. Normalmente este passo é feito durante a instalação de sua
distribuição GNU/Linux.

Cada sistema de arquivos tem uma característica em particular mas seu propósito é o mesmo:
Oferecer ao sistema operacional a estrutura necessária para ler/gravar os arquivos/diretórios.

Entre os sistemas de arquivos existentes posso citar:

Ext2 - Usado em partições Linux Nativas para o armazenamento de arquivos. É identificado pelo
código 83. Seu tamanho deve ser o suficiente para acomodar todo os arquivos e programas que
deseja instalar no GNU/Linux (você encontra isto no manual de sua distribuição). Você deverá usar
preferencialmente o ext3 para a instalação de seu sistema operacional. Para detalhes veja Partição
EXT2 (Linux Native), Seção 5.3.

Ext3 - Este sistema de arquivos possui melhorias em relação ao ext2, como destaque o recurso de
jornaling e suporte a arquivos de até 16Gb. Ele também é identificado pelo tipo 83 e totalmente
compatível com o ext2 em estrutura. O journal mantém um log de todas as operações no sistema de
arquivos, caso aconteça uma queda de energia elétrica (ou qualquer outra anormalidade que
interrompa o funcionamento do sistema), o fsck verifica o sistema de arquivos no ponto em que
estava quando houve a interrupção, evitando a demora para checar todo um sistema de arquivos
(que pode levar minutos em sistemas de arquivos muito grandes). Para detalhes veja Partição EXT3
(Linux Native), Seção 5.5.
35

Reiserfs - Possui os mesmos recursos do ext3, mas seu design é bastante diferente. Bastante
recomendavel para sistemas que possuem muitos arquivos pequenos (servidor web, etc). Possui o
tempo de recuperação em caso de queda de energia menor que o ext3. Para detalhes veja Sistema de
arquivos reiserfs, Seção 5.6.

Swap - Usado em partições Linux Swap para oferecer memória virtual ao sistema. Note que é
altamente recomendado o uso de uma partição Swap no sistema (principalmente se você tiver
menos que 16MB de memória RAM). Este tipo de partição é identificado pelo código 82. Para
detalhes veja Partição Linux Swap (Memória Virtual), Seção 5.7.

proc - Sistema de arquivos do kernel (veja O sistema de arquivos /proc, Seção 5.8).

FAT12 - Usado em disquetes no DOS. Não possui suporte a permissões, journaling.

FAT16 - Usado no DOS e oferece suporte até discos de 2GB. Não possui suporte a permissões e
journaling.

FAT32 - Também usado no DOS e oferece suporte a discos de até 2 Terabytes. Não possui
suporte a permissões e journaling. NTFS - Formato nativo de discos de sistemas operacionais
Windows XP e superiores. Possui suporte a permissões de acesso e compactação nativa.

5.3 Partição EXT2 (Linux Native)

A partição EXT2 é o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar
o sistema de arquivos EXT2 (após a formatação) e permitir o armazenamento de dados. Para
detalhes de como criar uma partição EXT2 veja Criando um sistema de arquivos EXT2 em uma
partição, Seção 5.3.1.

Este tipo de partição é normalmente identificado pelo código 83 nos programas de particionamento
de disco. Note que também é possível criar um sistema de arquivos EXT2 em um arquivo (ao invés
de uma partição) que poderá ser montado e acessado normalmente pelo sistema de arquivos (veja
Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2.

Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e consequentemente
uma partição Minix) para o armazenamento de arquivos. Com a evolução do desenvolvimento, foi
criado o padrão EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended
36

Filesystem). O padrão mais usado nos dias de hoje é o EXT3 devido ao Journaling (será abordado
no próximo capítulo).

Entre as vantagens do EXT2 para armazenamento de arquivos estão: é o mais rápido devido ao não
uso de journaling (principalmente para Netbooks e dispositivos flash), não se fragmenta tão
facilmente pois permite a localização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é
útil para grandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempo
todo.
5.3.1 Criando um sistema de arquivos EXT2 em uma partição

O utilitário usado para formatar uma partição EXT2 é o mkfs.ext2. Após terminar este passo, seu
sistema de arquivos EXT2 estará pronto para ser usado.

Após particionar seu disco rígido e criar uma (ou várias) partições EXT2, use o comando:

mkfs.ext2 /dev/sda?

Onde a "?" em sda? significa o número da partição que será formatada. A identificação da partição é
mostrada durante o particionamento do disco, anote se for o caso. sda normalmente é o primeiro
disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE normalmente são identificados
por hda?, hdb?, etc. Para detalhes sobre a identificação de discos, veja Identificação de discos e
partições em sistemas Linux, Seção 5.12.

Algumas opções são úteis ao mkfs.ext2:

-c Procura blocos danificados na partição antes de criar o sistema de arquivos.

-L NOME Coloca um nome (label) no sistema de arquivos.

-b NUM Define o tamanho do bloco, em bytes.

-m NUM Define a porcentagem de espaço em disco reservada para manutenção (por padrão
reservado para o root, mas isto é alterável).
37

Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t ext2

Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13.

Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando
/dev/sda, /dev/sdb, etc. EVITE FAZER ISSO! Como não estará criando uma partição, o disco estará
divido de maneira incorreta, você não poderá apagar o sistema de arquivos completamente do disco
caso precise (lembre-se que você não criou uma partição), e a partição possui uma assinatura
apropriada que identifica o sistema de arquivos.

O espaço padrão reservado na partição para o usuário root é de 5%. Em sistemas com partições
maiores que 10Gb, isso pode representar uma grande quantidade de espaço em disco não utilizada
por outros usuários. Veja a opção -m sobre como fazer esta modificação. Caso já tenha criado a
partição, isto pode ser feito no tune2fs com a opção -m.
5.3.2 Criando um sistema de arquivos EXT2 em um arquivo

É possível criar um sistema de arquivos EXT2 em um arquivo que poderá ser montado e acessado
normalmente como se fosse uma partição normal. Isto é possível por causa do recurso loop
oferecido pelo kernel do GNU/Linux. Os dispositivos de loop estão disponíveis no diretório /dev
com o nome loop? (normalmente estão disponíveis 8 dispositivos de loop).

Isto é possível usando o comando dd e o mkfs.ext2. Veja passo a passo como criar o sistema de
arquivos EXT2 em um arquivo:

Use o comando dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=10000 para criar um


arquivo arquivo-ext2 vazio de 10Mb de tamanho em /tmp. Você pode modificar os parâmetros de of
para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de
count

Formate o arquivo com mkfs.ext2 /tmp/arquivo-ext2. Ele primeiro dirá que o arquivo arquivo-
ext2 não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar,
responda com y.

O sistema de arquivos EXT2 será criado em /tmp/arquivo-ext2 e estará pronto para ser usado.
38

Monte o arquivo arquivo-ext2 com o comando: mount /tmp/arquivo-ext2 /mnt -o


loop=/dev/loop1. Note que foi usado o parâmetro -o loop para dizer ao comando mount para usar os
recursos de loop do kernel para montar o sistema de arquivos.

Confira se o sistema de arquivos EXT2 em arquivo-ext2 foi realmente montado no sistema de


arquivos digitando df -T. Para detalhes, veja df, Seção 10.3.

Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-ext2. Como foi
criado um sistema de arquivos EXT2 em arquivo-ext2, você poderá usar todos os recursos da
partição EXT2 normal, como permissões de arquivos e diretórios, links simbólicos, etc.

O uso da opção loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo
/arquivo-ext2 e assim permitir sua montagem e uso no sistema.

Você poderá usar apenas -o loop com o comando mount, assim o kernel gerenciará
automaticamente os dispositivos de loop.

Caso faça isto manualmente, lembre-se de usar dispositivos /dev/loop? diferentes para cada
arquivo que montar no sistema. Pois cada um faz referência a um único arquivo.

5.4 Journaling

O sistema de journaling grava qualquer operação que será feita no disco em uma área especial
chamada "journal", assim se acontecer algum problema durante alterações no disco, ele pode voltar
ao estado anterior do arquivo, ou finalizar a operação.

Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior
tolerância a falhas. Após uma falha de energia, por exemplo, o journal é analisado durante a
montagem do sistema de arquivos e todas as operações que estavam sendo feitas no disco são
verificadas. Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas. O retorno
do servidor é praticamente imediato (sem precisar a enorme espera da execução do fsck em
partições maiores que 10Gb), garantindo o rápido retorno dos serviços da máquina.

Outra situação que pode ser evitada é com inconsistências no sistema de arquivos do servidor após a
situação acima, fazendo o servidor ficar em estado 'single user' e esperando pela intervenção do
39

administrador. Este capítulo do guia explica a utilização de journaling usando o sistema de arquivos
ext3 e reiserfs (veja Partição EXT3 (Linux Native), Seção 5.5 para detalhes).
5.5 Partição EXT3 (Linux Native)

O sistema de arquivos ext3 faz parte da nova geração extended file system do Linux, sendo o
padrão atual e tem como seu maior benefício o suporte a journaling e armazenamento eficiente de
arquivos com até 16Gb de tamanho.

O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desempenho
do sistema de arquivos através da gravação seqüencial dos dados na área de metadados e acesso
mhash a sua árvore de diretórios. Mas pode trazer impactos na performance no caso de dispositivos
de memória flash e quando utiliza arquivos para armazenar o sistema de arquivos.

A estrutura da partição ext3 é semelhante a ext2, o journaling é feito em um arquivo


chamado .journal que fica oculto pelo código ext3 na raiz da partição (desta forma ele não poderá
ser apagado, comprometendo o funcionamento do sistema). A estrutura idêntica da partição ext3
com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação
ext2 funcionarão sem problemas.
5.5.1 Criando um sistema de arquivos EXT3 em uma partição

Para criar uma partição ext3, utilize o comando mkfs.ext3 ou o mkfs.ext2 junto com a opção -j. As
opções usadas pelo mkfs.ext3 são idênticas a do mkfs.ext2 (documentado em Criando um sistema
de arquivos EXT2 em uma partição, Seção 5.3.1). A única vantagem desta ferramenta comparada ao
mkfs.ext2 é que a opção -j é automaticamente adicionada a linha de comando para criar um sistema
de arquivos com journal. Se você é daqueles que querem ter um controle maior sobre o tamanho do
arquivo de journal, use a opção -J [tam] (onde tamanho é o tamanho em Megabytes).

Quando uma partição ext3 é criada, o arquivo .journal é criado no raíz da partição, sendo usado para
gravar os metadados das transações de journaling. A estrutura da partição ext2 não difere em nada
da ext3, a não ser este arquivo e a opção "has_journal" que é passada a partição.

Por exemplo, para criar uma partição ext3 em /dev/sda1:

mkfs.ext3 /dev/sda1

ou
40

mkfs.ext2 -j /dev/sda1

Basta agora montar a partição com o comando mount /dev/sda1 /teste -t ext3 (para montar a
partição em /teste. Após isto, modifique o /etc/fstab para montar a partição como ext3 quando o
Linux for iniciado. Para mais detalhes veja Montando (acessando) uma partição de disco, Seção
5.13. ). Caso o suporte a ext3 tenha sido compilado no kernel, ele tentará detectar e montar a
partição como ext3, caso contrário, ele usará ext2.

Sua partição agora está montada como ext3, para conferir digite: df -T.

OBS: Quando criar um sistema de arquivos ext3 em uma partição raíz (/), tenha certeza de incluir o
suporte a ext3 embutido no kernel, caso contrário a partição será montada como ext2.
5.5.2 Criando um sistema de arquivos EXT3 em um arquivo

As instruções para criar um sistema de arquivos ext3 em um arquivo não difere muito das instruções
de Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2, apenas utilize a opção -j ou
-J [tamanho_em_mb] (como explicado em Criando um sistema de arquivos EXT3 em uma partição,
Seção 5.5.1).
5.5.3 Fazendo a conversão do sistema de arquivos EXT2 para EXT3

Se você já possui um uma partição ext2 e deseja converte-la para ext3 isto poderá ser feito
facilmente, de forma segura (sem qualquer risco de perda de dados) e você poderá voltar para o
sistema ext2 caso deseje (veja Convertendo de EXT3 para EXT2, Seção 5.5.4).

Primeiro, execute o comando tune2fs na partição que deseja converter com a opção -j ou -J
[tamanho_journal] para adicionar o suporte a Journaling na partição. Este comando poderá ser
executado com segurança em uma partição ext2 montada, após converter remontar a partição
usando os comandos umount /particao e mount /particao.

Após a conversão para ext3 é desnecessária a checagem periódica do sistema de arquivos (que por
padrão é após 20 montagens e a cada 30 dias). Você pode desativar a checagem após o número
máximo de montagens com a opção -c [num_vezes], e o número de dias máximos antes de verificar
novamente com a opção -i [num_dias] (o uso de 0 desativa). Por exemplo:
41

tune2fs -c 0 -i 90 /dev/sda2

Desativa a checagem após número máximo de montagens (-c 0) e diz para a partição ser verificada
a cada 90 dias (-i 90).

O último passo é modificar o /etc/fstab para que a partição seja montada como ext3 na inicialização
e depois desmontar (umount /dev/sda2 e remonta-la (mount /dev/sda2) para usar o suporte ext3.
Confira se ela está usando ext3 usando o comando df -T.

OBS: Caso a partição convertida para ext3 seja a raíz (/), tenha certeza de incluir o suporte a ext3
embutido no kernel, caso contrário, a partição será montada como ext2.
5.5.4 Convertendo de EXT3 para EXT2

Remover o suporte a ext3 de uma partição é simples, rápido e seguro. Execute os seguintes passos:

Execute o comando tune2fs -O^has_journal /dev/sdxx na partição que deseja remover o Journal.
Este comando poderá ser executado em uma partição montada.

Modifique o /etc/fstab e altere a partição para ext2.

Desmonte e monte novamente a partição com os comandos: umount /dev/hdxx e mount /dev/sdxx.

Pronto! a partição agora é novamente uma partição ext2 normal, confira digitando df -T.

Pronto, o suporte a ext3 foi removido do seu sistema e agora poderá usar a partição como ext2
normalmente (confira digitando df -T).
5.5.5 Nomeando uma partição de disco ext2/ext3

O comando e2label é usado para esta função.

e2label [dispositivo] [nome]


42

Onde:

dispositivo

Partição que terá o nome modificado


nome

Nome que será dado a partição (máximo de 16 caracteres). Caso seja usado um nome de volume
com espaços, ele deverá ser colocado entre "aspas".

Se não for especificado um nome, o nome atual da partição será mostrado. O nome da partição
também pode ser visualizado através do comando dumpe2fs (veja dumpe2fs, Seção 5.5.7).

Exemplo: e2label /dev/sda1 FocaLinux, e2label /dev/sda1 "Foca Linux"


5.5.6 Criando o diretório especial lost+found

O utilitário mklost+found cria o diretório especial lost+found no diretório atual. O diretório


lost+found é criado automaticamente após a formatação da partição com o mkfs.ext2, a função
deste diretório é pré-alocar os blocos de arquivos/diretório durante a execução do programa
fsck.ext2 na recuperação de um sistema de arquivos (veja Checagem dos sistemas de arquivos,
Seção 26.1). Isto garante que os blocos de disco não precisarão ser diretamente alocados durante a
checagem.

mklost+found

OBS: Este comando só funciona em sistemas de arquivos ext2/3/4

Exemplo: cd /tmp;mklost+found;ls -a
5.5.7 dumpe2fs

Mostra detalhes sobre uma partição Linux.

dumpe2fs [opções] [partição]


43

Onde:

partição

Identificação da partição que será usada.


opções
-b

Mostra somente os blocos marcado como defeituosos no sistema de arquivos especificado.

Este comando lista diversas opções úteis do sistema de arquivos como o tipo do sistema de
arquivos, características especiais, número de inodos, blocos livres, tamanho do bloco, intervalo
entre checagens automáticas, etc.

Exemplo: dumpe2fs /dev/sda1, dumpe2fs -b /dev/sda1


5.5.8 Partição EXT2 ou Arquivo?

Criar uma partição EXT2 ou um arquivo usando o loop? Abaixo estão algumas considerações:

A partição EXT2 é o método recomendado para a instalação do GNU/Linux.

O desempenho da partição EXT2 é bem melhor se comparado ao arquivo porque é acessada


diretamente pelo Kernel (SO).

O arquivo EXT2 é útil para guardarmos dados confidenciais em disquetes ou em qualquer outro
lugar no sistema. Você pode perfeitamente gravar seus arquivos confidenciais em um arquivo
chamado libBlaBlaBla-2.0 no diretório /lib e ninguém nunca suspeitará deste arquivo (acho que
não...). Também é possível criptografa-lo para que mesmo alguém descobrindo que aquilo não é
uma lib, não poder abri-lo a não ser que tenha a senha (isto é coberto no documento Loopback-
encripted-filesystem.HOWTO).
44

O uso do arquivo EXT2 é útil quando você está perdendo espaço na sua partição EXT2 e não
quer re-particionar seu disco pois teria que ser feita uma re-instalação completa e tem muito espaço
em um partição de outro SO (como o Windows).

Você poderia facilmente copiar o conteúdo de /var, por exemplo, para o arquivo EXT2 ext2-l
criado no diretório Raíz do Windows, apagar o conteúdo de /var (liberando muito espaço em disco)
e então montar ext2-l como /var. A partir de agora, tudo o que for gravado em /var será na realidade
gravado no arquivo ext2-l.

Para o sistema acessar o arquivo, deve passar pelo sistema de arquivos loop e FAT32, isto causa
um desempenho menor.

5.6 Sistema de arquivos reiserfs

Este é um sistema de arquivos alternativo ao ext2/3/4 que também possui suporte a journaling.
Entre suas principais características, estão que ele possui tamanho de blocos variáveis, suporte a
arquivos maiores que 2 Gigabytes e o acesso mhash a árvore de diretórios é um pouco mais rápida
que o ext3.

Para utilizar reiserfs, tenha certeza que seu kernel possui o suporta habilitado (na seção File
Systems) e instale o pacote reiserfsprogs que contém utilitários para formatar, verificar este tipo de
partição.
5.6.1 Criando um sistema de arquivos reiserfs em uma partição

Para criar uma partição reiserfs, primeiro instale o pacote reiserfsprogs (apt-get install
reiserfsprogs).

Para criar uma partição reiserfs, primeiro crie uma partição ext2 normal, e então use o comando:

mkreiserfs /dev/sda?

Onde a "?" em sda? significa o número da partição que será formatada com o sistema de arquivos
reiserfs. A identificação da partição é mostrada durante o particionamento do disco, anote se for o
caso. sda é o primeiro disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE são
45

identificados por hda?, hdb?, etc. Para detalhes sobre a identificação de discos, veja Identificação de
discos e partições em sistemas Linux, Seção 5.12.

Algumas opções são úteis ao mkreiserfs:

-s [num] - Especifica o tamanho do arquivo de journal em blocos. O valor mínimo é 513 e o


máximo 32749 Kb. O valor padrão é 8193.

-l [NOME] - Coloca um nome (label) no sistema de arquivos.

-f - Força a execução do mkreiserfs.

-d - Ativa a depuração durante a execução do mkreiserfs.

Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t reiserfs

Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13.

Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando
/dev/sda, /dev/sdb, etc. usando a opção -f EVITE FAZER ISSO! Como não estará criando uma
partição, o disco estará preparado para uso de maneira incorreta, você não poderá apagar o sistema
de arquivos completamente do disco caso precise (lembre-se que você não criou uma partição), e a
partição possui uma assinatura apropriada que identifica o sistema de arquivos.
5.6.2 Criando um sistema de arquivos reiserfs em um arquivo

O sistema de arquivos reiserfs também poderá ser criado em um arquivo, usando os mesmos
benefícios descritos em Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2. Para
fazer isso execute os seguintes passos em seqüência:

Use o comando dd if=/dev/zero of=/tmp/arquivo-reiserfs bs=1024 count=33000 para criar um


arquivo arquivo-reiserfs vazio de 33Mb de tamanho em /tmp. Você pode modificar os parâmetros de
of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de
count. Note que o tamanho mínimo do arquivo deve ser de 32Mb, devido aos requerimentos do
reiserfs.
46

Formate o arquivo com mkreiserfs -f /tmp/arquivo-reiserfs. Ele primeiro dirá que o arquivo
arquivo-reiserfs não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve
continuar, responda com y.

O sistema de arquivos ReiserFS será criado em /tmp/arquivo-reiserfs e estará pronto para ser
usado.

Monte o arquivo arquivo-reiserfs com o comando: mount /tmp/arquivo-reiserfs /mnt -t reiserfs -o


loop=/dev/loop1. Note que foi usado o parâmetro -o loop para dizer ao comando mount para usar os
recursos de loop do kernel para montar o sistema de arquivos. O parâmetro -t reiserfs poderá ser
omitido, se desejar.

Confira se o sistema de arquivos ReiserFS em arquivo-reiserfs foi realmente montado no sistema


de arquivos digitando df -T. Para detalhes, veja df, Seção 10.3.

Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-reiserfs. Você
poderá usar todos os recursos de um sistema de arquivos reiserfs como permissões de arquivos e
diretórios, links simbólicos, etc.

O uso da opção loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo
/arquivo-reiserfs e assim permitir sua montagem e uso no sistema.

Você poderá usar apenas -o loop com o comando mount, assim o kernel gerenciará
automaticamente os dispositivos de loop.

Caso faça isto manualmente, lembre-se de usar dispositivos /dev/loop? diferentes para cada
arquivo que montar no sistema. Pois cada um faz referência a um único arquivo.

5.7 Partição Linux Swap (Memória Virtual)

Este tipo de partição é usado para oferecer o suporte a memória virtual ao GNU/Linux em adição a
memória RAM instalada no sistema. Este tipo de partição é identificado pelo tipo 82 nos programas
de particionamento de disco para Linux. Para detalhes de como criar uma partição Linux Swap veja
Criando sistema de arquivos Swap em uma partição, Seção 5.7.1.
47

Somente os dados na memória RAM são processados pelo processador, por ser mais rápida. Desta
forma quando você está executando um programa e a memória RAM começa a encher, o
GNU/Linux move automaticamente os dados que não estão sendo usados para a partição Swap e
libera a memória RAM para a continuar carregando os dados necessários pelo. Quando os dados
movidos para a partição Swap são solicitados, o GNU/Linux move os dados da partição Swap para
a Memória. Por este motivo a partição Swap também é chamada de Troca ou memória virtual.

A partição swap é otimizada para permitir alta velocidade para mover dados da memória RAM para
ela e vice versa. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao
invés de uma partição (veja Criando um sistema de arquivos Swap em um arquivo, Seção 5.7.2).
5.7.1 Criando sistema de arquivos Swap em uma partição

O programa usado para formatar uma partição Swap é o mkswap. Seu uso é simples:

mkswap /dev/sda?

Novamente veja Identificação de discos e partições em sistemas Linux, Seção 5.12 caso não souber
identificar seus discos e partições. O nome do dispositivo da partição Swap pode ser visualizado
através de seu programa de particionamento, você pode usar o comando fdisk -l /dev/sda para listar
as partições no primeiro disco rígido e assim verificar qual dispositivo corresponde a partição Swap.

A opção -c também pode ser usada com o mkswap para checar se existem agrupamentos
danificados na partição. A opção -v1 permite a criação da swap usando mais de 128Mb (esta opção
é a padrão).

Com a partição Swap formatada, use o comando: swapon /dev/sda? para ativar a partição Swap
(lembre-se de substituir ? pelo número de sua partição Swap).

Observações:

Versões antigas do kernel do GNU/Linux 2.0.xx e anteriores somente suportavam partições Swap
de até 128MB. Nos novos kernels foi introduzida uma nova versão da swap. Para converter a swap
antiga para uma nova versão reformate-a usando mkswap -v1 /dev/sda? (onde /dev/sda? especifica
sua partição swap, obtida com o fdisk -l /dev/sda).
48

Se utilizar mais que 1 partição Swap, pode ser útil o uso da opção -p NUM que especifica a
prioridade em que a partição Swap será usada. Pode ser usado um valor de prioridade entre 0 e
32767, partições com número maior serão usadas primeiro, sendo que na montagem automática
através de "mount -a" podem ser designados números negativos.

Procure usar o número maior para partições mais rápidas (elas serão acessadas primeiro) e números
maiores para partições mais lentas. Caso precise desativar a partição Swap, use o comando: swapoff
/dev/sda?.
5.7.2 Criando um sistema de arquivos Swap em um arquivo

Também é possível criar um arquivo que poderá ser usado como memória virtual. Veja passo a
passo como fazer isso:

Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=64000 para criar um arquivo


chamado troca vazio de 64Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para
escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count.

Execute mkswap /tmp/troca para formatar o arquivo. Após concluir este passo, o sistema de
arquivos Swap estará criado e pronto para ser usado.

Digite sync para sincronizar os buffers para o disco, assim você não terá problemas em um
servidor com muito I/O.

Ative o arquivo de troca com o comando swapon /tmp/troca.

Confira se o tamanho da memória virtual foi modificado digitando cat /proc/meminfo ou free.

Observações:

Podem ser usadas partições de troca e arquivos de troca juntos, sem problemas.

Caso seu sistema já tenha uma partição de Swap, é recomendável deixar o acesso ao arquivo
Swap com uma prioridade menor (usando a opção -p NUM com o comando swapon).
49

5.7.3 Partição Swap ou Arquivo?

Criar uma partição de Troca ou um arquivo de troca? Abaixo algumas vantagens e desvantagens:

A partição Swap é mais rápida que o arquivo Swap pois é acessada diretamente pelo Kernel. Se o
seu computador tem pouca memória (menos que 512Mb) ou você tem certeza que o sistema recorre
freqüentemente a memória virtual para executar seus programas, é recomendável usar uma partição
Swap.

O arquivo de troca permite que você crie somente uma partição Linux Native e crie o arquivo de
troca na partição EXT2.

Você pode alterar o tamanho do arquivo de troca facilmente apagando e criando um novo arquivo
como descrito em Criando um sistema de arquivos Swap em um arquivo, Seção 5.7.2.

É possível criar um arquivo de troca em outros tipos de partições como FAT16, FAT32, NTFS,
etc.

O arquivo de troca estará disponível somente após o sistema de arquivos que o armazena (ext2,
fat32, etc) estar montado. Isto é um problema para sistemas com pouca memória que dependem do
arquivo de troca desde sua inicialização.

5.8 O sistema de arquivos /proc

É o sistema de arquivos do Kernel do GNU/Linux. Ele oferece um método de ler, gravar e


modificar dinamicamente os parâmetros do kernel, muito útil para pessoas que gostam de entender
como as coisas funcionam (como eu) e programas de configuração. A modificação dos arquivos do
diretório /proc é o método mais usado para modificar a configuração do sistema e muitos programas
também dependem deste diretório para funcionar.

Nele você tem todo o controle do que o seus sistema operacional está fazendo, a configuração dos
hardwares, interrupções, sistema de arquivos montado, execução de programas, memória do
sistema, rede, etc.
50

Agora entre no diretório /proc digite ls e veja a quantidade de arquivos e diretórios que ele possui,
dê uma passeada por eles. Abaixo a descrição de alguns deles (todos podem ser visualizados pelo
comando cat):

Diretórios com números - Estes identificam os parâmetros de um processo em execução. Por


exemplo, se o PID (identificação do processo) do inetd for 115, você pode entrar no diretório 115 e
verificar as opções usadas para execução deste programa através de cada arquivos existente dentro
do diretório. Alguns são:

cmdline - O que foi digitado para iniciar o processo (pode também ter sido iniciado através de
um programa ou pelo kernel).

environ - Variáveis de Ambiente existentes no momento da execução do processo.

status - Dados sobre a execução do Processo (PID, status da execução do programa, memória
consumida, memória executável, UID, GID, etc).

apm - Dados sobre o gerenciamento de energia

cmdline - Linha de comando usada para inicializar o Kernel GNU/Linux. Os parâmetros são
passados através do programa de inicialização, como o LILO, LOADLIN, SYSLINUX.

cpuinfo - Detalhes sobre a CPU do sistema

devices - Dispositivos usados no sistema

dma - Canais de DMA usados por dispositivos

filesystems - Sistemas de arquivos em uso atualmente

interrupts - Interrupções usadas por dispositivos

ioports - Portas de Entrada e Saída usadas pelos dispositivos do sistema


51

kcore - Este arquivo corresponde a toda a memória RAM em seu sistema. Seu tamanho é
correspondente a memória RAM do micro

kmsg - Permite visualizar mensagens do Kernel (use o comando cat < kmsg para visualiza-lo e
pressione CTRL+C para cancelar

loadavg - Média de Carga do sistema

meminfo - Dados de utilização da memória do sistema

misc - Outras configurações

modules - Módulos atualmente carregados no kernel

mounts - Sistemas de Arquivos atualmente montados

pci - Detalhes sobre dispositivos PCI do sistema

rtc - Relógio em Tempo real do sistema

uptime - Tempo de execução do sistema

version - Versão atual do Kernel, programa usado na compilação, etc

Diretório net - Dados sobre a rede do sistema

Diretório sys - Dados sobre outras áreas do sistema

Diretório scsi - Detalhes sobre dispositivos SCSI do sistema


52

Note que o diretório proc e os arquivos existentes dentro dele estão localizados no diretório raiz (/),
mas não ocupa nenhum espaço no disco rígido.
5.9 LVM - Logical Volume Manager

O lvm (Logical Volume Manager) faz a associação entre dispositivos/partições físicas (incluindo
discos RAID, MO, mass storages diversos, MD, e loop) e dispositivos lógicos. O método
tradicional faz a alocação de todo espaço físico ao tamanho da partição do disco (o método
tradicional), o que traz muito trabalho quando o espaço esgota, cópia de dados ou planejamento de
uso de máquina (que pode mudar com o passar do tempo). O sistema de lvm soluciona os seguintes
problemas:

Uso eficaz de disco, principalmente quando há pouco espaço para criação de partições
independentes.

Permite aumentar/diminuir dinamicamente o tamanho das partições sem reparticionamento do


disco rígido usando o espaço livre em outras partições ou utilizando o espaço livre reservado para o
uso do LVM.

Uma partição de disco é identificada por um nome de volume e não pelo dispositivo. Você pode
então se referir aos volumes como: usuários, vendas, diretoria, etc.

Sua divisão em 3 camadas possibilita a adição/remoção de mais discos de um conjunto caso seja
necessário mais espaço em volumes, etc.

Permite selecionar o tamanho do cluster de armazenamento e a forma que eles são acessados
entre os discos, possibilitando garantir a escolha da melhor opção dependendo da forma que os
dados serão manipulados pelo servidor.

Permite snapshots dos volumes do disco rígido.

As 3 camadas do LVM são agrupadas da seguinte forma:

PV (Phisical Volume) - Corresponde a todo o disco rígido/partição ou dispositivo de bloco que


será adicionado ao LVM. Os aplicativos que manipulam o volume físico, começam com as letras
53

pv*. O espaço disponível no PV é dividido em PE (Phisical Extends, ou extensões físicas). O valor


padrão do PE é de 4MB, possibilitando a criação de um VG de 256Gb.

Por exemplo: /dev/hda1

VG (Volume Group) - Corresponde ao grupo de volumes físicos que fazem parte do LVM. Do
grupo de volume são alocados os espaços para criação dos volumes lógicos. Os aplicativos que
manipulam o o grupo de volume, começam com as letras vg*.

Por exemplo: /dev/lvmdisk0 LV (Logical Volume) - Corresponde a partição lógica criada pelo
LVM para gravação de dados. ao invés de ser identificada por nomes de dispositivos, podem ser
usados nomes comuns para se referir as partições (tmp,usr,etc.). O Volume lógico é a área onde o
sistema de arquivo é criado para gravação de dados, seria equivalente a partição em um sistema
SEM LVM só que lógica ao invés de física. O volume lógico tem seu espaço dividido em LE
(Logical Extends, ou extensões lógicas) que correspondem aos PE's alocados.

Exemplos: /dev/lvmdisk/usr, /dev/lvmdisk/tmp, etc.

5.9.1 Representação gráfica do LVM

Desenvolvi este desenho para representar a idéia de organização de um sistema LVM para o guia
Foca GNU/Linux e apresentar a descrição prática da coisa:

+------[ Grupo de Volume (VG) - lvmdsk ]------+


| +--[ PV - hda1 ]---+ +--[ PV - hdb1 ]--+ |
| | PE PE PE PE PE PE| | PE PE PE PE PE | |
| +------------------+ +-----------------+ |
| | | | | |
| | | +-----------------+ | |
| | +----------------+ | |
| | | | | |
| +-[ LV - var ]-+ +-[ LV - home ]-+ |
| | LE LE LE LE | | LE LE LE LE | |
54

| +--------------+ +---------------+ |
+---------------------------------------------+

O gráfico acima representa a seguinte situação:

Nós temos dois volumes físicos representados por hda1 e hdb1. Cada um desses volumes físicos
tem um Phisical Extend (PE) de 4M (o padrão).

Estes dois volumes físicos acima representam o espaço total do grupo de volume lvmdisk em
/dev/lvmdisk.

Do grupo de volume lvmdisk são criados dois volumes lógicos chamados var e home, estando
disponíveis para particionamento através de /dev/lvmdisk/var e /var/lvmdisk/home.

Na prática, o espaço do volume lógico é definido alocando-se alguns Phisical Extends (PE) dos
volumes físicos como logical extends (LE) dos volumes lógicos. Desta forma, o tamanho de todos
os PEs e LEs existentes dentro de um mesmo grupo de volume devem ser iguais.
5.9.2 Performance do LVM

Um sistema com LVM tem sua performance um pouco reduzida quanto ao acesso a disco, devido as
camadas adicionais de acesso aos dados, sendo afetadas operações em caracteres e inteligentes de
acesso a dados.

Entretanto, a performance de leitura/gravação de blocos é melhorada consideravelmente após a


adoção do LVM. O LVM também garante que o sistema não mostre sintomas de paradas durante o
esvaziamento de cache de disco, mantendo sempre uma certa constância na transferência de dados
mesmo em operações pesadas de I/O no disco. Depende de você avaliar estes pontos e considerar
sua adoção.
5.9.3 Instalando LVM em seu sistema

Nesta seção não tenho a intenção de cobrir todos os detalhes técnicos da implantação do LVM, a
idéia aqui é fornecer uma referência básica e prática para uso em qualquer sistema normal
(desconsiderando usos críticos). A idéia aqui é mostrar de forma prática como implantar LVM em
sua máquina e preparar seu uso nos discos.
55

Antes de começar, retire QUALQUER CD que estiver inserido na unidade de CD-ROM, pois eles
podem causar erro no pvscan, pvdisplay, etc.

No particionamento, defina as partições do tipo 8E (Linux LVM). A partição Linux LVM é


exatamente igual a Linux Native (82), a única vantagem é que o LVM utilizará auto detecção para
saber quais partições ele deve utilizar no pvscan.

Instale o pacote lvm2 e uma imagem de kernel 2.4 ou 2.6 que tenha suporte a LVM, ou compile seu
próprio kernel (caso goste de máquinas turbinadas :-)

Execute o pvscan para detectar as partições marcadas como LVM e criar sua configuração em
/etc/lvmtab.d.

OBS: É normal o sistema procurar dispositivos de CD-ROM durante a execução do pvscan, apenas
não deixe um CD na unidade para evitar grandes sustos se estiver desatento com os passos :-)

Rode o pvcreate no disco ou partição para dizer que ela será um volume físico do LVM: pvcreate
/dev/sda1 ou pvcreate /dev/sda

Em caso de dúvida sobre qual é a partição LVM, digite: fdisk -l /dev/sda (supondo que /dev/sda é o
disco rígido que está configurando o LVM).

Rode o pvdisplay /dev/hda1 para verificar se o volume físico foi criado. Recomendo que deixe a
partição raíz (/) de fora do LVM para não ter futuros problemas com a manutenção do seu sistema, a
menos que tenha muitas opções de inicialização com suporte a LVM em mãos :-)

Crie o grupo de volume na partição vgcreate lvmdisk /dev/sda1 /dev/sdb7. Note que partições de
discos diferentes podem fazer parte de um mesmo grupo de volume (VG) do LVM. Caso use o
devfs ou em algumas versões do udev, será preciso usar o caminho completo do dispositivo ao invés
do link: vgcreate lvmdisk /dev/ide/host0/bus0/target0/lun0/part1

O valor padrão do "Phisical Extend" é de 4MB mas pode ser alterado pelo parâmetro "-s tamanho",
assim o tamanho máximo do grupo de volume será de 256GB (4MB * 64.000 extends que são
suportados por volume lógico). Os valores do Phisical Extend (PE) pode ser de 8k a 16GB. Não é
possível modificar o tamanho do PE após ele ser definido.
56

Verifique o grupo de volume (VG) recém criado com o comando: vgdisplay ou vgdisplay /dev/sda7.
Atente para a linha "Free PE / tamanho", que indica o espaço livre restante para criar os volumes
lógicos (LV).

Crie o volume lógico (LV) com o comando: lvcreate -L1500 -ntmp lvmdisk Que vai criar uma
partição LVM de 1500MB (1,5GB) com o nome tmp (acessível por /var/lvmdisk/tmp) dentro do
grupo lvmdisk. Você deverá fazer isso com as outra partições.

Agora resta criar um sistema de arquivos (ext3, reiserfs, xfs, jfs, etc) como faria com qualquer
partição física normal:

mkfs.ext3 /dev/lvmdisk/tmp ou mkfs.reiserfs /dev/lvmdisk/tmp

OBS: Caso deseje montar automaticamente o volume LVM, coloque o caminho completo do LVM
ao invés do volume físico no /etc/fstab: /dev/lvmdisk/tmp.
5.9.4 Aumentando o tamanho de um volume lógico

O processo para aumentar o tamanho do volume lógico consiste em primeiro aumentar o tamanho
do VG com o lvextend e depois ajustar o tamanho do sistema de arquivos:

# Aumenta o espaço do volume lógico tmp para 1G


lvextend -L1G /dev/lvmdisk/tmp

# Aumenta em 200MB o espaço no volume lógico tmp


lvextend -L+200M /dev/lvmdisk/tmp

As unidades Kk,Mm,Gg,Tt podem ser usadas para especificar o espaço. Após modificar o volume
lógico, será preciso aumentar o tamanho do sistema de arquivos para ser exatamente igual ao
tamanho do LV. Isto depende do seu sistema de arquivos:

ext2/3
57

resize2fs /dev/lvmdisk/tmp

O ext2/3 ainda vem com o utilitário e2fsadm que executa os dois comandos (lvextend e resize2fs)
de uma só vez: e2fsadm -L+1G /dev/lvmdisk/tmp

OBS: Você deverá desmontar o sistema de arquivos antes de alterar o tamanho de um sistema de
arquivos ext2 ou ext3. Em kernels da serie 2.6.17 e superiores, a alteração pode ser feita on-line
(devido ao patch ext2online incorporado ao kernel).
reiserfs

resize_reiserfs -f /dev/lvmdisk/tmp

O tamanho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar
seu servidor para esta operação.
xfs

xfs_growfs /tmp

Note que deve ser especificado o ponto de montagem ao invés do dispositivo. O sistema de
arquivos deverá ser montado antes de ser modificado e incluido no /etc/fstab.

5.9.5 Diminuindo um volume lógico

Para diminuir o tamanho de um volume lógico, certifique-se de ter calculado o espaço corretamente
para acomodar todos os dados que já existem na partição. A diferença para o processo de aumentar
o LV é que primeiramente o sistema de arquivos é reduzido primeiro e depois o LV (pois o LV que
acomoda o sistema de arquivos):

ext2/3/4

resize2fs /dev/lvmdisk/tmp 4G e depois lvreduce -L-1G /dev/lvmdisk/tmp


58

Podem ser usados K, M ou G para especificar o novo tamanho. Caso esteja usando um kernel
2.6.17 ou superior, o tamanho poderá ser ajustado com o sistema de arquivos on-line (sem
desmontar).
reiserfs

resize_reiserfs -s-1G /dev/lvmdisk/tmp e depois lvreduce -L-1G /dev/lvmdisk/tmp

O tamanho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar
seu servidor para a modificação.
xfs

Não é possível diminuir o tamanho de um sistema de arquivos XFS em sua versão atual
(12/2006).

5.10 Formatando Pen-drives/Disquetes

As subseções seguintes explicarão maneiras de formatar seu pen-drive, memória flash, e outras
tecnologias (incluindo disquetes) para serem usados no GNU/Linux e DOS/Windows.
5.10.1 Formatando pen-drives para serem usados no Linux

Para formatar pen-drives para serem usados no GNU/Linux use o comando:

mkfs.ext2 [-c] [/dev/sde1]

Em alguns sistemas você deve usar mke2fs no lugar de mkfs.ext2. A opção -c faz com que o
mkfs.ext2 procure por blocos danificados no pen-drive. Caso deseje formatar um disquete,
especifique o dispositivo /dev/fd0 ao inves de /dev/sdb1.

Note que o nome de dispositivo que é conectado varia de acordo com o sistema e quantidade de
discos rígidos que sua máquina possui portanto tenha ATENCÃO para não formatar o dispositivo
incorreto (que pode ser justamente seu disco disco rígido principal). Para maior segurança, ao
identificar o pen-drive, digite dmesg ao conectar o pen-drive para visualizar o dispositivo correto ou
fique atento as mensagens do console que mostrará o dispositivo que foi associado ao pen-drive.
59

OBS: Este comando cria um sistema de arquivos ext2 no pen-drive e permite usar características
como permissões de acesso e outras. Isto também faz com que o pen-drive NÃO possa ser lido pelo
DOS/Windows. Para formatar um pen-drive no GNU/Linux usando o FAT16 ou FAT32 (compatível
com o DOS/Windows) veja próxima seção.

Exemplo: mkfs.ext2 -c /dev/sde1


5.10.2 Formatando pen-drives compatíveis com o Windows

A formatação de pen-drives para serem usados no Windows é feita usando o comando mkfs.msdos
que é geralmente incluído no pacote dosfstools. O mkfs.msdos permite tanto a criação de sistemas
de arquivos FAT16 ou FAT32.

mkfs.msdos [opções] [dispositivo]

dispositivo

Pen-drive que será formatado. Normalmente /dev/sdb1 (dependendo do dispositivo detectado via
comando dmesg).
opções
-F [num]

Especifica o tipo de FAT que será usado na formatação. Podem ser usados os valores 12 (para
formatação usando FAT12, limitado a 12MB), 16 (para formatação usando FAT16, limitado a 2Gb)
e 32 (para formatação FAT32, limitado a 128Gb).
-n [nome]

Atribui o [nome] de volume ao dispositivo.


-c

Faz uma pesquisa por bad blocks antes da criação do sistema de arquivos no dispositivo. Os
setores defeituosos encontrados serão automaticamente marcados para não serem utilizadas.
-m [arquivo_mensagem]
60

Especifica o arquivo que contém a mensagem que será exibida ao usuário caso o disco não seja
inicializável. A mensagem não pode exceder 418 bytes.

Note que não se deve montar o pen-driv / disquete para formata-lo.

Segue abaixo exemplos de como formatar seu pen-drive mkfs.msdos:

mkfs.msdos /dev/sdc1 - Formata o pen-drive no terceiro dispositivo SCSI Genérico, como FAT32
e usando os valores padrões.

mkfs.msdos -F 16 /dev/sdc1 - Faz a mesma coisa que o acima, mas formata o pen-drive como
FAT16.

mkfs.msdos -n teste -F 16 /dev/sdc1 - Formata o pen-drive no terceiro dispositivo SCSI genérico,


como FAT16 e cria o nome de volume teste.

5.10.3 Programas de Formatação Gráficos

Além de programas de formatação em modo texto, existem outros para ambiente gráfico (X11) que
permitem fazer a mesma tarefa.

Entre os diversos programas destaco o gfloppy que além de permitir selecionar se o disquete será
formatado para o GNU/Linux (ext2), DOS (FAT12) e permite selecionar a capacidade e formatação
rápida do disco.
5.11 Pontos de Montagem

O GNU/Linux acessa as partições existente em seus discos rígidos e disquetes através de diretórios.
Os diretórios que são usados para acessar (montar) partições são chamados de Pontos de
Montagem. Para detalhes sobre montagem de partições, veja Montando (acessando) uma partição
de disco, Seção 5.13.

No DOS cada letra de unidade (C:, D:, E:) identifica uma partição de disco, no GNU/Linux os
pontos de montagem fazem parte da grande estrutura do sistema de arquivos raiz.
61

Existem muitas vantagens de se usar pontos de montagem ao invés de unidade de disco para
identificar partições (método usado no Windows):

Você pode montar a partição no diretório que quiser.

Em caso de um sistema de arquivos cheio, você pode copiar o conteúdo de um grande diretório
para outro sistema de arquivos, apagar o conteúdo do diretório original e montar o disco onde foram
copiados os arquivos naquele local (caso não use um sistema de LVM).

Reduz riscos de corrompimento do sistema operacional. Caso isto aconteça, será necessário
apenas restaurar o backup do sistema de arquivos afetado.

Tempo de boot reduzido quando um sistema de arquivos for verificado por ferramentas como o
fsck.

O uso de pontos de montagem torna o gerenciamento mais flexível.

A adição de novas partições ou substituição de discos rígidos não afeta a ordem de identificação
dos discos e pontos de montagem (como não acontece no DOS).

5.12 Identificação de discos e partições em sistemas Linux

No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, pen-drives,


flash, disquetes,, tela, portas de impressora, modem, etc) são identificados por um arquivo referente
a este dispositivo no diretório /dev.

A identificação de discos rígidos no GNU/Linux é feita da seguinte forma:


62

/dev/sda1
| | ||
| | ||_Número que identifica o número da partição no disco rígido.
| | |
| | |_Letra que identifica o disco rígido (a=primeiro, b=segundo,
etc...).
| |
| |_Sigla que identifica o tipo do disco rígido (sd=SATA/SCSI, sd=IDE,
xt=MFM).
|
|_Diretório onde são armazenados os dispositivos existentes no sistema.

Abaixo algumas identificações de discos e partições em sistemas Linux:

/dev/fd0 - Primeira unidade de disquetes.

/dev/fd1 - Segunda unidade de disquetes.

/dev/sda - Primeiro disco rígido na primeira controladora SATA ou SCSI.

/dev/sda1 - Primeira partição do primeiro disco rígido SATA ou.

/dev/sdb - Segundo disco rígido na primeira controladora SATA ou SCSI.

/dev/sdb1 - Primeira partição do segundo disco rígido SATA ou SCSI.

/dev/sr0 - Primeiro CD-ROM SATA ou SCSI.

/dev/sr1 - Segundo CD-ROM SATA ou SCSI.

/dev/hda - Primeiro disco rígido na primeira controladora IDE do micro (primary master).

/dev/hda1 - Primeira partição do primeiro disco rígido IDE.

/dev/hdb - Segundo disco rígido na primeira controladora IDE do micro (primary slave).
63

/dev/hdb1 - Primeira partição do segundo disco rígido IDE.

/dev/xda - Primeiro disco rígido XT.

/dev/xdb - Segundo disco rígido XT.

As letras de identificação de discos rígidos podem ir além de sdb, por exemplo, caso utilize pen-
drives, memória flash, as unidades serão detectadas como sdc, sdd e assim por diante.

É importante entender como os discos e partições são identificados no sistema, pois será necessário
usar os parâmetros corretos para monta-los.
5.13 Montando (acessando) uma partição de disco

Você pode acessar uma partição de disco usando o comando mount.

mount [dispositivo] [ponto de montagem] [opções]

Onde:

dispositivo

Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /
dev/fd0 (primeira unidade de disquetes).
ponto de montagem

Diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para
montagem de um sistema de arquivo. Normalmente é usado o diretório /mnt para armazenamento
de pontos de montagem temporários.
-t [tipo]

Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de arquivos:
64

ext2 - Para partições GNU/Linux usando o Extended File System versão 2 (a mais comum).

ext3 - Para partições GNU/Linux usando o Extended File System versão 3, com suporte a
journaling.

ext4 - Para partições GNU/Linux usando o Extended File System versão 4, com suporte a
journaling.

reiserfs - Para partições reiserfs, com suporte a journaling.

xfs - Para partições xfs, com suporte a journaling.

vfat - Para partições Windows 95 que utilizam nomes extensos de arquivos e diretórios.

msdos - Para partições DOS normais.

iso9660 - Para montar unidades de CD-ROM. É o padrão.

Na maioria das vezes, caso o sistema de arquivos não seja especificado, o mount utilizará a auto-
detecção e montará a partição usando o sistema de arquivos correto. Para mais detalhes sobre
opções usadas com cada sistema de arquivos, veja a página de manual mount.
-r

Caso for especificada, monta a partição somente para leitura.


-w

Caso for especificada, monta a partição como leitura/gravação. É o padrão.

Existem muitas outras opções que podem ser usadas com o comando mount, mas aqui procurei
somente mostrar o básico para "montar" seus discos e partições no GNU/Linux (para mais opções,
veja a página de manual do mount). Caso você digitar mount sem parâmetros, serão mostrados os
sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em /etc/
65

mtab. A remontagem de partição também é muito útil, especialmente após reparos nos sistema de
arquivos do disco rígido. Veja alguns exemplos de remontagem abaixo.

É necessário permissões de root para montar partições, a não ser que tenha especificado a opção
user no arquivo /etc/fstab (veja fstab, Seção 5.13.1).

Exemplo de Montagem:

Montar uma partição Windows (vfat) de /dev/sda1 em /mnt somente para leitura: mount
/dev/sda1 /mnt -r -t vfat

Montar um pen-drive detectado em /dev/sdc1 em /mnt: mount /dev/sdc1 /mnt -t vfat

Montar uma partição DOS localizada em um segundo disco rígido /dev/hdb1 em /mnt: mount
/dev/hdb1 /mnt -t msdos.

Remontar a partição raíz como somente leitura: mount -o remount,ro /

Remontar a partição raíz como leitura/gravação (a opção -n é usada porque o mount não
conseguirá atualizar o arquivo /etc/mtab devido ao sistema de arquivos / estar montado como
somente leitura atualmente: mount -n -o remount,rw /.

5.13.1 fstab

O arquivo /etc/fstab permite que as partições do sistema sejam montadas facilmente especificando
somente o dispositivo ou o ponto de montagem. Este arquivo contém parâmetros sobre as partições
que são lidos pelo comando mount. Cada linha deste arquivo contém a partição que desejamos
montar, o ponto de montagem, o sistema de arquivos usado pela partição e outras opções. fstab tem
a seguinte forma:

Sistema_de_arquivos Ponto_de_Montagem Tipo Opções dump ordem


/dev/sda1 / ext3 defaults 0 1
/dev/sda2 /boot ext3 defaults 0 2
/dev/sda3 /dos msdos defaults,noauto,rw 0 0
66

/dev/hdg /cdrom iso9660 defaults,noauto 0 0

Onde:

Sistema de Arquivos

Partição que deseja montar.


Ponto de montagem

Diretório do GNU/Linux onde a partição montada será acessada.


Tipo

Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use
ext3, reiserfs, xfs (de acordo com o tipo de partição selecionada durante a formatação), para
partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a
nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.
Opções

Especifica as opções usadas com o sistema de arquivos. Abaixo, algumas opções de montagem
para ext2/3/4 (a lista completa pode ser encontrada na página de manual do mount):

defaults - Utiliza valores padrões de montagem.

noauto - Não monta os sistemas de arquivos durante a inicialização (útil para CD-ROMS e
disquetes).

ro - Monta como somente leitura.

user - Permite que usuários montem o sistema de arquivos (não recomendado por motivos de
segurança).
67

sync é recomendado para uso com discos removíveis (disquetes, zip drives, nfs, etc) para que
os dados sejam gravados imediatamente na unidade (caso não seja usada, você deve usar o comando
sync, Seção 10.22 antes de retirar o disquete da unidade.

dump

Especifica a frequência de backup feita com o programa dump no sistema de arquivos. 0 desativa
o backup.
Ordem

Define a ordem que os sistemas de arquivos serão verificados na inicialização do sistema. Se usar
0, o sistema de arquivos não é verificado. O sistema de arquivos raíz que deverá ser verificado
primeiro é o raíz "/" (a não ser que você tenha um sistema de arquivos de outro tipo que não é
montado dentro do diretório raíz e possui seu suporte embutido no kernel) .

Após configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a
unidade de CD-ROM seja montada. Você deve ter notado que não é necessário especificar o sistema
de arquivos da partição pois o mount verificará se ele já existe no /etc/fstab e caso existir, usará as
opções especificadas neste arquivo. Para maiores detalhes veja as páginas de manual fstab e mount.
5.14 Desmontando uma partição de disco

Utilize o comando umount para desmontar um sistema de arquivos que foi montado com o mount.
Você deve ter permissões de root para desmontar uma partição.

umount [dispositivo/ponto de montagem]

Você pode tanto usar umount /dev/sda1 como umount /mnt para desmontar um sistema de
arquivos /dev/sda1 montado em /mnt.

Observação: O comando umount executa o sync automaticamente no momento da desmontagem,


para garantir que todos os dados ainda em memória RAM sejam salvos.

Guia Foca GNU/Linux


Versão 5.65 - domingo, 05 de setembro de 2010
68

Gleydson Mazioli da Silva gleydson@guiafoca.org

fonte: http://www.guiafoca.org/cgs/guia/intermediario/ch-disc.html

***