Аналог dd для windows

Обновлено: 01.07.2024

Мы опишем, как создавать резервные копии данных на виртуальном сервере под ОС Windows Server с помощью специальной утилиты DD.

Несколько слов о резервном копировании файлов

Резервное копирование — это метод создания резервной копии важной информации на компьютере или сервере. Это может быть выполнено вручную или автоматически по обычному расписанию.

Утилита DD может использоваться для операционных систем семейства Linux; его команды помогают копировать файлы через определенные операнды. Это одна из старейших утилит, ее резервные копии можно открывать с помощью самых разных программ. Версия для операционной системы Windows менее функциональна, чем версия для Linux. Например, в нем отсутствует поддержка преобразования файлов и использования блочных устройств.

Как скачать утилиту

Загрузить утилиту DD (скачать), так как это стороннее программное обеспечение, широко доступное для пользователей.

В скачанном архиве будет несколько файлов; приложение dd.exe позволит вам запустить утилиту.


Как использовать

Использование DD в системах Windows очень похоже на использование его в командной строке Linux.

Для открытия страницы с помощью необходимо перейти в каталог с нужным объектом, а после открытия консоли PowerShell ввести:

Если вам нужна резервная копия жесткого диска вместе со всей хранящейся на нем информацией, вам пригодится эта строка:

./dd.exe if= of= bs=1440k

Демонстрация создания образа диска F и переноса его на диск E:

./dd.exe if=.f: of=e:tempdisk1.img bs=8M

rawwrite dd для Windows версии 0.5.

Автор: Джон Ньюбигин

На эту программу распространяется GPL. Подробнее см. в файле copying.txt

7279+1 запись в

7279+1 записей

Расшифровать запись:

  1. Строка if =/dev/sda отвечает за копирование всего жесткого диска sda.
  2. Выражение bs=8M поможет вам установить определенный объем кэш-памяти на жестком диске, что ускорит процесс копирования данных. В противном случае информация начнет передаваться небольшими размерами, примерно по 512 байт.
  3. Место, куда будет скопирован файл, указывается командой =/mnt/backup/sda.img. Первые два выражения обозначают точку монтирования HDD для хранения образа, то есть папку mnt с подпапкой backup.

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

Команда поможет восстановить HDD из резервной копии:

./dd.exe if= of= bs=8M

./dd.exe if=e:tempdisk1.img of=.f: bs=8M

rawwrite dd для Windows версии 0.5.

Автор: Джон Ньюбигин

На эту программу распространяется GPL. Подробнее см. в файле copying.txt

1279+1 запись в

1279+1 записей

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

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

Эта версия на самом деле не выполняет никаких преобразований, но позволяет гибко копировать данные в среде win32. На данный момент блочные устройства под Win9x не поддерживаются, но скоро это будет добавлено.

Использование

dd [bs=РАЗМЕР[СУФФИКС]] [количество=БЛОКОВ[СУФФИКС]] if=ФАЙЛ из=ФАЙЛА [искать=БЛОКИ[СУФФИКС]] [пропустить=БЛОКИ[СУФФИКС]] [--размер] [-- список] [--прогресс]

bs — размер блока. Размер блока может быть указан в байтах или с одним из следующих суффиксов

< tr>

Размер блока по умолчанию — 512 байт, что подходит для большинства файлов и устройств, но копирование будет выполняться намного быстрее, если вы используете больший размер блока. Например, чтение дискеты с bs=1k count=1440 занимает почти в два раза больше времени, чем при использовании bs=1440k count=1 . Не делайте размер блока слишком большим, потому что окнам не хватит памяти. 1M, вероятно, хороший размер и верхний предел. Большинство дисков CD/DVD имеют размер сектора 2 КБ и, вероятно, не будут работать с размером блока, который не кратен этому размеру.

skip — это расстояние, на которое нужно пропустить входной файл перед началом чтения. Это в блоках, поэтому расстояние будет skip * blocksize. Вы также можете использовать здесь суффикс, чтобы skip=1k пропускал 1024 блока. Вы можете вспомнить, что пропуск относится к входному файлу, думая о «скакалке».

seek — это расстояние, на которое необходимо выполнить поиск в выходном файле перед началом записи. Кроме того, в блоках расстояние будет искать * размер блока. Вы также можете использовать здесь суффикс, поэтому seek=1k будет искать 1024 блока. Вы просто должны помнить, что если пропуск для входа, то поиск для выхода.

count – это количество копируемых блоков. Если он не указан, то dd будет продолжаться до тех пор, пока не будет достигнут конец файла/устройства. На многих USB-устройствах это ненадежно, поэтому вы должны использовать --size, чтобы угадать размер устройства, см. ниже. Вы также можете использовать здесь суффикс, чтобы count=1k скопировал 1024 блока.

Использование --size

Традиционно при использовании dd, если вы хотите скопировать все устройство, вы не указываете количество блоков, и dd будет считывать до тех пор, пока не достигнет конца устройства. Если вы попытаетесь прочитать дальше конца устройства, будут возвращены данные до конца устройства, и если вы продолжите чтение, вы получите сообщение об ошибке. Windows, однако, не всегда делает это, поэтому --size скажет dd выяснить размер устройства и убедиться, что он не читает дальше этой точки. Это важно для USB-накопителей, которые перестают работать, если вы читаете дальше их конца. Это не включено по умолчанию, потому что получить правильный размер устройства не всегда возможно. Некоторые устройства также продолжают возвращать ложные данные за пределы устройства, не возвращая подходящего кода ошибки

Использование --list

В Windows предусмотрено несколько способов присвоения имени устройству. --list выведет предпочтительные имена. В NT4 доступен только метод \\?\Device\Harddisk\Partition. Partition0 — это весь диск. В Windows XP некоторые разделы могут не иметь тома. В этом случае вы все равно можете использовать имя жесткого диска\раздела.

В Windows 2000 и более поздних версиях есть тома с уникальными идентификаторами GUID, которые идентифицируют диск или раздел (то, что MS называет томом). Они перечислены вместе с любой точкой монтирования, на которую они могут быть установлены. В большинстве случаев это буква диска, но это может быть и путь в другой файловой системе. Если вы хотите прочитать базовое устройство, не включайте завершающий символ \. Если том не смонтирован, нет простого способа определить его, поэтому будьте осторожны. В XP SP2 многие разделы не могут быть прочитаны напрямую, даже если они не используются. Есть обходной путь, который я называю чтением разделов через черный ход.

dd --list rawwrite dd для Windows версии 0.4beta1. Автор John Newbigin На эту программу распространяется GPL. Подробности см. в файле copying.txt Win32 Доступная информация о томе \\.\Volume\ ссылка на \\?\Device\HarddiskVolume1 фиксированный носитель Установлен на \\.\c: \\.\Volume\ ссылка на \\?\Device\CdRom0 CD-ROM Установлен на \\.\r: \\.\Volume\ ссылка на съемный носитель \\?\Device\Floppy0 Установлен на \\.\a: \\.\Volume\ ссылка на \\?\Device\ Harddisk1\DP(1)0-0+3 съемный носитель Смонтирован на \\.\d: NT Block Device Objects \\?\Device\CdRom0 \\?\Device\Floppy0 \\?\Device\Harddisk0\Partition0 ссылка на \\?\Device\Harddisk0\DR0 Фиксированный носитель на жестком диске. Размер блока = 512 \\?\Device\Harddisk0\Partition1 ссылка на \\?\Device\HarddiskVolume1 \\?\Device\Harddisk1\Partition0 ссылка на \\?\Device\Harddisk1\DR2 Съемный носитель, кроме дискеты. Размер блока = 512 \\?\Device\Harddisk1\Partition1 ссылка на \\?\Device\Harddisk1\DP(1)0-0+3 Съемный носитель, кроме дискеты. Размер блока = 512 виртуальных устройств /dev/zero /dev/random

Использование --progress

--progress — это нестандартное усовершенствование dd, которое показывает прогресс по мере копирования каждого блока.

Виртуальные устройства

Виртуальные устройства — это новая функция версии 0.4beta1.

Поскольку в Windows нет таких устройств, как unix /dev/zero или /dev/random, они были реализованы внутри dd. Вы можете использовать их в качестве входных файлов для предоставления бесконечного количества нулей или псевдослучайных данных.

Стандартный ввод-вывод

Стандартный ввод (stdin) теперь является входным файлом по умолчанию, если вы не укажете значение для if . Вы также можете явно использовать стандартный ввод с if=- . Стандартный вывод (stdout) теперь является выходным файлом по умолчанию, если вы не укажете значение для . Вы также можете явно использовать stdout с of=- . Сообщения о ходе выполнения и ошибках записываются в стандартную ошибку (stderr). Это позволяет использовать dd с командами конвейера.

Безопасность с --filter=

ОписаниеСуффиксРазмер
Символыc1
Словаw2
Двойные словаd4
Квадратные словаq8
Килобайтk1024
МегабайтыM1 048 576
ГигабайтыG1 073 741 824
фиксированный Запись только на фиксированный диск
removable Запись только на съемный диск
диск Запись только на любой диск
раздел Запись только на раздел

Вы можете применить фильтр, переименовав dd.exe в dd-.exe. Например, dd-removable.exe может записывать только на съемные диски, такие как USB и CF, чтобы вы случайно не записали на фиксированный жесткий диск.

Примеры

Создайте образ дискеты:

dd if=\\.\a: of=c:\temp\disk1.img bs=1440k

Запишите образ обратно на дискету:

dd if=c:\temp\disk1.img of=\\.\a: bs=1440k

Копировать .iso с компакт-диска

dd if=\\?\Device\CdRom0 of=c:\temp\disc1.iso bs=1M

Чтение раздела с USB-накопителя

Чтение всего USB-накопителя

dd if=\\?\Device\Harddisk1\Partition0 of=c:\temp\usb2.img bs=1M --size --progress

Вы можете писать в любой файл или блочное устройство, на которое Windows позволяет вам писать. Вы можете использовать стандартную нотацию \\.\ для экспортированных устройств win32 или специфичную для dd нотацию \\?\ для доступа к родным устройствам Windows.

Примечание. Вы не можете записывать данные на компакт-диск с помощью этой программы. Получите Microsoft cdburn из комплекта ресурсов Windows XP.

Примечание. Гибкие диски крайне ненадежны. Если вы получаете ошибки, попробуйте другую дискету или переформатируйте диск.

Загрузки для семейства dd < tr>
Программа Версия Содержимое Формат Платформа Загрузить
Инструкции по установке
dd 0.6beta3 Двоичный .zip Windows dd-0.6beta3.zip
dd 0.6beta3 Источник .zip Delphi dd- 0.6beta3.src.zip
dd 0.6beta1 Источник .zip Delphi dd-0.6beta1.src.zip
dd 0.5 Двоичный .zip Windows dd-0.5.zip
dd 0.4beta4 Двоичный .zip Windows dd-0.4beta4.zip
dd 0.4beta4 Источник .zip Delphi dd-0.4beta4 .src.zip

Изменения в версии 0.6beta3

  • добавить код выхода уровня ошибки
  • прогресс записывается в stderr

Изменения в версии 0.6beta2

  • Реализован параметр of=/dev/null, который просто отбрасывает данные
  • пропустить стандартный ввод теперь работает
  • исправить проверку размера гибких дисков

Изменения в версии 0.6beta1

  • --вывод прогресса в тех же единицах, что и bs, указанная с помощью
  • новый тип фильтра "файл", который будет записывать только в файл файловой системы
  • новая функция >/od= для входного и выходного дисков. если это единственный раздел на диске, то выбирается весь диск. Например: если вы вставляете USB-диск, и он монтируется как f:, тогда 'id=f:' выберет USB-диск (а не только раздел, например if=\\.\f:)

Изменения в версии 0.5

  • для подсчета, поиска и пропуска теперь может использоваться мультипликативное суффикс, например bs
  • stdin и stdout теперь используются по умолчанию

Изменения в версии 0.4beta6

  • Реализовано =- для стандартного вывода
  • Переименован в if=- для стандартного ввода.
  • Сообщения теперь выводятся в stderr

Изменения в версии 0.4beta5

  • Если запись частичного блока не удалась, буфер дополняется до конца блока и попытка записи повторяется
  • Это позволяет записывать на диск образы дисков, не кратные размеру блока.

Изменения в версии 0.4beta4

Изменения в версии 0.4beta2

  • —list показывает размеры дисков и разделов
  • – добавлен размер

Изменения в версии 0.4beta1

  • ---список показывает правильный синтаксис букв дисков
  • добавлены виртуальные устройства

Изменения в версии 0.3

  • Изменено собственное сканирование устройств для поиска устройств с несмежными номерами.
  • Показывать места назначения символических ссылок при сканировании устройства
  • Открыть исходный файл с помощью FILE_SHARE_READ
  • Глупая ошибка при открытии собственных устройств вывода (назначается дескриптор ввода вместо вывода)
  • Глупая ошибка, из-за которой собственные устройства всегда были доступны только для чтения.
  • добавлен индикатор выполнения

Альтернативные версии

Это список других инструментов dd для окон из других проектов:

Это список других инструментов dd для Linux/Unix:

Лицензия и авторские права

dd принадлежит Chrysocome и John Newbigin. Он доступен на условиях GPL. Другие лицензии доступны по запросу.

Разработка этого проекта финансируется за счет пожертвований. Если вам это нравится, пожалуйста, пожертвуйте. Всего 5 долларов США могут обеспечить поддержку dd в будущем.

Я использовал метод dd, и он записал iso на USB-накопитель, но я не уверен, что это все, что мне нужно сделать, потому что это Windows и может не иметь GRUB, и я не уверен, поэтому я спрашиваю эксперты.

winusb не работает для Windows 10, так что это отличается от предыдущих вопросов.


8 ответов 8

Я перепробовал все способы в этой ветке, и ни один из них не работал (а если серьезно, то вопрос конкретно о записи на USB-ключ, почему люди вместо этого предлагают скопировать ISO на другой раздел ??) .

Решение, которое помогло мне (при условии, что ваш USB-накопитель /dev/sdc ):

  • Запустить gparted
  • Создайте новую таблицу разделов на sdc, введите msdos
  • Создайте раздел NTFS, установите на нем флаг загрузки
  • Извлеките iso (можно сделать с помощью 7z x windows10.iso )

Скопируйте содержимое (через cp , rsync , графический интерфейс и т. д.) в смонтированный раздел NTFS (обязательно /dev/sdc1 )

sudo ms-sys -7 /dev/sdc .

Без ms-sys мигающий курсор при загрузке, когда USB-ключ вставлен.

При этом появляется логотип Windows.


Вам не нужен USB, DVD или другой внешний носитель для установки установочного диска Windows 10 (ISO), начиная только с установки Ubuntu. Можно извлечь образ или файл ISO в раздел одного из ваших жестких дисков, желательно не тот, который вы будете использовать для новой установки Windows, и использовать его.

Для следующих шагов должна присутствовать рабочая конфигурация GRUB:

Убедитесь, что у вас есть загрузочный и отформатированный раздел NTFS. Ниже раздел будет обозначаться (hd0,5), где hd0 — это содержащий жесткий диск с разметкой таблицы разделов MSDOS или MBR.

Монтирование образа облегчит извлечение его содержимого. Если Disk Image Mounter отказывается монтировать iso-файл, вы всегда можете использовать эту команду для монтирования любого iso-файла:

Скопируйте содержимое нового кольцевого устройства в раздел NTFS.

Теперь добавьте запись GRUB для Windows 10. Это позволит загрузчику GRUB найти установочный диск, содержащийся в разделе. Откройте /boot/grub/grub.cfg в текстовом редакторе от имени пользователя root и добавьте эти строки

при необходимости соответственно измените корень.

Сохраните и перезагрузите компьютер. Загрузитесь в нужный пункт вашего обновленного меню GRUB.


@ThisNameBetterBeAvailable Почему извлечение на USB-накопитель не нужно для «записи ISO-образа Windows 10 на USB-накопитель», как просил первоначальный автор запроса. Возможно, они захотят использовать это на нескольких компьютерах.

@jbo5112 Это не было упомянуто в вопросе, поэтому он принял его цели и попытался помочь ему в этом.

Вы можете скопировать все содержимое ISO на флешку и сделать ее загрузочной.

Итак, прежде всего, установите GParted из программного центра или из терминала:

Затем откройте его из панели управления или терминала:

После этого выберите флешку в меню в правом верхнем углу. Должен быть один раздел. Если у вас нет данных для резервного копирования, переформатируйте его в ntfs (bootmgr не работает прямо на фат32), нажмите «Применить» (галочка в меню шапки). Щелкните раздел правой кнопкой мыши, выберите «Управление флагами» и проверьте загрузку .

Затем вы можете смонтировать его через файловый менеджер (по умолчанию для GNOME и Unity используется nautilus).

Смонтируйте файл ISO:

Затем вы можете скопировать все содержимое из точки монтирования ISO на флешку через файловый менеджер.

Перезагрузите компьютер и установите флэш-накопитель USB для загрузки в первую очередь.


Да, я пытался загрузить его, но, похоже, это не сработало. Можете ли вы дать мне список команд, которые вы использовали?

Это ответвление WinUSB.

Если вы не были уверены, то как вы можете утверждать, что метод dd сработал? Кроме того, это не так. Вы должны использовать Rufus, чтобы сделать USB-накопитель загрузочным; не то, чтобы я препятствовал практике dd, поскольку мы говорим о Windows, я считаю, что лучше всего использовать Rufus, чтобы справиться с этим за вас.

Если у вас уже установлена ​​Windows, загрузитесь в нее и выполните следующие действия, иначе используйте виртуальный бокс.

вам понадобится флэш-накопитель емкостью не менее 4 ГБ (8 ГБ для 64-разрядной версии).

--> Загрузите и запустите Rufus, затем вставьте флешку, убедившись, что на ней нет важных данных. (Он вот-вот будет стерт.) Rufus должен автоматически обнаружить диск и указать его в поле «Устройство». (Если нет, выберите диск вручную.)

--> Обратите внимание на флажок "Создать загрузочный диск с помощью". Щелкните значок диска в крайнем правом углу, затем перейдите туда, где вы сохранили ISO-файл Windows 10. Выберите его и нажмите «Пуск». (Все остальные настройки по умолчанию в Rufus должны быть в порядке.)

--> Это займет некоторое время, возможно, до 20-30 минут. Не пугайтесь (или не смущайтесь), если для флешки появится окно проводника; просто оставьте его в покое, пока Руфус не сообщит "ГОТОВО". Затем вы можете закрыть окно программы и диска и удалить диск.

--> Теперь пришло время для старого ПК. Вставьте флэш-накопитель в USB-порт, затем включите систему. Скорее всего, он не будет настроен на загрузку с внешнего диска по умолчанию, поэтому вам может потребоваться перейти в меню запуска или в BIOS во время POST. В конечном итоге нужно заставить машину загружаться с флешки. Сделав это, перезагрузитесь и следуйте инструкциям по установке Windows.

Аналогово-цифровой преобразователь (АЦП) — это устройство, которое может считывать аналоговое значение входного напряжения и преобразовывать его в цифровое значение. АЦП используются для считывания значений с термисторов, потенциометров и других устройств, которые изменяют сопротивление в зависимости от определенных условий.

Предпосылки

  • Raspberry Pi (2 или более поздней версии) с установленным аналого-цифровым преобразователем Raspberry Pi OS
  • Трехконтактный потенциометр
  • Макет
  • Перемычки
  • Разветвительная плата Raspberry Pi GPIO (необязательно/рекомендуется) 6 или более поздней версии

Подготовка Raspberry Pi

Используйте команду raspi-config, чтобы убедиться, что следующие две службы включены:

Дополнительную информацию о raspi-config см. в документации Raspberry Pi.

Подготовка оборудования

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

Диаграмма Fritzing, показывающая схема с АЦП MCP3008 и потенциометром

Для связи MCP3008 использует последовательный периферийный интерфейс (SPI). Ниже приведены соединения MCP3008 с Raspberry Pi и потенциометром:

  • VDD до 3,3 В (показано красным)
  • VREF до 3,3 В (красный)
  • AGND на землю (черный)
  • От CLK до SCLK (оранжевый)
  • DOUT на MISO (оранжевый)
  • DIN на MOSI (оранжевый)
  • CS/SHDN на CE0 (зеленый)
  • DGND на массу (черный)
  • CH0 — переменный (средний) контакт на потенциометре (желтый)

Подайте 3,3 В и заземлите внешние контакты потенциометра. Порядок не важен.

При необходимости обратитесь к следующим схемам разводки:

Рекомендуется использовать коммутационную плату GPIO в сочетании с макетной платой для упрощения подключений к разъему GPIO.

Создайте приложение

Выполните следующие шаги в предпочитаемой среде разработки:

Замените содержимое Program.cs следующим кодом:

В предыдущем коде:

  • hardwareSpiSettings задается новым экземпляром SpiConnectionSettings. Конструктор устанавливает для параметра busId значение 0, а для параметра chipSelectLine — значение 0.
  • Объявление using создает экземпляр SpiDevice путем вызова SpiDevice.Create и передачи hardwareSpiSettings . Этот SpiDevice представляет собой шину SPI. Объявление using гарантирует удаление объекта и правильное освобождение аппаратных ресурсов.
  • Другое объявление using создает экземпляр Mcp3008 и передает SpiDevice в конструктор.
  • Цикл while выполняется бесконечно. Каждая итерация:
    1. Считывает значение CH0 на АЦП, вызывая mcp.Read(0) .
    2. Делит значение на 10,24. MCP3008 — это 10-разрядный АЦП, что означает, что он возвращает 1024 возможных значения в диапазоне 0–1023. Разделив значение на 10,24, вы получите значение в процентах.
    3. Округляет значение до ближайшего целого числа.
    4. Записывает значение в консоль в виде процентов.
    5. Спит 500 мс.

Запустите приложение на Raspberry Pi, переключившись в каталог развертывания и запустив исполняемый файл.

Наблюдайте за выходным сигналом при вращении диска потенциометра. Это связано с тем, что потенциометр изменяет напряжение, подаваемое на CH0 на АЦП. АЦП сравнивает входное напряжение на канале CH0 с опорным напряжением, подаваемым на VREF, для создания значения.

Завершите работу программы, нажав Ctrl+C .

Поздравляем! Вы использовали SPI для считывания значений из аналого-цифрового преобразователя.

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