você está aqui: Home  → Arquivo de Mensagens

Reparticionando ReiserFS via linha de comando - Parte II

Colaboração: Diniz Fernando Bortolotto Ferreira

Data de Publicação: 17 de Abril de 2006

Reparticionando ReiserFS via linha de comando

Parte II - Dividindo partições ReiserFS

Três razões para usar o ReiserFS:

  • ReiserFS possui journaling.
  • ReiserFS é mais eficiente na utilização de espaço.
  • ReiserFS é baseado em b-trees balanceadas e mais rápidas.

Agora, suponha que você possui uma partição ReiserFS e quer dividi-la em duas. Para complicar, suponha que a partição já possui dados como: sua coleção de mp3, sua monografia de fim de curso, etc.

O quer fazer então?

Use o resize_reiserfs - The resizer tool for the ReiserFS filesystem!

O processo de divisão de partições ReiserFS é, basicamente, o inverso da união de partições (Parte I). Há, no entanto, algumas diferenças que iremos detalhar abaixo.

Antes de mais nada, desmonte a partição que você irá dividir.

  root@darkstar:~# umount -v /mnt/hdb3
  /dev/hdb3 desmontado

Primeiro Passo - Redimensionando a partição existente

Iremos executar novamente o resize_reiserfs, no entanto, como queremos diminuir o tamanho da partição, devemos utilizar a opção -s com o parâmetro -tamanho.

No exemplo abaixo, estamos informando ao resize_reiserfs, que queremos reduzir nossa partição /dev/hdb3 em 1 Gigabyte. Você também pode utilizar M para alteração em Megabytes.

  root@darkstar:~# resize_reiserfs -s -1G /dev/hdb3
  resize_reiserfs 3.6.19 (2003 www.namesys.com)
  
  You are running BETA version of reiserfs shrinker.
  This version is only for testing or VERY CAREFUL use.
  Backup of you data is recommended.
  
  Do you want to continue? [y/N]:y
  0%....20%....40%....60%....80%....100%  Processing the tree:       left 0, 0 /sec
  
  nodes processed (moved):
  int        0 (0),
  leaves     1 (0),
  unfm       129 (0),
  total      130 (0).
  
  check for used blocks in truncated region
  
  ReiserFS report:
  blocksize             4096
  block count           886496 (1148640)
  free blocks           878128 (1140264)
  bitmap block count    28 (36)
  
  Syncing..done
  
  
  resize_reiserfs: Resizing finished successfully.

Reparticionando o HD com o fdisk

Agora iremos reparticionar o HD com o fdisk mas, antes de alterar a tabela de partições, devemos verificar as informações da partição existente.

Digite, conforme abaixo, fdisk -l /dev/hdb.

  root@darkstar:~# fdisk -l /dev/hdb
  
  Disk /dev/hdb: 120.0 GB, 120060444672 bytes
  255 heads, 63 sectors/track, 14596 cylinders
  Units = cilindros of 16065 * 512 = 8225280 bytes
  
  Dispositivo Boot      Start         End      Blocks   Id  System
  /dev/hdb1   *           1        7298    58621185   83  Linux
  /dev/hdb2            7299       14024    54026595   83  Linux
  /dev/hdb3           14025       14596     4594590   83  Linux

Dica 4: Agora, precisamos saber qual o último cilindro da nova partição.

Para isso, podemos executar o seguinte cálculo:

  echo "UltCil-(TamNovaPart/Units)" | bc, onde:
  UltCil = Número do último cilindro da partição a ser redimensionada;
  TamNovaPart = Tamanho da Nova Partição que será criada;
  Units = Valor de Units informado no cabeçalho do comando fdisk -l; e
  bc = Calculadora para linha de comando do Linux.

Assim, temos em nosso exemplo o seguinte:

  root@darkstar:~# echo "14596-((1*2^30)/(16065*512))" | bc
  14466
  
  Obs.: Utilizamos (1*2^30) para representar 1 Gigabyte.
  Bem mais fácil que digitar o número 1073741824, não é? :-)

O valor obtido (14466) corresponde ao novo valor para o último cilindro da partição redimensionada. Anote esse número pois ele será necessário quando estivermos alterando, abaixo, a tabela de partições com o fdisk.

  root@darkstar:~# fdisk /dev/hdb
  
  Comando (m para ajuda): p
  
  Dispositivo Boot      Start         End      Blocks   Id  System
  /dev/hdb1   *           1        7298    58621185   83  Linux
  /dev/hdb2            7299       14024    54026595   83  Linux
  /dev/hdb3           14025       14596     4594590   83  Linux
  
  Comando (m para ajuda): d
  Número da partição (1-4): 3

Com o comando acima excluimos a partição que iremos alterar (/dev/hdb3).

Agora iremos criar as novas partições...

  Comando (m para ajuda): n
  Comando - ação
  e   estendida
  p   partição primária (1-4)
  p
  Número da partição (1-4): 3
  Primeiro cilindro (14025-14596, default 14025):
  Using default value 14025
  Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (14025-14596, default 14596): 14466

Nesse ponto, conforme acima, utilizamos o número do último cilindro 14466 calculado através da fórmula da Dica 4.

Agora podemos criar a última partição utilizando o espaço em disco restante. Para isso basta aceitarmos os valores default informados pelo fdisk.

  Comando (m para ajuda): n
  Comando - ação
  e   estendida
  p   partição primária (1-4)
  p
  Selected partition 4
  Primeiro cilindro (14467-14596, default 14467):
  Using default value 14467
  Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (14467-14596, default 14596):
  Using default value 14596

Como sempre, você pode utilizar o comando p para visualizar a nova tabela de partições antes de efetuar a gravação com o comando w.

  Comando (m para ajuda): w
  A tabela de partições foi alterada!
  
  Chamando ioctl() para reler tabela de partições.
  Sincronizando discos.

Agora podemos montar a partição /dev/hdb3 e verificar se está tudo OK.

  root@darkstar:~# mount -t reiserfs -v /dev/hdb3 /mnt/hdb3
  /dev/hdb3 on /mnt/hdb3 type reiserfs (rw)
  
  root@darkstar:~# df -Th
  Sist. Arq.    Tipo     Tam   Usad Disp  Uso% Montado em
  /dev/hdc1 reiserfs    6,1G  3,3G  2,9G  54% /
  /dev/hdc3 reiserfs    6,1G  3,6G  2,6G  58% /home
  /dev/hdb3 reiserfs    3,4G   33M  3,4G   1% /mnt/hdb3
  
  root@darkstar:~# ls -l /mnt/hdb3
  total 1
  drwxr-xr-x  2 root root 80 2006-03-26 18:29 diretorio3/
  drwxr-xr-x  2 root root 80 2006-03-26 18:29 diretorio4/

Criando o novo filesystem ReiserFs

Agora iremos tratar da nova partição criada.

Inicialmente ela ainda não está com o ReiserFS criado. Para isso utilizamos o comando mkreiserfs conforme abaixo.

  root@darkstar:~# mkreiserfs /dev/hdb4
  mkreiserfs 3.6.19 (2003 www.namesys.com)
  
  ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
  ALL DATA WILL BE LOST ON '/dev/hdb4'!
  Continue (y/n):y
  ...
  
  ReiserFS is successfully created on /dev/hdb4.

Pronto! Sua nova partição está criada e em condições de uso. Basta montá-la com o mount.

  root@darkstar:~# mount -t reiserfs -v /dev/hdb4 /mnt/hdb4
  /dev/hdb4 on /mnt/hdb4 type reiserfs (rw)
  
  root@darkstar:~# df -Th
  Sist. Arq.    Tipo     Tam   Usad Disp  Uso% Montado em
  /dev/hdc1 reiserfs    6,1G  3,3G  2,9G  54% /
  /dev/hdc3 reiserfs    6,1G  3,6G  2,6G  58% /home
  /dev/hdb3 reiserfs    3,4G   33M  3,4G   1% /mnt/hdb3
  /dev/hdb4 reiserfs   1020M   33M  988M   4% /mnt/hdb4


 

 

Veja a relação completa dos artigos de Diniz Fernando Bortolotto Ferreira

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script