Команда dd mac os

Обновлено: 05.07.2024

Приветствуются как командные строки, так и ориентированные на экран указатели!

Обновить:

Я проверил дисковые утилиты, методы hdiutil и dd. Дд кажется самым быстрым, 30 минут на моем MacBook Pro против 40 минут для hdiutil. Я был в состоянии упростить дд использовать только if= и of=

Для DVD я использовал / dev / disk2. Я проверил это diskutil list и размонтировал это первым.

почему вы размонтировали disk2? Я думал, что вам нужно оставить подключенный DVD-привод, чтобы вы могли читать данные с него? @ Pure.Krome, для этой цели / dev / disk2 - это файл размером несколько ГБ. Структура каталогов встроена в эти байты. IIRC, мне пришлось размонтировать, чтобы прочитать / dev / disk2. Я должен был использовать sudo diskutil unmount /dev/disk2 не sudo umount /dev/disk2 В моем случае мне пришлось сделать следующее (OSX 10.9.5): sudo umount / dev / disk3s0; sudo dd if = / dev / disk3s0 из = mydisk.iso

Как правило, существует четыре способа создания образа диска в окне OS X:

Дисковая утилита - подсказки на экране помогут вам, но по умолчанию она создаст .dmg, который является форматом файла, специфичным для OS X. Дисковая утилита также создаст ISO (расширение .cdr), если вы выберете опцию «CD / DVD Master» перед созданием образа. При желании вы можете переименовать расширение (.iso) после создания.

Roxio Toast - де-факто сторонний стандарт в создании оптических носителей на Mac OS уже более десяти лет, он будет создавать практически любой формат CD или DVD, который вы хотите.

hdiutil Утилита командной строки, которая, по сути, создавать каждый формат , который поддерживает Toast, бесплатно, хотя это гораздо менее красиво. Если вы хотите создать ISO с помощью этого инструмента, используйте hdiutil makehybrid -iso -joliet -o Image.iso /input_path

Существует четвертый, чрезвычайно прямой способ командной строки, с помощью dd которого системные администраторы могут знать: dd if=/dev/disk1 of=Image.iso

Для аудио CD работает hdiutil. Дисковая утилита и dd не работают (файл .iso может быть создан, но не может быть смонтирован позже). используя dd , я получаю файл ISO, который немного больше (около 500 КБ), чем ISO, разорванный с помощью Дисковой утилиты . и я попытался снова на ПК, и получил тот же размер, что dd получил . так что я полагаю, dd делает лучше работа по dd - это прямая копия, где hdiutil, вероятно, использует формат iso для небольшого сжатия . Я не думаю, что на самом деле что-то потеряно .

Это должно сделать это!

Способ превзойти меня;) Это самое элегантное решение с минимальными накладными расходами. Смотрите мои другие ниже. Теперь, когда я думаю об этом, решение, которое я привел ниже с помощью hdutil, несколько проще, так как вы можете использовать буквальный путь, не зная назначения / dev устройства, что полезно, если вы хотите использовать его только для папки или внешний жесткий диск, или несколько оптических устройств.

/dvd.iso здесь работает?

чтобы это решение работало, вам нужно знать имя устройства, которое вы можете узнать, набрав «df» в терминале и найдя ваш CD / DVD в списке. Затем выберите имя устройства, которое отображается слева. Затем отключите устройство с помощью команды «sudo umount / dev / YOUR_DEVICE_NAME», а затем используйте метод копирования dd, описанный выше, чтобы выполнить копирование.

На самом деле Дисковая утилита создаст ISO (расширение .cdr). Просто убедитесь, что вы выбрали опцию «CD / DVD Master» перед созданием образа.

Затем этот файл можно использовать, как и любой другой файл ISO, требующий переименования только для некоторых глупых приложений Windows, которые не соответствуют расширению .cdr.

Использовать этот метод целую вечность без проблем.

Я создал .cdr, он был автоматически подключен к Mac OS. Я скопировал туда все файлы с загрузочной флешки. Демонтированный. Попытка смонтировать в Virtual Box: Could not get the storage format of the medium '/Users/nakilon/_/mrddr_flash_diskutil_dvdmaster.iso' (VERR_NOT_SUPPORTED). Я получил ту же ошибку - интересно, будет ли она работать в Windows (не в виртуальных окнах). Кроме того, это была Windows 10 на виртуальной коробке.

Как уже упоминалось в других ответах, вы можете использовать Дисковую утилиту или dd создать ISO-образ исходного диска. Но если диск защищен от копирования, он содержит ключи дешифрования в начальной области диска, которые не могут быть прочитаны напрямую, и не являются частью образа ISO. Поэтому, если вы записываете новый диск с этим изображением, он не будет воспроизводиться на стандартном DVD-плеере. Тем не менее, вы можете играть в нее, используя программу типа VLC, которая не нуждается в ключах, так как она способна обойти шифрование.

Если вам нужна программа, которая будет копировать диск на жесткий диск, а также снимать защиту от копирования, чтобы вы могли записать ее на новый незащищенный диск, MacTheRipper сделает это, но похоже, что она не обновлялась в течение некоторого времени. , (В списке указана только версия PowerPC.)

Для хранения на жестком диске может оказаться более полезным перекодировать контент в незашифрованный H.264 с помощью Handbrake . Это сэкономит вам много места на диске по сравнению с хранением контента MPEG-2, используемого на дисках DVD-Video. Однако это не сохранит меню DVD, и если вы хотите записать DVD, который можно воспроизводить на стандартном DVD-проигрывателе, вам придется преобразовать его обратно в MPEG-2.

1. Дисковая утилита

Вставьте флешку или карту в Mac. Откройте Дисковую Утилиту. В панели со списком устройств выберите нужный том на устройстве. В моём случае это том на флешке JetFlash Transcend 16GB Media с именем ”Install macOS Sierra”. Это загрузочный носитель для установки macOS Sierra.



И в следующем окне, выберите имя для образа устройства, место для сохранения и нажмите Сохранить, ничего не меняя больше:


Введите пароль. Начнется процесс создания и образ устройств будет создан.






Получите файл, равный по размеру объему всей суммарной информации на диске. В моем случае — 5,09 Гб. Вот сведения о нём по команде file:





Начните процесс восстановления, нажав кнопку “Восстановить”.



2. Терминал и команда dd

Команду dd можно использовать для:

  1. Создания образа из устройства, в том числе, с SD-карт и диски USB-flash.
  2. Записи информации из образа на устройства.

Все ниже перечисленные действия будут в Терминале, с использованием консольной версии Дисковой Утилиты и dd.

Создание и восстановление образа командой dd

Логика процедуры следующая:

  1. Запустить Терминала
  2. Получить список устройств командой diskutil
  3. Отсоединить устройство от файловой системы, без его физического извлечения
  4. Создать образ устройства командой dd
  5. Восстановить (развернуть) образ на устройство командой dd

А теперь обо всем по порядку в деталях.

Получение информации о списке устройств

Откройте Терминал и введите команду чтобы посмотреть спитое устройств в вашей системе:

В моём случае (есть права администратора), вывод этой команды был такой:

Моя USB-флешка емкость 16Гб отображается в системе как внешнее физическое (external, physical) устройство по адресу /dev/disk2.

Размонтирование устройства

С примонтированным к файловой системе устройством работать не получится. Поэтому, отсоедините диск от файловой системы командой:

В ответ получите фразу “Unmount of all volumes on disk2 was successful”.

Создание образа устройства командой dd

И наконец, создайте образ нужного устройства, введя следующую команду:

Как вы поняли, USERNAME и Desktop — моё имя пользователя и папка назначения. Замените их на то, что нужно в вашем случае. Кроме того, if=/dev/disk2 — означает что входом (if, input file) у нас будет устройство disk2, выходом (of, output file)— файл с именем backup.16Gb.macOSSierra.img.dd в указанной папке, а bs — это размер блока в байтах, который будет последовательно считывать команда. В моих примерах он равен 512 байт, 1Мб и 64Кбайт соответственно. Потом, спросят пароль и начнется создание образа. Чем больше размер устройства (файла) на входе, тем больше будете ждать завершения выполнения команды. Это может занять ОЧЕНЬ много времени. Введя первую команду, я ждал примерно час. Вывод команды будет примерно такой:

. Выходной файл образа получается таким же размером как емкость устройства. Учтите этот факт!

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

Чтобы проверить что мы имеет в итоге, выполните команду:

Увидите что-то типа:

Запись dd-образа обратно на устройство

Синтаксис будет такой:

Первая и вторая строки, думаю, вам понятны из предыдущих примеров. Третья — это команда восстановления. Четвертая — тоже команда восстановления, но при условии того, что образ был предварительно сжат. Узнать больше про команду dd можно почитав справку в man:

Дисковой Утилитой гораздо проще, быстрее и экономичнее создать образ, и позже, развернуть его на устройство. Размер образа на выходе будет равен объему полезной информации на исходном устройстве. Вы получите файл с расширением .dmg, понятным системе без лишних слов.

Командой dd можно создать точную посекторную копию устройства (тома, файла). Размер файла равен ёмкости устройства. Файлу нужно самому присвоить понятное имя и не забыть что потом с ним делать. Процедура сравнительно более продолжительна по времени, чем процедура с Дисковой утилитой. Можно сжать образ на лету командой gzip.



В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.

Начну с небольшого примера, наглядно иллюстрирующего основные параметры команды:

  • if: указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
  • of: указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
  • bs: количество байт, которые будут записаны за раз. Можно представлять этот аргумент как размер куска данные, которые будут записаны или прочитаны, а количество кусков регулируется уже следующим параметром.
  • count: как раз то число, которое указывает: сколько кусочков будет скопировано.

Создание образа диска:

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

Параметр «conv» позволяет подключать несколько фильтров, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать. Точно таким образом я спас данные со своей флешки Corsair, которую погнули: подобрал подходящее положение, когда контакт есть, и сделал дамп файловой системы.
Подключить, кстати, такие образы можно при помощи команды mount с ключем "-o loop":

Если что-то не получается, процесс разбивается на 2 уровня:

Если и так не работает, значит файловая система образа полетела.

Работа с носителями информации

Очень простое, хоть и не оптимальное решение клонирования жесткого диска:

Все то же побайтовой копирование с размером буфера 4 Кб. Минус способа в том, что при любой заполненности разделов копироваться будут все биты, что не выгодно при копировании разделов с маленькой заполненностью. Чтобы уменьшить время копирования при манипуляции с большими объемами данных, можно просто перенести MBR на новый носитель (я ниже опишу как), перечитать таблицу разделов ядра (при помощи того же fdisk), создать файловые системы и просто скопировать файлы (не забыв сохранить права доступа к файлам).

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

Когда-то читал исследование, согласно которому очень большая доля жестких дисков на барахолке подвергается восстановлению данных без привлечения чего-то специализированного, и содержит конфиденциальную информацию. Чтобы на носителе ничего нельзя было восстановить — можно забить его нулями:

Думаю, понятно на что нужно заменить DEVICE. После проведения лекций по Linux, я очень тщательно стал следить за тем, что пишу.
Проверить можно тем же dd, но преобразовав данные в hex:

Должны посыпаться нули.

Операции с MBR

MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так:

Восстановить можно проще:

Причины этих махинаций с MBR могут быть разные, однако хочу рассказать одну особенность, взятую из опыта: после восстановления давней копии MBR, где один из разделов был ext3, а позже стал FAT и использовался Windows, раздел перестал видиться виндой. Причина — ID раздела, который хранится в MBR. Если UNIX монтирует файловые системы согласно суперблоку, то винды ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk, особенно если на компьютере есть винды.

Генерация файлов

При помощи dd можно генерировать файлы, а затем использовать их как контейнеры других файловых систем даже в зашифрованном виде. Технология следующая:
При помощи dd создается файл, забитый нулями (случайными числами забивать не рационально: долго и бессмысленно):

Создался файл размером почти в гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выберу алгоритм blowfish. Подгрузка модулей:

Ассоциация образа с блочным устройством со включенным шифрованием:

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

Образ готов к записи данных. После завершения работы с ним, нужно не забыть его отмонтировать и отключить от блочного loop устройства:

Теперь шифрованный образ готов.

Основные идеи я расписал, однако множество задач, которые можно решить при помощи маленькой программки, имя которой состоит из двух букв, намного шире. Программа «dd» — яркий пример того, что IT'шники называют «UNIX way»: одна программа — часть механизма, выполняет исключительно свою задачу, и выполняет ее хорошо. В руках человека, который знает свое дело, которому свойственен не стандартный подход к решению задачи, такие маленькие программки помогут быстро и эффективно решать комплексные задачи, которые, на первый взгляд, должны решать крупные специализированные пакеты.


Команда dd — серьезный старожил в системах, основанных на UNIX. Ее главное предназначение — это побайтовое копирование. Но благодаря ее гибкости и широчайшему выбору настроек dd можно использовать для массы других вещей: бэкапить диски, восстанавливать данные из бэкапов, переносить MBR и делать еще многие интересные штуки.

Наиболее распространенный вариант использования выглядит примерно так:

В данном случае синтаксис довольно прост. Параметр if указывает на источник, то есть на то место, откуда копируем. Значение может быть как обычным файлом, так и файлом устройства ( /dev/cdrom ). Параметр of указывает на файл назначения. Принцип тот же: писать можно как в обычный файл, так и напрямую в устройство.

После выполнения такой команды тулза сделает копию диска с названием image.iso . Но бывает, что диск битый и при появлении ошибки операция записи прервется. Чтобы этого не произошло, можно воспользоваться ключом conv=noerror .

Он отключает остановку работы программы, когда та наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать. Тот же синтаксис применяется для клонирования диска.

В качестве источника и назначения здесь указываются устройства. Главное — не ошибиться и не перетереть свой же диск. Еще добавился параметр bs . По сути, это то же побайтовое копирование, только с установленным размером буфера 4 Кбайт. В данном случае плохо одно: если на диске в 2 Гбайт занято 100 Мбайт, будет сделан образ в 2 Гбайт независимо от размера данных.

Если необходимо скопировать MBR диска, выполни в консоли следующую команду:

А восстановить область можно более простой командой:

Разберем подробнее ключ bs . Он задает количество байтов, которые будут записаны за один раз. Более абстрактно его можно представлять как размер куска данных, которые будут записаны или прочитаны. Параметр count определяет количество кусков, которые должны быть скопированы.

Вот еще один полезный трюк. Если мы хотим забить диск нулями, то можем написать следующее:

Теперь данные нельзя будет восстановить.

Также dd применяют для разнообразной автоматизации, например для бэкапов по расписанию.

Читайте также: