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

Изображение: ноутбук Mac рядом с ноутбуком на Linux — обмен файлами между системами.
DMG — формат образа диска, распространённый на macOS. На Linux такие образы не всегда открываются «из коробки». Однако если вам нужно только просмотреть или скопировать файлы из DMG, есть несколько рабочих подходов.
Что такое DMG
DMG — это проприетарный формат образа диска, используемый Apple для упаковки и распространения приложений, резервных копий и медиа. Образ диска содержит «побайтовую» копию содержимого файловой системы: разделы, метаданные и файлы.
Коротко: DMG — контейнер, похожий на ISO, но оптимизированный для macOS (HFS / HFS+ / APFS, сжатие, шифрование, снапшоты).
Примечание: некоторые DMG — это просто архивы файлов, другие содержат разделы и загрузочные структуры, третьи зашифрованы паролем.
Почему DMG сложнее, чем ISO
- Формат ориентирован на macOS и часто использует HFS+/APFS. Linux по умолчанию использует ext4 и другие, поэтому возможны несовместимости.
- Многие DMG сжаты или зашифрованы, и тогда их нельзя просто примонтировать как RAW‑образ.
- Внутри DMG может быть несколько разделов, таблица разделов GUID/MBR, что требует дополнительной работы с loop‑устройствами.
Важно: не все DMG можно открыть полностью на Linux, особенно если они зашифрованы или используют новейший APFS без поддержки со стороны доступных инструментов.
Когда стоит извлечь DMG в Linux
- Вам прислали архивацию с macOS и вы хотите достать файлы без доступа к Mac.
- Нужно проверить содержимое установщика, прочитать документацию или скопировать ресурсы.
- Вы готовите перенос данных с Mac на Linux или в CI/CD‑конвейер.
Примечание: по оценкам, доля macOS на рынке десктопов может быть существенной — поэтому периодически вы будете получать DMG от пользователей Mac.
Варианты подхода — обзор
- Попытаться извлечь файлы без монтирования (dmg2img, 7z, bsdtar, 7‑Zip).
- Конвертировать DMG → IMG (dmg2img), затем монтировать через loop/losetup/kpartx.
- Использовать специальные утилиты и драйверы (hfsprogs, hfsplus-tools) для работы с HFS+.
- Исполнять на виртуальной машине macOS и работать через родные инструменты (дефолтное решение для зашифрованных/журнальных образов).
Каждый путь имеет свои плюсы и минусы — ниже подробные инструкции и сценарии.
Быстрая шпаргалка по инструментам (что за что отвечает)
- hfsprogs / hfsplus-tools: набор утилит и модуль для монтирования HFS/HFS+. Нужен при прямом монтировании HFS‑образов.
- dmg2img: конвертирует (распаковывает) DMG в обычный IMG (raw) файл.
- p7zip / 7z: иногда может извлечь содержимое DMG как архива. Удобно для простых случаев.
- bsdtar / libarchive: умеет извлекать файлы из некоторых типов образов.
- losetup / kpartx / mount: инструменты для связывания образа с loop‑устройством и монтирования разделов.
- guestfish / libguestfs: инструменты для работы с виртуальными образами; поддерживают множество форматов.
Подробный рабочий сценарий: конвертация и монтирование (рекомендуется)
- Обновите пакеты перед установкой утилит.
На Debian/Ubuntu установите hfsprogs и dmg2img:
sudo apt update && sudo apt install -y hfsprogs dmg2img p7zip-full kpartxНа Arch Linux (через AUR для некоторых пакетов):
yay -S hfsprogs dmg2img p7zip kpartxНа Fedora / RHEL / CentOS:
sudo dnf install -y hfsplus-tools dmg2img p7zip kpartx- Попытка извлечь содержимое как архив (быстрый метод)
7z x image.dmg -o./dmg_extractedЕсли 7z успешно распаковал файлы, можно завершить — это самый простой путь.
- Если DMG сжат или 7z не может открыть — конвертируем в RAW‑образ:
dmg2img image.dmgПо умолчанию утилита создаст файл image.img в текущей папке. При желании можно явно указать путь:
dmg2img -i image.dmg -o image.img- Найдите структуру разделов в image.img
fdisk -l image.imgЕсли fdisk показал таблицу разделов, то у образа есть разделы. Нужно подключить их через loop.
5а) Простой путь, если образ содержит один файловый раздел: монтирование напрямую через loop
sudo mkdir -p /mnt/dmg_mount
sudo mount -o loop,ro image.img /mnt/dmg_mount5б) Если есть несколько разделов — используйте losetup с поддержкой разделов и затем монтируйте нужный p‑раздел:
sudo losetup --find --show -P image.img
# команда вернёт, например, /dev/loop0
ls /dev/loop0*
# монтируем нужный раздел, например /dev/loop0p2
sudo mount -o ro /dev/loop0p2 /mnt/dmg_mountАльтернатива: kpartx
sudo kpartx -av image.img
# это создаст /dev/mapper/loop0p1, /dev/mapper/loop0p2 и т. п.
sudo mount -o ro /dev/mapper/loop0p2 /mnt/dmg_mount- Если файловая система внутри — HFS+, используйте тип hfsplus при необходимости:
sudo mount -t hfsplus -o ro,force /dev/loop0p2 /mnt/dmg_mountВажно: монтируйте в режиме ro (только чтение), если вы не уверены в целостности и журналировании. Опция force позволяет иногда примонтировать журналированные тома в режиме только чтение, но не гарантирует безопасности записи.
- После завершения работы — корректно отмонтируйте и очистите loop устройства:
sudo umount /mnt/dmg_mount
sudo losetup -d /dev/loop0 # если использовали losetup
sudo kpartx -dv image.img # если использовали kpartxПомните: команда правильна — umount, не unmount.
Работа с зашифрованными или журналируемыми DMG
- Зашифрованный DMG потребует пароля. Некоторые инструменты (включая dmg2img) попросят пароль, другие — нет. Если утилиты не запрашивают пароль или вы не знаете пароль, полное извлечение без macOS обычно невозможно.
- Если HFS+ с включённым журналом, лучше примонтировать в режиме read‑only. Для любых операций записи предпочтительнее использовать macOS.
Важно: попытки записать в образ HFS+ с журналом могут привести к повреждению данных. Всегда работайте с копией образа.
Альтернативные инструменты и обходы
- bsdtar / libarchive: иногда извлекает файлы из DMG и может быть более терпим к структурам.
- guestfish / libguestfs: пригоден, если образ содержит виртуальные разделы и вам нужно работать программно.
- xorriso: для ISO‑подобных задач; реже применим к DMG.
- открыть на macOS VM: самый совместимый путь для сложных, зашифрованных или инкрементных образов.
Полезные шаблоны команд (cheat sheet)
- Конвертация: dmg2img image.dmg
- Быстрая распаковка: 7z x image.dmg -o./out
- Монтирование простого образа: sudo mount -o loop,ro image.img /mnt/point
- Losetup с разделами: sudo losetup –find –show -P image.img
- Создание точки монтирования: sudo mkdir -p /mnt/dmg_mount
- Отмонтировать: sudo umount /mnt/dmg_mount
Критерии приёмки
- Файлы доступны для чтения в целевой директории.
- После копирования исходный образ не изменён.
- Все действия выполняются в режиме read‑only, если нет явной необходимости в записи.
Ролевые чеклисты
Для системного администратора:
- Проверить наличие утилит: fdisk, losetup, kpartx, dmg2img, hfsprogs.
- Работать с копией образа.
- Использовать read‑only монтирование по умолчанию.
Для разработчика или QA:
- Попробовать 7z/bsdtar для быстрого извлечения.
- Если образ нужен в CI, добавьте шаг конвертации dmg2img → mount → тесты.
Для рядового пользователя:
- Попытаться распаковать через p7zip.
- Если не получается — попросить отправителя переслать архив в ZIP/ISO или использовать macOS для извлечения.
Отладка — что делать, если что‑то не работает
- Убедитесь, что образ не повреждён: проверьте размер файла, контрольную сумму при наличии.
- Запустите file image.dmg — чтобы понять тип контейнера.
- Попробуйте 7z x image.dmg — иногда это самый простой выход.
- Конвертируйте через dmg2img и исследуйте image.img с помощью fdisk -l / parted -l.
- Используйте losetup -P или kpartx, чтобы получить доступ к разделам.
- Если HFS+ не монтируется — попробуйте mount -t hfsplus -o ro,force.
- Если диск зашифрован — скорее всего, нужен macOS или пароль.
Когда метод не сработает (контрпримеры)
- APFS‑образ, созданный на новейших версиях macOS: поддержка APFS на Linux ограничена; многие утилиты не распакуют APFS или не смогут расшифровать том.
- Полностью зашифрованный DMG без пароля: извлечь невозможно.
- Образы с нестандартными контейнерами или нестандартными подписью/шифрованием: потребуют macOS.
Мини‑методология: как подойти последовательно
- Попробуйте извлечение архивными утилитами (7z, bsdtar).
- Если неудача — конвертируйте (dmg2img).
- Определите структуру разделов (fdisk).
- Свяжите образ с loop и смонтируйте нужный раздел.
- Если есть проблемы с файловой системой — используйте hfsprogs / hfsplus‑tools.
- В крайнем случае — macOS VM.
Примеры конкретных команд (с пояснениями)
Конвертация и монтирование — полный пример:
# конвертируем
dmg2img myfile.dmg -o myfile.img
# подключаем loop с поддержкой разделов
sudo losetup --find --show -P myfile.img
# допустим, вернулось /dev/loop3
# смотрим разделы
sudo fdisk -l /dev/loop3
# монтируем нужный раздел (например /dev/loop3p2)
sudo mkdir -p /mnt/dmg_mount
sudo mount -o ro /dev/loop3p2 /mnt/dmg_mount
# после работы
sudo umount /mnt/dmg_mount
sudo losetup -d /dev/loop3Если fdisk сообщает, что image.img не содержит таблицу разделов, попробуйте монтировать напрямую через loop.
Польза и ограничения каждого подхода (Impact × Effort)
- 7z/bsdtar: малые усилия, высокая вероятность успеха для простых DMG, но ограниченная совместимость.
- dmg2img + mount: средние усилия, хорошая совместимость с HFS+, требует понимания разделов.
- hfsprogs: нужен для полноценной работы с HFS+, требует установки, иногда нестабилен для журналируемых томов.
- macOS VM: большие усилия, максимальная совместимость — рекомендуется для сложных/зашифрованных образов.
Решающее дерево действий
flowchart TD
A[Есть DMG?] --> B{Пробовать 7z/bsdtar}
B --> |Успешно| C[Извлечь и завершить]
B --> |Неудачно| D{Образ сжат/спец.формат}
D --> E[dmg2img -> image.img]
E --> F{Есть разделы?}
F --> |Да| G[losetup -P / kpartx -> mount нужного раздела]
F --> |Нет| H[mount -o loop,ro image.img]
G --> I[Примонтировано?]
I --> |Да| C
I --> |Нет| J{HFS+/APFS/зашифрован}
J --> |HFS+| K[Попробовать hfsprogs, mount -t hfsplus -o ro,force]
J --> |APFS/зашифрован| L[Использовать macOS VM]
K --> I
L --> CЧастые ошибки и их решения
- «bad file system type»: образ сжат — запустите dmg2img.
- «mount: unknown filesystem type ‘hfsplus’»: установите hfsprogs или hfsplus-tools.
- Права доступа: используйте sudo при монтировании и работе с loop‑устройствами.

Изображение: человек решает проблему с монтированием образа.
Примеры GUI‑варианта
Некоторые десктопы позволяют монтировать образ через контекстное меню. В Linux Mint это может называться «Открыть с помощью Диспетчера образов дисков». GUI удобно для простых IMG/ISO после конвертации. Если образ содержит несколько разделов, GUI может не распознавать нужный раздел.

Изображение: графический менеджер отображает примонтированный образ.
Когда лучше использовать macOS VM
- Образ зашифрован или защищён паролем.
- В образе используется APFS или другие новейшие функции macOS.
- Нужна гарантия целостности и возможность безопасно изменять образ.
macOS предоставляет родные утилиты (Disk Utility, hdiutil), которые корректно работают с любыми DMG и позволяют монтировать, конвертировать и расшифровывать образ.
Короткая галерея крайних случаев
- DMG с несколькими снапшотами или вспомогательными томами — лучше macOS.
- DMG, созданный специализированными инсталляторами (с нестандартными шейками) — может потребоваться оригинальная среда.
- Маловероятно, но возможны проприетарные расширения Apple, которые Linux не поддерживает.
FAQ
Можно ли просто изменить DMG напрямую на Linux?
Изменять DMG‑файл напрямую рискованно. Работайте с копией образа и по возможности монтируйте в режиме только чтение.
Работает ли 7‑Zip для всех DMG?
Нет. 7‑Zip работает с некоторыми DMG, особенно если внутри они хранятся как архивы. Для сжатых/зашифрованных/разделённых образов 7‑Zip может оказаться недостаточно.
Как понять, зашифрован ли образ?
Команда file image.dmg и попытка открыть образ при помощи dmg2img/7z могут подсказать. Если утилиты требуют пароль или вы видите тип «encrypted», значит нужен пароль или macOS.
Итог и рекомендации
- Начните с простого: попробуйте 7z или bsdtar для быстрого извлечения.
- Если это не сработало, конвертируйте DMG в IMG через dmg2img, затем смонтируйте через loop/losetup/kpartx.
- Установите hfsprogs / hfsplus‑tools для корректной работы с HFS+.
- Для зашифрованных или APFS‑образов используйте macOS VM — это самый надёжный путь.
Важно: всегда делайте копию образа перед экспериментами и действуйте в режиме read‑only, если не уверены.
Краткое резюме:
- DMG — формат macOS; на Linux извлечение возможно, но требует дополнительных шагов.
- dmg2img и losetup/kpartx — основные инструменты для надёжного монтирования.
- macOS VM — последний и наиболее совместимый вариант для сложных образов.

Изображение: сообщение об ошибке «bad file system type» при попытке монтирования.
- Всегда работайте с копией образа.
- Не пытайтесь записывать в неизвестные тома без резервной копии.

Изображение: пример использования команды file для определения типа образа.
Похожие материалы
Запуск Android‑приложений в Windows 11 без Insider
MyHeritage: обзор и руководство по дереву
Windows 11 Enterprise VM в VirtualBox — установка и устранение ошибок
Как исправить ошибку Outlook 0x80040610
Как получать платежи через Payoneer