30

Короче говоря, я работаю на компьютере с Windows 7, и я хотел бы удалить изображение с SD-карты (резервное копирование карты с Raspberry Pi). Я пытаюсь использовать Cygwin, но без особого успеха.

Изучив каталог /dev , похоже, что моя SD-карта отображается как sdd и sdd1 . Тем не менее, когда я запускаю следующую команду:

dd if=/dev/sdd of=RPi.img

Я получаю следующее:

дд: открытие '/dev/sdd': в доступе отказано

Я использовал dd на Mac и под Linux без проблем, используя похожий синтаксис. Чего мне не хватает в Cygwin?

6 ответов6

26

Вы получаете ошибку « Permission denied доступе», потому что вы не root. Это звучит странно в контексте Cygwin, но это ударяет домой.

Когда вы запрашиваете свой статус (id) в нормально запущенной оболочке Cygwin, вы получите что-то вроде этого:

$ id
uid=1001(user) gid=545(Users) groups=545(Users),555(Remote Desktop Users),513(None)
$ dd if=/dev/sda bs=1000 count=1 | wc -c
dd: opening `/dev/sda': Permission denied
0

В Windows 7 хитрость в том, чтобы стать пользователем root в Cygwin, состоит в том, чтобы запустить сеанс с повышенными правами, то есть щелкнуть правой кнопкой мыши значок Cygwin и выбрать « Запуск от имени администратора». Теперь вы все еще не являетесь пользователем root , но, по крайней мере, в группе root :

$ id
uid=1001(user) gid=545(Users) groups=545(Users),0(root),544(Administrators),555(Remote Desktop Users),513(None)

И теперь, dd работает так, как вы привыкли к нему из Un * x:

$ dd if=/dev/sda bs=1000 count=1 | wc -c
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.00104424 s, 958 kB/s
1000
10

Недавно мне пришлось клонировать один USB-накопитель на другой в Windows. Мой диск мультизагрузочный с дополнительным программным обеспечением, поэтому я не хотел просто копировать все файлы на ФС. DD был очевидным выбором, но я не был на Linux, поэтому я должен был сделать несколько вещей, чтобы это работало.

Я установил Cygwin и сделал следующее.

Сначала я должен был выяснить, каким устройством /dev /sdX был мой f: volume. Для этого запустите эту команду в Cygwin. (СОВЕТ: Убедитесь, что вы запускаете cygwin с правами администратора. * Щелкните правой кнопкой мыши на Cygwin и "Запуск от имени администратора")

    cat /proc/partitions
which should output:
   8 0 3813383838 sda
   8 1       4031 sda3 C:\
   8 15  30588303 sdb 
   8 15  30588303 sdb1 E:\
   8 21  30530020 sdc
   8 22  30530020 sdc1 F:\

так далее... Здесь вы можете ясно увидеть, как я клонирую свой диск F: на мой диск E: я бы выполнил следующую команду.

dd if=/dev/sdc of=/dev/sdb bs=8M

Мое изображение было 32 ГБ .. и я не хотел просто сидеть и ждать с мигающим курсором .. Я хотел видеть прогресс, поэтому я установил "pv" в Cygwin.

dd if=/dev/sdc | pv | dd of=/dev/sdb bs=8M

Теперь, если вы хотите скопировать флэш-накопитель на изображение, сделайте следующее.

dd if=/dev/sdX | pv | dd of=/cygdrive/c/Users/Myname/Desktop/mythumbdrive.img bs=8M

Надеюсь это поможет

2

У меня был успех с dd для Windows, который я считаю переписать, а не порт. Это с открытым исходным кодом и не зависит от Cygwin.

Мне особенно понравилась команда dd --list , которая перечисляла все дисковые устройства вместе с достаточным количеством информации, чтобы определить желаемое.

2

Подойдет ли что-то вроде USB Image Tool ?
Или вы настаиваете на использовании Cygwin? ...

1

HDD Raw Copy Tool может делать копии с SD-карты. Если вы выберете «Raw image (dd image)» в диалоговом окне сохранения, то оно будет идентично тем, которые были созданы с помощью dd. Вы можете восстановить изображения тоже.

Я знаю, что это не сделано через Cygwin, но я лично не доверял бы это с доступом к необработанным устройствам.

0

Я вижу, что RaspberryPi.org сейчас рекомендует Win32 Disk Imager для записи изображений на карты памяти SD. Он также будет читать изображения с карты, так что я сейчас пробую.

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