Redimensionando uma partição em um disco rígido virtual (arquivo com a tabela de partições msdos)

1

Eu tenho um arquivo local no meu disco que contém uma tabela de partições msdos e algumas partições linux. Eu uso isso como um disco bruto virtual com o qemu.

klm@lato:~/images/disk$ parted arch-linux2 p
WARNING: You are not superuser.  Watch out for permissions.
Model:  (file)
Disk /home/klm/images/disk/arch-linux2: 4339MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
1      32,3kB  107MB   107MB   primary  ext2            boot
2      107MB   378MB   271MB   primary  linux-swap(v1)
3      378MB   4100MB  3722MB  primary  ext4
4      4100MB  4331MB  231MB   primary  ext4

Eu quero redimensionar uma partição neste arquivo, e o GParted é normalmente muito fácil de usar para isso. No entanto, quando eu corro

$ gparted arch-linux2

A maioria das minhas partições me avisa:

e2label: No such file or directory while trying to open 
/home/klm/images/disk/arch-linux2. 
Couldn't find valid filesystem superblock.

Por que o gparted não pode editar minhas partições dentro do arquivo?

    
por kristianlm 04.08.2011 / 15:41

1 resposta

1

Tudo bem, kpartx e links simbólicos para o resgate!

Use KPartX para criar blocos de dispositivos virtuais para cada partição:

klm@lato:~/images/disk$ sudo kpartx -a arch-linux2
klm@lato:~/images/disk$ ls /dev/mapper/
control  cryptswap1  loop0p1  loop0p2  loop0p3  loop0p4

Agora você pode apontar seu gparted para suas partições individuais:

klm@lato:~/images/disk$ sudo gparted /dev/mapper/loop0p1

Mas isso não ajuda muito, já que o gparted precisa de toda a tabela de partição para redimensionar uma partição nela. Links simbólicos resolvem isso:

klm@lato:~/images/disk$ ln -s /dev/mapper/loop0p1 arch-linux2p1
klm@lato:~/images/disk$ ln -s /dev/mapper/loop0p2 arch-linux2p2
klm@lato:~/images/disk$ ln -s /dev/mapper/loop0p3 arch-linux2p3
klm@lato:~/images/disk$ ln -s /dev/mapper/loop0p4 arch-linux2p4

Esta é a estrutura que o gparted deseja:

klm@lato:~/images/disk$ ls -l
total 6275112
-rw-r--r-- 1 klm klm  4339007488 2011-07-22 15:47 arch-linux2
lrwxrwxrwx 1 klm klm          19 2011-08-04 15:23 arch-linux2p1 -> /dev/mapper/loop0p1
lrwxrwxrwx 1 klm klm          19 2011-08-04 15:23 arch-linux2p2 -> /dev/mapper/loop0p2
lrwxrwxrwx 1 klm klm          19 2011-08-04 15:23 arch-linux2p3 -> /dev/mapper/loop0p3
lrwxrwxrwx 1 klm klm          19 2011-08-04 15:23 arch-linux2p4 -> /dev/mapper/loop0p4

Agora, corro o gparted normalmente e sem avisos, e posso redimensionar as coisas!

klm@lato:~/images/disk$ sudo gparted arch-linux2
    
por 05.08.2011 / 10:38