Como posso mesclar duas imagens de disco em uma com duas partições?

3

Eu tenho 2 (relativamente pequenas) imagens de disco para o qemu (formato raw) contendo diferentes sistemas de arquivos (digamos gordura e ext4).

Eu quero colocá-los em um pendrive como duas partições diferentes para que eu possa conectá-lo em um PC e iniciar a partir daí.

Eu poderia fazer isso com fdisk e dd, mas isso exigiria acesso root e intervenção manual (essa será uma atividade frequente nos próximos meses.

Como posso automatizar a tarefa? Posso evitar o acesso sudo e root?

Atualmente, as imagens de disco são criadas durante nosso processo de integração contínua e não requerem acesso root ou intervenção manual, mas não consigo encontrar uma maneira de mesclar esses dois discos para atender a esse novo requisito.

editar

O que eu preciso para automatizar não é a partição de uma chave usb real, mas a criação de uma imagem de disco bruta que pode ser gravada na chave usb com um único sudo dd ... . A imagem de disco já deve conter as partições preenchidas com os dados (preservando as permissões).

O que não consigo entender é por que eu preciso da raiz para gravar uma imagem de disco bruta.

    
por Giacomo Tesio 07.04.2016 / 19:53

2 respostas

0

A resposta simples é: não

Desde que você tenha que criar essas duas partições através de um script ou similar no pendrive, você está editando a tabela de partições e criando um sistema de arquivos que é algo que requer acesso root.

Dado que você já tem aquelas partições com o sistema de arquivos correto e você tem as duas imagens do qemu montadas localmente (que também requerem raiz, mas dê uma olhada no pmount), você pode tentar copiar os arquivos das imagens para a partição no stick usb. Contanto que você tenha apenas arquivos normais e não se importe com o usuário / grupo ao qual pertence, isso deve funcionar sem raiz.

    
por 07.04.2016 / 20:36
0

Você não precisa de root. Você pode executar "fdisk someimage.hdd" e, desde que tenha acesso a esse arquivo, você está bem. Você também pode dd para partes daquele arquivo que correspondem a partições, usando os parâmetros offset e notrunc para dd.

Especificar os offsets manualmente é muito mais inconveniente comparado ao uso de dispositivos de particionamento com o dd. É aqui que o acesso root pode ser útil - você pode usar o comando "losetup" para criar dispositivos de blocos de loopback para sua imagem e suas partições.

Ainda assim, esses cálculos de compensação não variam cada vez que você repetir o exercício, se você não alterar os tamanhos das partições, portanto, se você os descobrir, poderá reutilizá-los para o futuro.

E há uma outra maneira - depois de criar a imagem uma vez e descobrir os offsets, você pode extrair o início da imagem de disco contendo a tabela de partição como um arquivo separado e não precisar usar fdisk e dd para o seu arquivo. reconstruções de imagens futuras - apenas concatene ("cat") a tabela de partição e as duas imagens de partição em uma imagem de disco. (Em alguns casos, pode ser necessário incluir também um arquivo de sufixo de disco após as partições semelhantes ao arquivo de prefixo de disco que contém a tabela de partição, pois pode haver uma tabela de partição de backup no final do disco.)

    
por 06.04.2017 / 15:14