Existe uma maneira de pegar um arquivo de img de disco dividido em partes e montá-lo como um dispositivo de loop único?
linux
block-device
loop-device
MageProspero
fonte
fonte
Respostas:
Eu não acho que você pode fazê-lo no lugar, mas se você tiver espaço suficiente, isso deve funcionar:
Você não pode simplesmente criar uma matriz RAID a partir dos arquivos originais, porque os discos RAID têm um cabeçalho específico em que o número de discos, o nível RAID, etc, é armazenado. Se você fizer isso, parte dos arquivos originais será substituída.
Você pode usar o
mdadm --build
para criar uma matriz sem metadados, mas deve fazer um backup primeiro. Ou se a montagem somente leitura for suficiente:Por que você quer fazer isso? Se o seu sistema de arquivos não conseguir lidar com arquivos de mais de 4 GB, você deve simplesmente mudar para um sã.
fonte
truncate
vez dedd
ser muito mais rápido (ele não realiza gravação real no FS, mas apenas aloca inodes e marca o arquivo como contendo apenas um furo).Para montar uma imagem de disco dividido (ou imagem de partição), você deve usar
affuse
os afftools atualmente mantidos aqui: https://github.com/sshock/AFFLIBv3Portanto, se você tiver um arquivo, divida-o em vários subarquivos
test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009
então você pode se juntar a eles virtualmente com
affuse
(isso combina todos os arquivos, começando com o arquivo 000 e 001, 002,…)
E depois monte a imagem
O uso é descrito aqui e alguns exemplos aqui . Uma página de manual também está disponível após a compilação e instalação, ou aqui .
PS: Para mim,
affuse
só funcionava se os arquivos divididos tivessem um tamanho múltiplo de 512 bytes.fonte
Você pode escrever sua própria extensão de dispositivo de armazenamento em bloco (pense em extensões semelhantes a fusíveis) e realizar buscas de maneira independente do endereço.
Aqui você pode encontrar exemplos de como usar o fusível https://github.com/libfuse/python-fuse/blob/master/example/hello.py
fonte
A coisa mais próxima que eu sei até agora de uma solução é criar uma VMware VMware. Você inicia um live CD do Linux como Rescatux ou Knoppix, cria uma pasta compartilhada SMB no computador host, monta esse compartilhamento SMB na sua VM e depois
dd
a imagem no HD virtual. O VMware, por padrão, salva suas imagens de disco como arquivos divididos, portanto é a coisa mais próxima de ler diretamente uma imagem de disco dividida em vários arquivos.Posteriormente, se você quiser acessar os arquivos do seu computador host, tente adicionar um segundo HD virtual à imagem e copiar os arquivos lá. Em seguida, você configura uma pasta compartilhada SMB na VM e se conecta a ela a partir do seu host. Dessa forma, você pode, por exemplo, violar o limite de 4 GB de arquivo FAT32 no caso de estar usando um iPod Classic (que apenas graks fat32) ou o cartão SD do seu smartphone (geralmente é necessário instalar uma ROM personalizada para Para usar o Ext3 ou NTFS no armazenamento externo, é necessário um telefone de um fabricante popular como Samsung ou Motorola; portanto, se você tiver um smartphone chinês, ficará perplexo).
É certo que não é uma solução eficiente, no entanto, mas como tenho sido limitado por não poder usar nenhum outro FS além do fat32 no meu iPod Classic ou nos meus smartphones Samsung com ROM de estoque, vasculhei praticamente toda a Internet na Internet. passado e ainda não consigo encontrar uma solução eficiente para isso. Eu posso até ter que escrever sozinho.
PS: Esqueci de mencionar que, se você estiver no Windows, essa pode ser a única maneira de fazer isso.
fonte
No BSD, você pode usar a opção de união para montar. No Linux, você pode tentar o unionFS.
fonte