Sim, é possível com dmsetup .
Prepare arquivos vazios
fallocate -l $((800*1024*1024*1024)) /mnt/disk1/file1
fallocate -l $((1200*1024*1024*1024)) /mnt/disk2/file2
fallocate -l $((1100*1024*1024*1024)) /mnt/disk3/file3
fallocate -l $((200*1024*1024*1024)) /mnt/disk4/file4
Este exemplo fornece 800 GiB , 1200 GiB , 1100 GiB e 200 GiB em quatro arquivos - 3300 GiB no total.
Preparar dispositivos de loop
sudo losetup -f /mnt/disk1/file1
sudo losetup -f /mnt/disk2/file2
sudo losetup -f /mnt/disk3/file3
sudo losetup -f /mnt/disk4/file4
Verifique com sudo losetup -a quais dispositivos de loop estão associados aos seus arquivos. Meu exemplo assume que eles são /dev/loop0 , /dev/loop1 , /dev/loop2 e /dev/loop3 respectivamente.
Criar dispositivo lógico
EDIT: veja a resposta do Xen2050. Dá uma maneira mais simples a partir deste ponto.
Minha maneira original e mais complexa é a seguinte:
Primeiro, você precisa saber o tamanho dos seus arquivos em 512 B unit. No meu exemplo, esses números são 800*1024*1024*2 , 1200*1024*1024*2 , 1100*1024*1024*2 e 200*1024*1024*2 ; Por exemplo, 1677721600 , 2516582400 , 2306867200 e 419430400 .
Você também precisará da soma do primeiro ...
zero números (trivial): 0 ,
um número (trivial): 1677721600 ,
dois números: 1677721600 + 2516582400 = 4194304000 ,
três números: 1677721600 + 2516582400 + 2306867200 = 6501171200 .
Espero ter feito a minha matemática corretamente. :)
Invocar:
sudo dmsetup create my_device
Agora, forneça uma tabela apropriada (mapa):
0 1677721600 linear /dev/loop0 0
1677721600 2516582400 linear /dev/loop1 0
4194304000 2306867200 linear /dev/loop2 0
6501171200 419430400 linear /dev/loop3 0
(Cada linha começa com uma soma computada seguida de tamanho computado.)
Pressione Ctrl + D para finalizar.
Criar sistema de arquivos
sudo mkfs.ext4 /dev/mapper/my_device
Montagem
sudo mkdir /mnt/my_device
sudo mount -o rw /dev/mapper/my_device /mnt/my_device
Observe que há menos de 3300 GiB de espaço livre em my_device devido às necessidades do sistema de arquivos. Ajuste os tamanhos dos seus arquivos antecipadamente, dependendo do espaço livre disponível nas suas partições e do tamanho da imagem.
Quando seu trabalho terminar:
Reverter
sudo umount /mnt/my_device
sudo dmsetup remove my_device
sudo losetup -d /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3
rm /mnt/disk1/file1 /mnt/disk2/file2 /mnt/disk3/file3 /mnt/disk4/file4