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

Важно: 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: Быстрая инструкция для системного администратора (шаги)
- Скопировать DMG на рабочую машину и проверить контрольную сумму (если есть).
- Запустить file image.dmg чтобы определить тип.
- Попробовать 7z x image.dmg -o./extracted (если нужен только один файл).
- Если 7z не помог — запустить dmg2img image.dmg image.img.
- Создать /mnt/dmg_mount и смонтировать sudo mount -o loop,ro -t hfsplus image.img /mnt/dmg_mount.
- Проверить содержимое, скопировать нужные файлы.
- 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
- Проверить тип: file MyApp.dmg.
- Если сжат — dmg2img MyApp.dmg MyApp.img.
- Смонтировать: sudo mount -o loop,ro -t hfsplus MyApp.img /mnt/dmg_mount.
- Скопировать приложению: cp -r /mnt/dmg_mount/MyApp.app ~/Downloads/
- 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.
Важно: всегда работайте с копией исходного файла, чтобы не потерять данные при ошибках операций.
Похожие материалы
Удаление плохих отзывов в Google
Как включить AES шифрование (BitLocker) в Windows 11
Как зациклить презентацию в Google Slides
Как пользоваться WhatsApp Web без телефона — настройка и безопасность
Как защититься от мошенников на пенсии