Qualquer maneira de fazer ferramentas de particionamento ver dispositivos criados pelo kpartx?

0

Eu tenho um arquivo de imagem de disco dd 'ed comigo.

Posso usar uma ferramenta como kpartx para criar um dispositivo de mapeamento de dispositivo a partir desse arquivo de imagem de disco.

Mas programas de particionamento como gparted e fdisk não listam meu dispositivo mapeado!

Existe alguma maneira de fazer com que gparted (ou um programa equivalente - gráfico ou console) liste meu dispositivo mapeado e suas partições constituintes e informações detalhadas sobre essas partições?

PS: Este é um caso de falta de recursos dessas ferramentas, ou é que fornecer esse recurso não é fundamentalmente possível?

    
por Harry 03.10.2013 / 19:07

3 respostas

2

É possível, mas não tenho certeza se faz sentido.

As ferramentas de particionamento só se preocupam com o dispositivo de disco inteiro, porque lêem a tabela de partição diretamente dos setores de disco relevantes. Eles não precisam de dispositivos por partição para existir. Isso significa que um dispositivo de loop básico feito com losetup é suficiente e, se uma ferramenta não o visualizar, você pode executar manualmente fdisk /dev/loop0 ou algo assim.

(Se um dispositivo disco inteiro estiver em /dev/mapper/ , não é difícil fazer com que essas ferramentas o vejam, embora geralmente envolva editar algumas linhas do código-fonte ... executando fdisk /dev/mapper/bleh é geralmente mais fácil.)

Observe também que os kernéis recentes suportam losetup --partscan , o que elimina a necessidade de usar o mapeador de dispositivos para isso.

    
por 03.10.2013 / 22:04
3

Basta criar um link físico temporário depois de executar kpartx -a ... :

sudo ln /dev/loop0 /dev/mapper/loop0

E, em seguida, execute o gparted como de costume (ele funcionará corretamente em /dev/mapper/loop0p* ):

sudo gparted /dev/mapper/loop0

Não se esqueça de remover o link quando não for mais necessário.

    
por 12.03.2014 / 10:37
0

Após 3,5 anos, tenho outra solução:

Se você não estiver preocupado em usar o kpartx e estiver correto sugerindo que seu alvo é operar partições em uma imagem de disco representada como um arquivo comum, aqui está um fluxo de trabalho alternativo sem kpartx e symlinking (é por isso que é postado como separado resposta):

  1. sudo losetup --find --show ./somedrive.img

    Anexe um dispositivo de loop para todo o arquivo ./somedrive.img ; --find é pedir ao losetup para procurar o dispositivo livre automaticamente; e --show é imprimir o dispositivo que foi usado. Por exemplo, considere que o dispositivo escolhido é /dev/loop5 .

  2. sudo partx --update /dev/loop5

    Diga ao kernel do Linux para verificar novamente as partições dentro de /dev/loop5 . Em caso de sucesso, não produzirá nenhuma saída, portanto, confira ls -al /dev/loop5 para ver o que aparece.

  3. Faça o que precisar, como sudo gparted /dev/loop5

    Neste ponto, você deve ser capaz de operar corretamente /dev/loop5p* .

  4. sudo partx --delete /dev/loop5

    Libere os mapeamentos de partições.

  5. sudo losetup --detach /dev/loop5

    Finalmente, solte o dispositivo de loop.

PS Se você for o orgulhoso Owner ™ do pacote util-linux com a versão v2.21 ou superior, poderá solicitar o anexo de dispositivo de loop e uma nova verificação de partição em uma única vez: sudo losetup --find --show --partscan ./somedrive.img e não deve encontrar o problema com os utilitários do tipo gparted.

    
por 24.11.2017 / 10:27