Autor Tópico: Como editar partições ext3 sem perder dados.  (Lida 4767 vezes)

Offline Marcopolo

  • Usuário Ubuntu
  • *
  • Mensagens: 705
  • Ubuntu forever, ever!!
    • Ver perfil
Como editar partições ext3 sem perder dados.
« Online: 27 de Dezembro de 2008, 21:53 »
Amigos, encontrei esse tuto traduzido para o português que mostro aqui na íntegra, pois pode ser útil para alguém!

Abs,

Marcopolo.

                   COMO EDITAR PARTIÇÕES ext3 SEM PERDER DADOS
                               (adaptado de http://www.howtoforge.com)
              (autor da matéria original em inglês: Falko Timme <ft@falkotimme.com>)
             (traduzido / adaptado por: Francisco de Assis N. Jr <fisico.fe@gmail.com>)
Recentemente, deletei o Ruindows do meu PC, para utilizar apenas o Ubuntu. Com pressa e raiva
daquele lixo que só dava problemas, acabei formatando as partições NTFS (anteriormente utilizada
pelo XP) para o formato ext3 (formato padrão utilizado pelo Ubuntu Dapper Drake). Pode até ser
uma boa idéia utilizar um hd biparticionado para o XP (uma partição para o sistema e outro para
arquivos), mas com o linux eu não vi vantagem alguma – na verdade, apenas atrapalha. A dúvida
ficou em como editar as partições sem perder o sistema todo (tudo bem fazer backup de arquivos,
mas perder todas as configurações e codecs instalados é um tremendo pé!). Graças à uma dica do
Elton, encontrei esse tutorial e resolvi traduzí-lo para o português – tem sempre alguém com o
mesmo problema...
É um artigo sobre como editar o tamanho de partições ext3 sem perder dados (algo impossível até
onde eu sei, em partições NTFS). Vamos mostrar como reduzir ou extender partições ext3 e como
fundir duas partições em uma (exatamente o meu caso). Portanto, se você acha que o atual
particionamento do seu HD não satisfaz suas necessidades (ou vontades), mãos à obra:
1 Abra um tutorial e digite sudo su, para poder trabalhar como ROOT;
2 Digite o comando df -h para ver as informações sobre o seu HD. o retorno será algo como
Filesystem      Size Used Avail Use% Mounted                  on
/dev/sda1       9.5G 4.1G 4.9G 46%/
varrun          94M 132K 94M 1%                /var/run
varlock         94M 0           94M 0%         /var/lock
udev            10M 52K 10M 1%                 /dev
devshm          94M 0           94M 0%         /dev/shm
lrm             94M 18M 77M 19% /lib/modules/2.6.17-10-generic/volatile
A partição que será editada não pode estar montada durante a operação – obviamente, não há como
você usar o comando unmount na partição em que estão gravados todos os arquivos de sistema,
portanto é bom (na verdade, imprescindível) ter em mãos um CD de instalação do Ubuntu que
usaremos para inicializar e acessar a partição na hora fatal. Agora, se você está editando outra
partição local (que contenha apenas arquivos particulares), deixe quieto (você não precisará do CD).
Porém, é recomendável (altamente recomendável, aliás) que você faça uma cópia de segurança dos
seus arquivos antes de começar a edição. No meu caso, fiz tudo sem perder nenhum dado, mas
derma acontecem assim mesmo.
Vamos editar a partição /dev/sda1 neste artigo. Se a sua partição estiver nomeada de forma
diferente, troque o /dev/sda1 pelo nome correto da sua partição (/dev/hda5, /dev/sdb3, e por aí vai.
ou seja, copiar o tutorial ao pé da letra pode te criar problemas)
3 Reduzindo o tamanho de uma partição ext3
Primeiro, vamos dar uma olhada nos detalhes originais do sistema.
$ df
(a resposta será)
Filesystem      1K-blocks       Used           Available      Use%  Mounted      on
/dev/sda1       9859036         4234908        5123304        46%   /
varrun          95480           132            95348          1%    /var/run
varlock         95480           0              95480          0%    /var/lock
udev            10240           52             10188          1%    /dev
devshm         95480          0              95480          0%      /dev/shm
lrm            95480          17580          77900          19%     /lib/modules/2.6.17-10-
generic/volatile
$ df -B 4k
Filesystem     4K-blocks      Used           Available      Use%    Mounted on
/dev/sda1      2464759        1058727        1280826        46%     /
varrun         23870          33             23837          1%      /var/run
varlock        23870          0              23870          0%      /var/lock
udev           2560           13             2547           1%      /dev
devshm         23870          0              23870          0%      /dev/shm
lrm            23870          4395           19475          19%     /lib/modules/2.6.17-10-
generic/volatile
$ df -h
Filesystem     Size    Used   Avail   Use%   Mounted on
/dev/sda1      9.5G    4.1G   4.9G    46%    /
varrun         94M     132K   94M     1%     /var/run
varlock        94M     0      94M     0%     /var/lock
udev           10M     52K    10M     1%     /dev
devshm         94M     0      94M     0%     /dev/shm
lrm            94M     18M    77M     19%    /lib/modules/2.6.17-10-generic/volatile
$ df -l
Disk /dev/sda:10.7GB,10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units=cylinders of 16065*512=8225280 bytes
Device         Boot    Start  End Blocks Id          System
/dev/sda1*     1       1247   10016496       83      Linux
/dev/sda2      1248    1305   465885         5       Extended
/dev/sda5      1248    1305   465853+82 Linux swap/Solaris
$fdisk -s /dev/sda1
10016496
É uma boa idéia imprimir ou anotar esses resultados em algum lugar para ter à mão durante a edição
(mantive as telas do arquivo original por não ter paciência para redigitar as minhas que anotei).
Agora, dê um boot no seu pc e reinicie pelo CD do Ubuntu (isso se você for editar a partição que
contém o sistema. Caso esteja editando uma partição que contenha somente arquivos, pule essa
parte e mande ver!)
$ shutdown -r now
Após o boot, abra novamente o terminal como ROOT. A partição /dev/sda1 deve estar desmontada,
mas não custa nada se certificar dando um
$ umount /dev/sda1
só para garantir.
Agora mande
$ fsck -n/dev/sda1
o sistema deve te retornar algo como
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
/dev/sda1: clean, 159037/1254176 files, 1095299/2504124 blocks
Esta é a parte controversa: segundo um amigo, não há necessidade de tornar uma partição ext3 em
ext2 para continuar a edição. MAS, como em time que está ganhando não se inventa, coloco aqui
exatamente como fiz (já que deu certo). Para tanto, digite
$ tune2fs -O^has_journal /dev/sda1
O ubuntu deve retornar:
tune2fs 1.38 (30-Jun-2005)
Então mande
$ e2fsck -f/dev/sda1
E esta foi a hora em que eu literalmente gelei: como o sistema demorou um pouco para mostrar
todos os resultados apontados pelo tutorial, já pensei que tudo tivesse ido pelo ralo. Portanto, se
entre o passo 1 e o 2, por exemplo, demorar um pouquinho, mantenha a calma que é assim mesmo,
o terminal irá mostrar:
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 164178/1254176 files (0.6% non-contiguous), 1051617/2504124 blocks
Agora é hora de redimensionar sua partição com o comando resize2fs. O comando resize2fs
redimensiona partições no formato ext2, mas não funciona em partições ext3 (um bom motivo para
termos tornado ext2 a partição ext3 a ser editada). Em nosso exemplo, 4.1GB estão sendo usados
pelo /dev/sda1 (veja a tela de retorno do comando df -h lá em cima), portanto é seguro
redimensioná-la para algo entre 10 e 6 GB (preste atenção que, neste caso, redimensionar a partição
para um tamanho menor que 4.1GB significa perda de dados com toda a certeza do mundo!).
Depois, digite:
$ resize2fs /dev/sda1 6000M
O retorno será:
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/sda1 to 1536000 (4k) blocks.
The filesystem on /dev/sda1 is now 1536000 blocks long.
É importante anotar o número de blocks (1536000) e seu tamanho (4k), porque vamos precisar
dessas informações. Agora, chegou a hora de deletar a partição /dev/sda1 (e vá com fé, que não há o
risco de perda de dados) e criar uma nova e menor (mas ainda grande o suficiente para abrigar todos
os dados que já estão ali gravados). Isso é possível com o comando
$ fdisk /dev/sda
(Sim, é isso mesmo: /dev/sda e não /dev/sda1.) O ubuntu irá mostrar
The number of cylinders for this disk is set to 1305.
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)
Type m to get a list of all commands:
Command (m for help): m
Command         action
a       toggle a bootable flag
b       edit bsd disklabel
c       toggle the dos compatibility flag
d       delete a partition
l       list known partition types
m       print this menu
n       add a new partition
o       create a new empty DOS partition table
p       print the partition table
q       quit without saving changes
s       create a new empty Sun disklabel
t       change a partition's system id
u       change display/entry units
v       verify the partition table
w       write table to disk and exit
x       extra functionality (experts only)
Para deletar a partição 1 (/dev/sda1):
Command (m for help): d
Partition number (1-5): 1
Para criar uma nova partição /dev/sda1, lembre-se que inicialmente se tratava de uma partição
primária, portanto, devemos escolher p e agora ela será novamente nossa partição 1:
Command (m for help):n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 1
Agora vem a parte verdadeiramente crucial, porque o Ubuntu irá lhe perguntar o tamanho desejado
para a nova partição. Não há problema algum quanto ao número do primeiro cilindro, porque ele
será o 1, como visto na tela de retorno do ubuntu lá no comecinho do artigo.
First cylinder (1-1305, default 1): 1
Mas nós não temos um valor de antemão para o último cilindro da nossa nova partição. Graças ao
pingüin, é possível especificar o tamanho em kilobytes (K), e você calcula o tamanho assim:
 - Multiplique a quantidade de blocos da tela de saída do comando resize2fs (1536000) pelo
tamanho de um bloco (4k) e para ter certeza de que o tamanho da partição será grande o suficiente,
adicione entre 3 e 5% ao valor obtido (3% é uma boa margem de segurança, mas se você é do tipo
hiperseguro, some 5%):
1536000 * 4k * 1.03 = 6328320k
Agora, pegue o valor que possui o sinal de + e troque a letra k minúscula por uma letra K
maiúscula:
Last cylinder or +size or +sizeM or +sizeK (1-1247, default 1247): +6328320K
Como nossa partição original /dv/sda1 era a partição “bootável”, devemos tornar bootável também
esta nova partição:
Command (m for help): a
Partition number (1-5): 1
Hora de escrever a nova partição e encerrar o fdisk:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
Reboot agora o sistema, reiniciando pelo Live Cd do Ubuntu novamente. Lembre-se de que isso não
é necessário caso você não esteja editando a partição de inicialização do sistema – daí, basta apenas
reiniciar o sistema. (Sempre é bom lembrar isso...)
$ shutdown -r now
Abra o terminal como ROOT novamente e mande ver:
$ fsck -n /dev/sda1
O sistema deverá retornar
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
/dev/sda1: clean, 159036/765536 files, 1047239/1536000 blocks
Muita calma nessa hora, vamos tornar ext3 nossa partição ext2:
$ tune2fs -j /dev/sda1
tune2fs 1.38 (30-Jun-2005)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
Terminou. Basta dar um boot no sistema e iniciar pelo HD diretamente (caso esteja usando o Live
CD, tire-o do CD-ROM)
$ shutdown -r now
Se você seguiu os passos do tutorial direitinho, o ubuntu irá carregar da mesma forma que carregava
antes de você começar a editar as partições. Vamos dar uma olhada nas informações da nova
partição e comparar com o que obtivemos no início do artigo:
$ df
Filesystem      1K-blocks    Used          Available       Use%   Mounted on
/dev/sda1       6047868      4224140       1639408         73%    /
varrun          95480        132           95348           1%     /var/run
varlock         95480        0             95480           0%     /var/lock
udev            10240        52            10188           1%     /dev
devshm          95480        0             95480           0%     /dev/shm
lrm             95480        17580         77900           19%    /lib/modules/2.6.17-10-
generic/volatile
$ df -B 4k
Filesystem      4K-blocks    Used Available        Use%    Mounted on
/dev/sda1       1511967      1056035       409852          73% /
varrun          23870        33            23837           1%     /var/run
varlock         23870        0             23870           0%     /var/lock
udev            2560         13            2547            1%     /dev
devshm          23870        0             23870           0%     /dev/shm
lrm             23870        4395          19475           19% /lib/modules/2.6.17-10-
generic/volatile
$ df -h
Filesystem      Size  Used   Avail   Use%  Mounted on
/dev/sda1       5.8G  4.1G   1.6G    73%   /
varrun          94M   132K   94M     1%    /var/run
varlock         94M   0      94M     0%    /var/lock
udev            10M   52K    10M     1%    /dev
devshm          94M   0      94M     0%    /dev/shm
lrm             94M   18M    77M     19%   /lib/modules/2.6.17-10-generic/volatile
$ fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track,1305 cylinders
Units = cylinders of 16065*512=8225280 bytes
Device Boot     Start End    Blocks        Id      System
/dev/sda1*      1     789    6337611       83      Linux
/dev/sda2       1248  1305   465885        5       Extended
/dev/sda5       1248  1305   465853        +82     Linux swap / Solaris
$ fdisk -s /dev/sda1
6337611
Espero que tenha ajudado. Vou traduzir a segunda parte do tutorial (que ensina a aumentar o
tamanho de uma partição ext3) e na sequência, a terceira parte (que ensina fundir duas partições
ext3 sem perder dados)
« Última modificação: 27 de Dezembro de 2008, 21:55 por Marcopolo »
Desktop, Intel Core i7, 64 bits, Win10 e Ubuntu 20.04 LTS, SSD 240 GB, 8 GB. s. Vaio 15S 8GB -SSD 240 GB,Ubuntu 20.04, LTS, Mint Cinnamon. Mini PC Blitz Woif com Ubuntu 22.04 LTS e Mint 20.1