
Eu tenho um dd
arquivo de imagem de disco 'ed comigo.
Posso usar uma ferramenta como kpartx
criar um dispositivo mapeador de dispositivos a partir deste arquivo de imagem de disco.
Mas programas de particionamento gostam gparted
e fdisk
não listam meu dispositivo mapeado!
Existe alguma maneira de listar gparted
(ou um programa equivalente - gráfico ou console) meu dispositivo mapeado e suas partições constituintes e informações detalhadas sobre essas partições?
PS: Este é um caso de falta de recurso nessas ferramentas ou é fundamentalmente impossível fornecer esse recurso?
Responder1
É possível, mas não tenho certeza se faz sentido.
As ferramentas de particionamento se preocupam apenas com o dispositivo de disco inteiro, porque leem a tabela de partição diretamente dos setores relevantes do disco. Eles não precisam existir dispositivos por partição. Isso significa que um dispositivo de loop básico feito com losetup
é suficiente e, se uma ferramenta não o detectar, você poderá executá-lo manualmente fdisk /dev/loop0
ou algo assim.
(Se umdisco inteirodevice está em /dev/mapper/
, não é difícil fazer com que essas ferramentas o vejam, embora geralmente envolva a edição de algumas linhas do código-fonte... a execução fdisk /dev/mapper/bleh
geralmente é mais fácil.)
Observe também que os kernels recentes suportam losetup --partscan
o que elimina a necessidade de usar o mapeador de dispositivos para isso.
Responder2
Basta criar um hardlink temporáriodepois de correr kpartx -a ...
:
sudo ln /dev/loop0 /dev/mapper/loop0
E então execute o gparted normalmente (ele funcionará corretamente /dev/mapper/loop0p*
):
sudo gparted /dev/mapper/loop0
Não se esqueça de remover o link quando não for mais necessário.
Responder3
Depois de 3,5 anos, tenho outra solução para isso :)
se você não está preocupado em usar o kpartx e estou certo ao sugerir que seu objetivo é operar partições em uma imagem de disco representada como um arquivo comum, aqui está um fluxo de trabalho alternativo sem kpartx e links simbólicos (é por isso que é postado como uma resposta separada):
sudo losetup --find --show ./somedrive.img
Anexe um dispositivo de loop para todo o arquivo
./somedrive.img
;--find
é pedirlosetup
para procurar dispositivo gratuito automaticamente; e--show
é para imprimir o dispositivo que foi usado. Por exemplo, considere que o dispositivo escolhido é/dev/loop5
.sudo partx --update /dev/loop5
Diga ao kernel do Linux para verificar novamente as partições internas do arquivo
/dev/loop5
. Em caso de sucesso não produzirá nenhum resultado, então verifiquels -al /dev/loop5*
o que aparece.Faça o que precisar, como
sudo gparted /dev/loop5
Neste ponto você deverá ser capaz de operar corretamente
/dev/loop5p*
.sudo partx --delete /dev/loop5
Libere os mapeamentos de partição.
sudo losetup --detach /dev/loop5
Finalmente, solte o dispositivo de loop.
PSSe você é o Proud Owner™ do util-linux
pacote com versão v2.21 ou superior, você pode solicitar o anexo do dispositivo de loop e uma nova varredura da partição de uma só vez: sudo losetup --find --show --partscan ./somedrive.img
e não deve enfrentar o problema com utilitários do tipo gparted.