Есть ли способ взять файл img диска, который разбит на части, и смонтировать его как одноконтурное устройство?
linux
block-device
loop-device
MageProspero
источник
источник
Ответы:
Я не думаю, что вы можете сделать это на месте, но если у вас достаточно места, это должно сработать:
Вы не можете просто создать массив RAID из исходных файлов, поскольку диски RAID имеют специальный заголовок, в котором хранится количество дисков, уровень RAID и т. Д. Если вы сделаете это, то часть ваших исходных файлов будет перезаписана.
Вы можете использовать
mdadm --build
для создания массива без метаданных, но тогда вы действительно должны сначала сделать резервную копию. Или если монтирования только для чтения достаточно:почему ты хочешь сделать это? Если ваша файловая система не может обрабатывать файлы> 4 ГБ, вам следует просто переключиться на нормальную.
источник
truncate
вместо,dd
поскольку он намного быстрее (он не выполняет фактическую запись в FS, а просто выделяет иноды и помечает файл как просто содержащий отверстие).Чтобы смонтировать разделенный образ диска (или образ раздела), вы должны использовать
affuse
из afftools, которые в настоящее время поддерживаются здесь: https://github.com/sshock/AFFLIBv3Итак, если у вас есть файл, разбейте его на несколько подфайлов
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
тогда вы можете присоединиться к ним практически с
affuse
(это объединяет все файлы, начиная с файла 000, затем 001, 002,…)
А затем смонтировать образ
Использование описано здесь и некоторые примеры здесь . Справочная страница также доступна после компиляции и установки или здесь .
PS: для меня
affuse
работало, только если размер разделенных файлов был кратным 512 байтам.источник
Вы можете написать свое собственное расширение блочного устройства хранения (подумайте о расширении в виде плавкого предохранителя) и выполнять поиск в зависимости от того, какой адрес.
Здесь вы можете найти пример использования предохранителя https://github.com/libfuse/python-fuse/blob/master/example/hello.py
источник
Самое близкое, что я знаю до сих пор, - это создание виртуальной машины VMware. Вы запускаете Linux live CD, такой как Rescatux или Knoppix, вы создаете общую папку SMB на своем хост-компьютере, вы монтируете этот общий ресурс SMB на вашей виртуальной машине, а затем вы помещаете
dd
образ в виртуальный HD. VMware по умолчанию сохраняет свои образы дисков в виде разделенных файлов, так что это самая близкая вещь для непосредственного чтения образа диска, разделенного на несколько файлов.Позже, если вы хотите получить доступ к файлам с вашего хост-компьютера, вы можете попробовать добавить второй виртуальный HD к образу и скопировать туда файлы. Затем вы настраиваете общую папку SMB на виртуальной машине и подключаетесь к ней со своего хоста. Таким образом, вы можете, например, нарушить ограничение в 4 ГБ для файла FAT32 в случае, если вы используете iPod Classic (который использует только fat32) или SD-карту вашего смартфона (обычно вам нужно установить пользовательское ПЗУ, чтобы чтобы использовать Ext3 или NTFS на внешнем хранилище, для этого вам понадобится телефон от популярного производителя, такого как Samsung или Motorola, поэтому, если у вас есть китайский смартфон, вы в тупике).
Однако, по общему признанию, это неэффективное решение, но, поскольку я был ограничен тем, что не смог использовать на своем iPod Classic или на смартфонах Samsung со стандартным ПЗУ любую ФС, кроме fat32, я в значительной степени исследовал весь Интернет в Интернете. Прошлое и до сих пор не могу найти эффективное решение для этого. Я мог бы даже написать это сам.
PS: забыл упомянуть, что если вы используете Windows, это может быть единственным способом сделать это.
источник
Под BSD вы можете использовать опцию объединения для монтирования. Под Linux вы можете попробовать unionFS.
источник