Да, это возможно с помощью dmsetup
.
Подготовьте пустые файлы
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
Этот пример дает 800 GiB
, 1200 GiB
, 1100 GiB
и 200 GiB
в четырех файлах - всего 3300 GiB
.
Подготовить петлевые устройства
sudo losetup -f /mnt/disk1/file1
sudo losetup -f /mnt/disk2/file2
sudo losetup -f /mnt/disk3/file3
sudo losetup -f /mnt/disk4/file4
Проверьте с помощью sudo losetup -a
какие устройства петли связаны с вашими файлами. В моем примере предполагается, что они /dev/loop0
, /dev/loop1
, /dev/loop2
и /dev/loop3
соответственно.
Создать логическое устройство
РЕДАКТИРОВАТЬ: см. Ответ Xen2050. Это дает более простой способ с этой точки зрения.
Мой оригинальный, более сложный способ заключается в следующем:
Сначала вы должны знать, насколько велики ваши файлы в 512 B
В моем примере это числа 800*1024*1024*2
, 1200*1024*1024*2
, 1100*1024*1024*2
и 200*1024*1024*2
; т.е. 1677721600
, 2516582400
, 2306867200
и 419430400
.
Вам также понадобится сумма первого ...
нулевые числа (тривиальные): 0
,
один номер (тривиальный): 1677721600
,
два числа: 1677721600 + 2516582400 = 4194304000
,
три числа: 1677721600 + 2516582400 + 2306867200 = 6501171200
.
Я надеюсь, что я сделал мою математику правильно. :)
Призовите:
sudo dmsetup create my_device
Теперь приведем правильную таблицу (карту):
0 1677721600 linear /dev/loop0 0
1677721600 2516582400 linear /dev/loop1 0
4194304000 2306867200 linear /dev/loop2 0
6501171200 419430400 linear /dev/loop3 0
(Каждая строка начинается с вычисленной суммы, за которой следует вычисленный размер.)
Нажмите Ctrl+D, чтобы закончить.
Создать файловую систему
sudo mkfs.ext4 /dev/mapper/my_device
гора
sudo mkdir /mnt/my_device
sudo mount -o rw /dev/mapper/my_device /mnt/my_device
Обратите внимание, что на 3300 GiB
имеется менее my_device
свободного места из-за потребностей файловой системы. Заранее настройте размеры файлов в зависимости от свободного места на ваших разделах и размера изображения.
Когда ваша работа закончится:
возвращаться
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