Как смонтировать образ сжатого диска?

Если я создаю образ диска и сжимаю его с помощью gzip / xz / etc, есть ли способ его непосредственного монтирования без первого разжатия?

Предположим, что я использовал

sudo dd if=/dev/sdc1 | gzip -9 > image1.dd.gz

как смонтировать исходное изображение, не создавая сначала несжатую копию?

Или я использовал

sudo dd if=/dev/sdc | gzip -9 > wholedisk.dd.gz

, и диск имеет несколько разделов, это сделает

С несжатым изображением целого диска, тогда использование kpartx или более новых версий losetup с его флагом -P должно создать цикл для каждого раздела.

Но есть ли способ монтирования / losetup / чтения сжатого изображения?

Если он не будет работать для gzip / xz, существует ли какой-либо метод сжатия, для которого это будет работать?

Замечание о дублировании Q

Предлагаемый в настоящее время дубликат

Установите отдельный раздел из образа всего диска (устройства), будучи отличным полезным Q [ ! d13]

compress , и НЕ ДУБЛИКАТ.

mount не будет монтировать сжатый образ сам по себе.

1
задан 14 October 2016 в 10:14

2 ответа

Вы можете использовать squashfs для сжатия образов дисков и затем монтировать их.

Создать образ диска

Если у вас еще нет образа диска, используйте dd для создания одного:

dd if=/dev/sda1 of=/tmp/sda1.img bs=4M

Сжать изображение с помощью squashfs

Установить squashfs:

apt-get install squashfs-tools

Сжать изображение:

[ f3]

Или Поток сжатия (не нужен временный dd-файл)

mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'

Комплименты терминатора14 на UbuntuForums.org. Определения / Пояснения:

empty-dir - директория "source". В основном в нашем случае просто пустой каталог, удовлетворяющий входному формату ввода mksquashfs squash.img - адресат и имя файла выходного файла squashfs sda_backup.img - имя резервной копии dd INSIDE файла squashfs f - указывает, что sda_backup .img является обычным файлом (в отличие от каталога, блочного устройства или устройства char) 444 - разрешения файла sda_backup.img внутри изображения squashfs root root - UID и GID для файла sda_backup.img внутри образ squashfs. Может быть задано десятичными числами или по имени dd if=/dev/sda bs=4M - команда dd, используемая для чтения устройства, которое мы хотим создать резервную копию

Установите изображение

Сначала установите изображение squashfs :

mkdir /mnt/squash
mount /tmp/sda1.squash.img /mnt/squash

При этом будет показано изображение без сжатого диска:

mkdir /mnt/sda1
mount /mnt/squash/sda1.img /mnt/sda1

Или, если это изображение полного диска (секционированное), вы можете использовать losetup, чтобы прикрепить dd-изображение к устройству цикла (возможно, дополнительно), а затем kpartx -a или partprobe, чтобы найти & amp; разделяйте разделы на отдельные устройства или даже vgscan / vgchange -ay, если есть LVM.

5
ответ дан 23 May 2018 в 05:15
  • 1
    Я добавил некоторые данные о squashfs на лету, чтобы избежать необходимости временного простого dd-файла. Отличный ответ с squashfs, просто не делает более удобные в использовании форматы xz / gz – Xen2050 11 December 2016 в 15:25
  • 2
    Будет ли это работать с полным изображением диска, содержащим несколько разделов? – friederbluemle 18 November 2017 в 21:43

Вот мой способ сделать это, не знаю консольного эквивалента, хотя,

Сжатие папки в iso. Смонтируйте файл .iso с помощью Disk Image Mounter. Тада открываю сжатый iso без его распаковки.
0
ответ дан 23 May 2018 в 05:15
  • 1
    Действительно ли этот метод сжимает данные? Похоже, он использует простой образ iso9660 (через файл-ролик?), Который не использует сжатие. Я попробовал его в файле размером 100 МБ всех нулей (dd if=/dev/zero и файл-ролика), и на самом деле он добавляет 362 тыс. Данных (я полагаю, это чрезмерные издержки). Спасибо, хотя идея на правильном пути – Xen2050 22 October 2016 в 15:07
  • 2
    Извините, но у меня нет идеи по технологии сжатия, но если вы попробуете какой-либо другой формат сжатия, я уверен, вы также можете перечислить это с помощью ролика, но если вы хотите прочитать этот файл, вам нужно извлечь только этот конкретный файл. – Kuntal Majumder 22 October 2016 в 16:33

Другие вопросы по тегам:

Похожие вопросы: