Гид по технологиям

Как извлечь и открыть DMG‑файлы в Linux

6 min read Linux Обновлено 20 Dec 2025
Извлечение DMG в Linux — полное руководство
Извлечение DMG в Linux — полное руководство

MacBook and a linux laptop

Важно: DMG — это формат образа диска Apple. Он может быть сжатым, разрежённым (sparse), зашифрованным или содержать HFS/HFS+‑файловую систему. Linux не поддерживает все эти варианты «из коробки», поэтому нужно применять специальные утилиты.

Ключевая задача

Цель этой инструкции — показать реальные способы извлечения содержимого DMG на Linux: от простого распаковки до монтирования образа для чтения. Приведены команды для популярных дистрибутивов, рекомендации по безопасности и пошаговые сценарии (SOP) для разных ролей.

Основные понятия (в одну строку каждое)

  • DMG: проприетарный диск‑образ Apple (часто UDIF, может быть сжат или зашифрован).
  • IMG: более «сырой» образ диска, который Linux обычно монтирует легче.
  • HFS/HFS+: файловые системы macOS, для монтирования которых нужны дополнительные пакеты.
  • dmg2img: конвертер DMG → IMG (часто решает проблему сжатых образов).

Почему DMG сложнее ISO/IMG

DMG — не всегда просто «архив». Это контейнер со структурой, специфичной для macOS: UDIF‑сжатие, разрежённые образы, многотомные пакеты и шифрование. Linux‑ядро не содержит нативных драйверов для декомпрессии и интерпретации таких контейнеров, поэтому штатные средства монтирования часто сообщают “bad superblock” или “wrong fs type”.

Что вам понадобится (утилиты)

  • dmg2img — конвертация DMG → IMG (обработка UDIF/сжатых образов).
  • hfsprogs / hfsplus‑tools — инструменты для работы с HFS/HFS+ (mount, fsck, mkfs.hfsplus и т. п.).
  • p7zip (p7zip‑full) — может распаковать некоторую часть содержимого DMG без монтирования.
  • file — определяет тип образа.
  • mount / umount — стандартные команды монтирования/отмонтирования.

Совместимость: пакеты называются по‑разному в дистрибутивах; ниже приведены команды установки.

Подготовка: обновление пакетов

Перед установкой пакетов обновите индексы:

# Debian/Ubuntu
sudo apt update

# Fedora/CentOS/RHEL (8+)
sudo dnf check-update

# Arch
sudo pacman -Syu

Установка утилит (быстрый справочник)

  • Debian/Ubuntu:
sudo apt install dmg2img hfsprogs p7zip-full file
  • Arch Linux (через AUR для некоторых пакетов):
sudo pacman -S dmg2img p7zip file
# Для hfsprogs может потребоваться AUR (yay):
yay -S hfsprogs
  • Fedora / CentOS / RHEL:
sudo dnf install dmg2img hfsplus-tools p7zip file

Если нужного пакета нет в репозиториях, проверьте AUR, COPR или соберите из исходников.

Проверка типа DMG

Прежде чем пытаться монтировать, узнайте, что внутри:

file image.dmg

Вывод подскажет, является ли файл сжатым UDIF, HFS образов и т. д. Если file говорит “gzip”/“bzip2”/“UDIF”, то прямое монтирование, вероятно, не сработает.

1) Быстрая распаковка — когда нужен только доступ к файлам

Если вам только нужно извлечь файлы, не менять образ, попробуйте сначала распаковку:

  • p7zip (p7zip‑full) иногда открывает DMG как архив:
7z x image.dmg -o./extracted
  • Если p7zip не сработал — используйте dmg2img для конверсии, затем распакуйте IMG с помощью 7z или смонтируйте его.
dmg2img image.dmg image.img
7z x image.img -o./extracted

Примечание: 7z распакует файлы из файловых систем в образе не всегда корректно (проблемы с правами/символическими ссылками), поэтому для точного восстановления лучше монтировать образ.

2) Конвертация DMG → IMG (решение для сжатых образов)

dmg2img декомпрессирует UDIF/сжатые DMG и создаёт «сырый» образ .img:

dmg2img image.dmg image.img

После этого проверьте тип образа снова:

file image.img

Если внутри HFS/HFS+, переходите к монтированию.

3) Монтирование IMG/HFS+ образа

Создайте точку монтирования:

sudo mkdir -p /mnt/dmg_mount

Смонтируйте как read‑only (рекомендуется):

# Обычно достаточно указать loop и тип hfsplus
sudo mount -o loop,ro -t hfsplus /path/to/image.img /mnt/dmg_mount

Если исходный DMG был напрямую HFS (не сжат), можно попробовать монтировать DMG сразу (иногда работает с hfsprogs):

sudo mount -o loop,ro -t hfsplus /path/to/image.dmg /mnt/dmg_mount

Проверьте содержимое:

ls -la /mnt/dmg_mount

Важно: обычно монтирование лучше делать в режиме только для чтения (ro), чтобы исключить повреждение образа.

4) Отмонтирование и очистка

После завершения работы правильно отмонтируйте образ:

sudo umount /mnt/dmg_mount

Если вы конвертировали образ и он больше не нужен, удалите временный IMG:

rm image.img

Особые случаи и ограничения

  • Зашифрованные DMG: если образ зашифрован (password‑protected), Linux‑утилиты часто не помогут. Расшифровку/монтирование обычно можно выполнить только на macOS с hdiutil или с использованием macOS в виртуальной машине.
  • Sparse‑images и chunked DMG: разрежённые (sparsebundle, sparseimage) или многотомные контейнеры могут потребовать предварительного объединения/конверсии на macOS.
  • DMG с APFS: современные macOS могут использовать APFS внутри образов. Поддержка APFS на Linux ограничена; если внутри APFS, то извлечение может потребовать macOS или специализированных инструментов (и часто не доступно для записи).

Важно: если требуется редактирование содержимого DMG и корректная запись обратно в DMG — лучше делать это на macOS, иначе есть риск нарушить структуру образа.

Действия при ошибках (Troubleshooting)

  • Ошибка “wrong fs type” или “bad superblock”: вероятно, образ сжат — используйте dmg2img.
  • Ошибка прав доступа при монтировании: используйте sudo и проверьте, что точка монтирования пуста.
  • Файлы видны, но некорректные символические ссылки: некоторые Unix‑специфичные атрибуты могут не сохраняться при распаковке; используйте монтирование, а не распаковку, если нужно целое окружение.

SOP: Быстрая инструкция для системного администратора (шаги)

  1. Скопировать DMG на рабочую машину и проверить контрольную сумму (если есть).
  2. Запустить file image.dmg чтобы определить тип.
  3. Попробовать 7z x image.dmg -o./extracted (если нужен только один файл).
  4. Если 7z не помог — запустить dmg2img image.dmg image.img.
  5. Создать /mnt/dmg_mount и смонтировать sudo mount -o loop,ro -t hfsplus image.img /mnt/dmg_mount.
  6. Проверить содержимое, скопировать нужные файлы.
  7. umount и удалить временные файлы.

Критерии приёмки: извлечённые файлы открываются и имеют ожидаемые размеры/контент; при необходимости выполняется контрольная сумма; нет ошибок при чтении файлов.

Роли — чек‑листы

  • Разработчик: быстро извлечь ресурсы приложения; использовать 7z или dmg2img → mount → копировать.
  • Системный администратор: обеспечить безопасное монтирование (ro), контроль целостности и удаление временных артефактов.
  • Пользователь: если боитесь сломать файл — сначала сделайте копию DMG и работайте с ней.

Альтернативные подходы

  • macOS VM: если DMG зашифрован или содержит APFS, установите macOS в виртуальную машину (если лицензия/лицензия и политика позволяют) и используйте hdiutil/hfsutil там.
  • Online‑сервисы/конвертеры: есть веб‑сайты, которые пытаются распаковать DMG, но это рискованно с точки зрения приватности. Не загружайте конфиденциальные образы.
  • Использование гостевой macOS для безопасной конверсии и повторной упаковки.

Безопасность и приватность

  • Не загружайте чужой DMG на публичные сервисы без проверки содержимого.
  • Если DMG подозрителен — распаковывайте в изолированной среде (контейнер/VM).
  • Зашифрованные образы требуют ввода пароля: храните пароли и ключи в безопасном менеджере.

Когда методы не сработают (контрпримеры)

  • DMG, содержащий APFS‑том: Linux имеет ограниченную поддержку APFS → извлечение может быть невозможно без macOS.
  • Сильно кастомизированные или многотомные sparsebundle: dmg2img и 7z не всегда корректно объединяют тома и данные.
  • Если образ защищён Hardware DRM — извлечение может быть невозможным.

Полезные команды — шпаргалка (cheat sheet)

file image.dmg                  # определить тип
dmg2img image.dmg image.img     # конвертировать в IMG
7z x image.dmg -o./extracted    # попытаться распаковать напрямую
sudo mkdir -p /mnt/dmg_mount
sudo mount -o loop,ro -t hfsplus /path/to/image.img /mnt/dmg_mount
ls -la /mnt/dmg_mount
sudo umount /mnt/dmg_mount
rm image.img

Пример сценария: извлечь .app из DMG

  1. Проверить тип: file MyApp.dmg.
  2. Если сжат — dmg2img MyApp.dmg MyApp.img.
  3. Смонтировать: sudo mount -o loop,ro -t hfsplus MyApp.img /mnt/dmg_mount.
  4. Скопировать приложению: cp -r /mnt/dmg_mount/MyApp.app ~/Downloads/
  5. umount /mnt/dmg_mount.

Краткое резюме

  • Для простого доступа к файлам сначала попробуйте p7zip.
  • Для надёжного доступа конвертируйте DMG в IMG через dmg2img и монтируйте с помощью hfsprogs/hfsplus‑tools.
  • Зашифрованные или APFS‑образы часто требуют macOS/VM.

Часто задаваемые вопросы

Можно ли открыть DMG без конвертации?

Иногда — если DMG не сжат и содержит HFS/HFS+, его можно смонтировать напрямую с hfsprogs: sudo mount -o loop,ro -t hfsplus image.dmg /mnt/point. Но многие DMG сжаты, и тогда нужна конверсия.

Что делать с зашифрованным DMG?

Большинство Linux‑утилит не смогут расшифровать такой образ. Лучше использовать macOS (реальную или виртуальную) для расшифровки через hdiutil.

Можно ли записать изменения обратно в DMG с Linux?

Редактирование и корректная упаковка обратно в DMG на Linux ненадёжны. Для правки/пересборки DMG используйте macOS.

Чем отличается IMG от DMG?

IMG — «сырой» блочный образ; DMG часто содержит UDIF‑обёртку, сжатие и метаданные Apple.

Man with problems

Важно: всегда работайте с копией исходного файла, чтобы не потерять данные при ошибках операций.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление плохих отзывов в Google
Репутация

Удаление плохих отзывов в Google

Как включить AES шифрование (BitLocker) в Windows 11
Безопасность

Как включить AES шифрование (BitLocker) в Windows 11

Как зациклить презентацию в Google Slides
Презентации

Как зациклить презентацию в Google Slides

Как пользоваться WhatsApp Web без телефона — настройка и безопасность
Мессенджеры

Как пользоваться WhatsApp Web без телефона — настройка и безопасность

Как защититься от мошенников на пенсии
Безопасность

Как защититься от мошенников на пенсии

Как массово удалить письма в Gmail
Email

Как массово удалить письма в Gmail