Я пытаюсь скопировать SD-карту с помощью команды dd под Windows Cygwin, и я получаю следующую ошибку:

>>> dd if=i:\ of=k:\backup_sd_card.img bs=4M dd: error reading 'i:\': Is a directory 0+0 records in 0+0 records out 0 bytes copied, 0.00629135 s, 0.0 kB/s

или я пытаюсь также:

>>> dd if=\\?\Volume{ab627f51-f12b-11e7-bc1b-e277073b2b9d}\ of=k:\backup_sd_card.img bs=1M dd: failed to open '\?Volumeab627f51-f12b-11e7-bc1b-e277073b2b9d\': No such file or directory

Сигнатура диска берется из команды mountvol .

версия дд я использую:

>>> dd --version dd (coreutils) 8.26 Packaged by Cygwin (8.26-2)

Как сделать копию и вернуть с помощью dd такое изображение?

1 ответ1

2

Вы не должны использовать каталоги синтаксиса DOS с dd !! Синтаксис каталога похож на Linux. Откуда вы вообще взяли идею использования такого синтаксиса! Попробуйте хотя бы попытаться следовать какому-то руководству!

Эта команда работала для меня, например. (Сделано из административного приглашения cmd), и вы можете изменить -b 1M на -b 4M (у вас есть 4M, возможно, последний быстрее, но я нашел 1M в порядке)

(Хорошо, я использую ddrescue (пакет gnu, и на самом деле он лучше, чем dd), но способ, которым я указал раздел, в отличие от того, который у вас есть, применим и к dd)

$ ddrescue -r3 -b 1M -d /dev/sdb /cygdrive/c/crp/fsfwr_.fc

Cygwin более неуклюж, чем Linux, когда дело доходит до показа того, что монтируется где

Вы можете посмотреть на /dev и сделать что-то вроде $ cygpath -w sdb1 и он может сказать, например, \\.\F:

И эта сумасшедшая команда, которую мастер linux показал мне для использования в cygwin, автоматизирует команды cygpath -w и может дать вам список того, что здесь говорят

for F in $(gawk '{if (FNR > 2) print "/dev/" $4;}' /proc/partitions) ; do echo "$F $(cygpath -w $F)" ; done

то показывает как

/dev/sda \\.\PhysicalDrive0
/dev/sda1 \\.\Volume{b6ef2ec3-451e-11e2-822b-806e6f6e6963}
/dev/sda2 \\.\C:
/dev/sdb \\.\PhysicalDrive1
/dev/sdb1 \\.\F:
/dev/sdc \\.\PhysicalDrive2
/dev/sdc1 \\.\G:
/dev/sdc2 \\.\Volume{b6ef2ec3-451e-11e2-822b-806e6f6e6963}5

поэтому синтаксис для вашей строки dd будет таким, как показано ниже, хотя может быть и не sdb1, но вы можете запустить эту команду выше, чтобы увидеть, какой /dev использовать.

dd if=/dev/sdb1 of=/cygdrive/k/backup_sd_card.img bs=4M

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .