windows еквівалент для dd


40

Мені потрібно читати та писати різні зображення флеш-карти. Те, як я завжди робив це в Linux, було з dd, і це зробило трюк. Що таке хороший еквівалент Windows?

Простіше кажучи, мені потрібно вміти читати всю карту у файл і навпаки. Я спробував WinDD , але це, здається, працює на розділах, а не на цілих пристроях, але мені потрібно мати можливість скинути весь диск / карту та її таблицю розділів незалежно від вмісту.

Використовуючи Windows 7 64bit, із зчитувачем карт на порту USB3.

Відповіді:


20

Спробуйте Win32DiskImager , він може записувати зображення на диски.


5
Він розміщений на SourceForge, який має історію включення зловмисного програмного забезпечення до дистрибутивів, проти бажань власників проекту. Джерело: notepad-plus-plus.org/news/notepad-plus-plus-leaves-sf.html
Скотт Стівенс

3
@AnthonyLozano Я завантажив win32diskimager з sourceforge, у нього немає шкідливого програмного забезпечення, і він широко використовується і навіть рекомендується для таких речей, як Raspberry Pi, для запису зображень на диск. На github є вилка, але ви повинні її скласти самостійно github.com/bizplay/win32-disk-imager
Logern

2
Я почав використовувати Chocolatey для всіх своїх комунальних послуг. Подумайте, apt-get для Windows, використовуючи рамки NuGet. Існує пакет win32diskimager, який встановлюється без проблем. Портативний, а також. chocolatey.org
Майк Лукс

4
Це не працює для пристроїв без присвоєних їм літер розділів, тому це марно для пристроїв з нерозпізнаними розділами або взагалі без розділів. Не еквівалент dd.
Ксерц

1
Він не створює файл сумісного зображення DD, адже він намагається зрозуміти макет диска і створює zip-файл із кожним розділом, який він розпізнає в окремому файлі. І в моєму випадку у нього виникли проблеми з відновленням файлів знову до розділів
user230910

20

Просто використовуйте dd для WIndows ... він відмінно працює, хоча це досить старий проект.


Здається, що у Windows 10. у когось проблеми з .6 бета-3?
TravisВідкритий

@TravisWhidden які проблеми? У мене виникли деякі помилки "не в змозі написати", але я впевнений, що це та сама проблема.
Скотт Стівенс

Це не працює для мене на моїй машині Win7
Аарон

Це, здається, працює, але, здається, slooooow ...
user230910

Дякую, чудово працювали для мене.
Джессі Бусман

14

Руфус працює як очікувалося. Виберіть "DD Image" для "Створення завантажувального диска за допомогою".

Джерело публікується на GitHub: https://github.com/pbatard/rufus .

Мій досвід: Win32DiskImager не виявив u-SD через USB-3 зчитувач; dd для Windows, MinGW, складений dd, Unix Utils dd та Linux dd VIA VirtualBox VM USB3, пропуск через всі неприпустимо повільний; Мені ще потрібно знайти еквівалент командного рядка Windows, який може перемогти швидкість запису 50 Мб / с, яку я бачу з Руфусом.


Я також голосую за Руфуса. Жоден з інших запропонованих відповідей не працював для мене в Windows 10 Pro v1703. Гаразд ... давайте бути чесними ... Я не пробував рішення Python.
Doug Wilson

3
Це дійсно добре для попереднього завантаження зображень на USB-накопичувачі, але це не робить половину того, що може зробити ДД, тому це насправді не "еквівалент"
Rolf

3
Це не вірно, оскільки це дозволяє лише записувати зображення на диски, а не читати ці диски.
Xerz

2
Руфус для мене випустив диск з різною контрольною сумою від зображення.
fuzzyTew

1
Сьогодні рідко можна побачити корисну програму розміром лише 1 Мб. Який чудовий інструмент!
Гарет Девідсон

9

здивований, що ніхто не згадував основні утиліти GNU для Windows , я використовую їх протягом багатьох років. вони 32-бітні бінарні файли, але, мабуть, крім less, вони все ще працюють під Windows 7 64-бітними .

Приклад використання:

C:\Windows\Temp>dd if="\\.\s:" of=sdrive.dat bs=4096
25599+0 records in
25599+0 records out
104853504 bytes (105 MB) copied, 30.3147 seconds, -56145186608800624000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000 MB/s

C:\Windows\Temp>dd if="\\.\physicaldrive0" of=mbr.dat bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0210012 seconds, -891479495977528 kB/s

Звітні часи трохи дивні, але в іншому випадку це, здається, працює добре.


1
Чи правильно він копіює вміст на 4 гібібайтах? Востаннє я перевіряв (давно), що він був складений на час виконання Microsoft, де off_tзнаходиться long, отже, компенсації обмежені 31 або 32 бітами ..., що є великим обманом при використанні dd.
AntoineL

Я ніколи не пробував, вибачте.
jcomeau_ictx

Git для Windows поставляється (під час написання) з dd версією 8.30, складеною у 2018 році. Здається, це добре працює з /dev/sdXіменами, принаймні від Git Bash, що працює в якості адміністратора. Можливо, він втратив будь-які 32-бітні обмеження деякий час тому.
mwfearnley

8

Спочатку я також спробував Win32DiskImager, який, на мою думку, робив лише копію розділу на основі його відображення (ні, він може створити резервну копію всієї SD-карти), тому я продовжив пошук.

Мій поточний улюблений - HDDRawCopy . Він копіює в / з файлу ціле зображення диска, але не розділи окремо. Він створює сумісні або стислі зображення dd на льоту - не настільки ефективний, як 7zip (навіть не досягає продуктивності ZIP), але не потрібно торкатися зображення знову.


2
HDD Raw Copy вдалося виявити порожній привід SCSI, який "dd для Windows" не міг. Це дозволило мені дублювати HFS диск з Windows! Спасибі!
HackSlash

2
Зауважте, що чомусь HDD RAW COPY має обмеження 50MB / s
Gizmo

8

Я просто намагався переконатися, що диск накопичений, і все, про що я піклувався, читав, але цей сценарій python можна змінити, щоб зробити щось подібне, якщо ви не довіряєте тим виконуваним файлам, як я ні. Відкрийте Менеджер розділів Windows, щоб отримати номер диска, який вам важливий, і просто змініть цей 2 на цей номер. Потім ви можете це записати, або якщо ви зробили wb замість rb, то можете написати. Удачі

import sys

f = open('\\\\.\\PhysicalDrive2','rb')
a = f.read(1)
i = 1

kb = 1024
mb = kb*1024

while a == b'\x00':
    i+=1
    if i % mb == 0:
        sys.stdout.write('\r{} MB scanned'.format(i/mb))
    a = f.read(1)

print('done')

3
Тільки для запису, я думаю, було б у багато разів швидше робити більше, ніж один байт. І немає жодної умови помилки, сценарій покладається на ненулі байти, що виникають на початку, і ви переймаєтесь, що він надрукував "зроблено" на початку.
Люк

2
Як ви знаєте, на який привід націлити?
HackSlash

Python - це неправильний інструмент. Вам буде краще створити 256k буфер усіх нулів і порівняти його з 256k, витягнутим з диска за один раз. Плюс наявність певної обробки виключень.
Гарет Девідсон

3

Для справжнього еквівалента ddв Windows, не шукайте напівфабрикованих альтернатив - просто встановіть справжній GNU dd. Найкращий спосіб зробити це, мабуть, Cygwin , досить повний розподіл GNU та інших інструментів FOSS. Подумайте про це, як встановити "Linux" (а точніше, дистрибутив Linux (GNU) Linux) поверх Windows, без будь-яких шарів емуляції чи обмеженого чорного поля, як підсистема Windows для Linux. Це так само рідно, як це стає.

Для того, щоб ним скористатися, вам потрібно буде:

  1. Встановіть базове середовище Cygwin. Зробіть так, як вказано на веб-сайті , просто залиште параметри за замовчуванням, якщо вам це потрібно, ddале ви також можете трохи повеселитися та отримати підказку щодо того, що він може запропонувати.
  2. Відкрийте термінал Cygwin як адміністратор , а потім перевірте, над яким пристроєм / розділом ви хочете працювати cat /proc/partitions.
  3. Використовуйте так, ddяк і на будь-якому (GNU) Linux.

Ви навіть можете використовувати cygwin з командного рядка DOS ... (я використовую весь час для cat / grep / tail / ...) і навіть на консолі DOS / Windows "ls -la / proc" працює чудово ... один із моїх
фаворитів

3

вау, всі ці відповіді та DISM існували вже давно? Досить впевнений, він був вбудований у Windows 7 з початку руху.

DISM / capture-image /image-file:d:\backup.wim / captureir: c: \ / name: simpleback

Є безліч налаштувань, які можна налаштувати. після захоплення - розгортайте на нових носіях зберігання, використовуючи також інструменти dism.



Чи не працює: The /image-file option is not recognized in this context.. Має бути/imagefile
yahol

1

Спробувавши деякі інструменти, рекомендовані тут, я застосував балену Етчер у Windows 10. (Руфус дав мені результат із неправильною контрольною сумою. HDDRawCopy видав мені помилку в записі.)


1

rawcopyз http://www.ltr-data.se/opencode.html/ . rawcopy -hпоказує посібник.

Якщо вам потрібно /dev/zeroі /dev/randomє, з цього ж сайту є "нульовий і випадковий драйвер пристрою".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.