Błąd „Zasób zajęty” podczas używania polecenia „dd” do kopiowania obrazu dysku na kartę SD

31

Pobrałem Raspbian wheezy ze strony pobierania Raspberry Pi i podążam za stroną wiki RPi Easy SD Card Setup .

Sformatowałem kartę SD i cdprzeszedłem do folderu zawierającego plik img Raspbian, ale kiedy uruchamiam sudo dd if=2013-07-26-wheezy-raspbian.img of=/dev/disk2s1 bs=1m, otrzymuję wynik:

dd: /dev/disk2s1: Resource busy

Próbowałem ponownie z /dev/disk2plikiem wyjściowym, ale otrzymałem ten sam błąd. Nie jestem pewien, co robię źle / dlaczego img nie jest kopiowany.

Jest to (odpowiedni) wynik $ diskutil list:

/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *32.5 GB    disk2
   1:             Windows_FAT_32 YQFORKLIFT              32.5 GB    disk2s1

Jak również $ df -h:

ysim:~$ df -h
Filesystem      Size   Used  Avail Capacity  Mounted on
...
/dev/disk2s1    30Gi  1.7Mi   30Gi     1%    /Volumes/YQFORKLIFT

I to widzę w Profilu systemu -> Czytnik kart :

Built in SD Card Reader:

  Vendor ID:    0x05ac
  Product ID:   0x8403
  Revision: 1.00
  Serial Number:    000000009833

SDHC Card:

  Capacity: 32.48 GB (32,479,641,600 bytes)
  Removable Media:  Yes
  BSD Name: disk2
  Partition Map Type:   MBR (Master Boot Record)
  S.M.A.R.T. status:    Not Supported
  Volumes:
YQFORKLIFT:
  Available:    32.47 GB (32,465,321,984 bytes)
  Capacity: 32.48 GB (32,475,447,296 bytes)
  Writable: Yes
  File System:  MS-DOS FAT32
  BSD Name: disk2s1
  Mount Point:  /Volumes/YQFORKLIFT
3cheesewheel
źródło
należy to oznaczyć OSX lub podobnym
Andre Holzner

Odpowiedzi:

43

Odpowiedź znalazłem w następnej sekcji wiki ; głupi ja. Okazało się, że rozwiązanie nie zawierało zbyt wielu szczegółów na temat tego, jakie komunikaty o błędach i jakie widzisz, i pomyślałem, że pomocne może być posiadanie dokładnego komunikatu o błędzie „googleable”. Znalazłem też nieco niejasne instrukcje (szczególnie w kroku 8/9; nie byłem pewien, czy partycja musi zostać odmontowana), więc spróbowałem przeformułować niektóre z nich:

[zakłada się, że karta SD została już sformatowana]

  1. Uruchom, df -haby zlokalizować partycję karty SD, która będzie we wzorze /dev/diskns1, gdzie njest liczbą całkowitą. W tym przypadku jest to /dev/disk2s1(pozostałe dwa to zewnętrzne dyski twarde USB). I tak, wiem, że nadałem mu dziwne imię ...

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          114Ki  114Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    /dev/disk2s1    30Gi  1.7Mi   30Gi     1%    /Volumes/YQFORKLIFT
    
  2. Odmontuj partycję:

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ sudo diskutil unmount /dev/disk2s1
    Volume YQFORKLIFT on disk2s1 unmounted
    
  3. Sprawdź, czy został on odmontowany / nie wyświetla się już po uruchomieniu df -h(w przeciwnym razie powoduje to Resource busybłąd powyżej - patrz tutaj ).

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          114Ki  114Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    
  4. Choć to wciąż nieoprawione , biegać sudo dd bs=1m if=/path/to/extracted/raspberry-pi-img.img of=/dev/rdiskn, zastępując nz Nw /dev/diskNs1od kroku 1. Upewnij się, aby napisać /dev/rdiskN(dysku) i NIE /dev/diskNs1 (partycji), czyli coś, co powoduje Resource busybłąd.

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ sudo dd bs=1m if=2013-07-26-wheezy-raspbian.img of=/dev/rdisk2
    1850+0 records in
    1850+0 records out
    1939865600 bytes transferred in 151.663501 secs (12790590 bytes/sec)
    
  5. Karta SD została teraz ponownie zamontowana i nazwana boot!

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          115Ki  115Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    /dev/disk2s1    56Mi   18Mi   37Mi    34%    /Volumes/boot
    
3cheesewheel
źródło
3
Super pomocne dzięki. Musiałem sudo diskutil unmountDisk /dev/disk2zamiast tego użyć (co w rzeczywistości jest jedynym krokiem, który musiałem zrobić, aby ponownie uruchomić polecenie dd)
geotheory
Właśnie odmontowałem wolumin, a następnie użyłem narzędzia ddrescue / dd bezpośrednio na dysku i działało dobrze. Nie sądzę, aby pozostałe kroki były naprawdę konieczne.
RoyS
Czy możesz wyjaśnić, dlaczego to mówi /dev/rdisk2zamiast /dev/disk2? Skąd rpochodzi?
oschlueter