Laufen dd. Warum ist die Ressource ausgelastet?

31

Ich habe gerade eine microSD-Karte formatiert und möchte einen ddBefehl ausführen . Leider ddschlägt der Befehl fehl:

$ sudo dd bs=1m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2
dd: /dev/rdisk2: Resource busy
$

Jeder im Internet sagt, dass ich die Festplatte zuerst aushängen muss. Klar, kann das und weitermachen. Aber ich möchte verstehen, warum / was genau in OS X das Gerät beschäftigt macht ? Wie diagnostiziere ich das?

Bisher habe ich versucht:

  1. Offene Dateien auflisten:

    $ lsof /dev/disk2
    $ lsof /dev/disk2s1
    $
    

    Ebenfalls:

    $ lsof /Volumes/UNTITLED
    $
    
  2. Benutzer auflisten, die an der Datei arbeiten:

    $ fuser -u /dev/disk2
    /dev/disk2: 
    $ fuser -u /dev/disk2s1 
    /dev/disk2s1:
    $
    

    Ebenfalls:

    $ fuser -u /Volumes/UNTITLED
    $
    
  3. Auf Systemnachrichten prüfen:

    $ sudo dmesg | grep disk
    $
    

    Ebenfalls:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    

Meine Umgebung

  1. Betriebssystem:

    Darwin Eugenes-MacBook-Pro-2.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
    
  2. Informationen zu meiner microSD:

    diskutil list disk2
    /dev/disk2 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *31.9 GB    disk2
       1:                 DOS_FAT_32 UNTITLED                31.9 GB    disk2s1
    

PS Ich benutze OS X 10.11.

Update 22.3.2016 . Herausgefunden. Ich habe das lsofund fuservon oben mit erneut ausgeführt sudound bin dem Problem auf den Grund gegangen:

$ sudo fuser /Volumes/UNTITLED/
/Volumes/UNTITLED/: 62 282
$

Und:

$ sudo lsof /Volumes/UNTITLED/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
mds        62 root    8r   DIR    1,6    32768         2 /Volumes/UNTITLED
mds        62 root   22r   DIR    1,6    32768         2 /Volumes/UNTITLED
mds        62 root   23r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds        62 root   25u   REG    1,6        0 999999999 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/journalExclusion
mds_store 282 root  txt    REG    1,6     3277        17 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexGroups
mds_store 282 root  txt    REG    1,6        8        23 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexCompactDirectory
mds_store 282 root  txt    REG    1,6      312        19 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexTermIds
mds_store 282 root  txt    REG    1,6     3277        29 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexGroups
mds_store 282 root  txt    REG    1,6     1024        35 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexCompactDirectory
mds_store 282 root  txt    REG    1,6      312        21 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexPositionTable
mds_store 282 root  txt    REG    1,6     8192        31 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexTermIds
mds_store 282 root  txt    REG    1,6     2056        22 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexDirectory
mds_store 282 root  txt    REG    1,6     8192        33 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexPositionTable
mds_store 282 root  txt    REG    1,6     8224        34 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexDirectory
mds_store 282 root  txt    REG    1,6       16        16 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexIds
mds_store 282 root  txt    REG    1,6    65536        48 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/reverseDirectoryStore
mds_store 282 root  txt    REG    1,6      704        24 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexArrays
mds_store 282 root  txt    REG    1,6    65536        26 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.directoryStoreFile
mds_store 282 root  txt    REG    1,6    32768        28 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexIds
mds_store 282 root  txt    REG    1,6    65536        36 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexArrays
mds_store 282 root  txt    REG    1,6    65536        38 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.directoryStoreFile
mds_store 282 root    5r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds_store 282 root   17u   REG    1,6     8192        12 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/psid.db
mds_store 282 root   32r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds_store 282 root   41u   REG    1,6       28        15 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/indexState
$

Aus dem oben Gesagten ist leicht zu sehen , dass die Prozesse genannt mdsund mds_storehaben erstellt und halten viele Dateien auf dem Datenträger.

gmile
quelle
Verwenden of=/dev/rdisk2Sie es so viel schneller und nicht so anstrengend für Ihre SD-Karte.
Rui F Ribeiro
Hi @RuiFRibeiro! Ja, das ist absolut sinnvoll, das habe ich rdiskbeim Schreiben vergessen .
Gmile
Das Gerät ist ausgelastet, weil es automatisch aktiviert wird ...; Sie mounten es, machen Ihre dd, und es wird automatisch gemountet, sobald dd fertig ist.
Rui F Ribeiro
@RuiFRibeiro Ich weiß, das macht Sinn ... Aber gibt es einen anderen Hinweis, außer zu sehen /Volumes/UNTITLEDund zu wissen , dass es automatisch montiert wird ? Wie einige Protokolle oder besser ein Prozess, der für die Entnahme des Geräts verantwortlich ist?
Gmile
1
@RuiFRibeiro Umdrehungen da draußen sind zwei Prozesse , die gegenwärtig hält das Volumen montiert. Was ich vermisst habe, war Laufen lsofund fusermit Root-Rechten. Nachdem sudoich beide mit ausgeführt hatte , stellte ich mir vor, dass Prozesse aufgerufen mdsund mds_storeüber ein Dutzend Dateien auf dem Volume erstellt wurden.
Gmile

Antworten:

49

Apple Gericht, Apple Regeln. Versuchen Sie diskutil:

$ diskutil list
...

# if mounted somewhere
$ sudo diskutil unmount $device

# all the partitions (there's also a "force" option, see the manual)
$ sudo diskutil unmountDisk $device

# remember zip drives? this would launch them. good times!
$ sudo diskutil eject $device

(Bei einem Disk-Image kann der hdiutilBefehl auch von Interesse sein. Sie können auch in klicken Disk Utility.app.)

Thrig
quelle
Hi @thrig, danke. Ja, ich bin in der Lage, die Verbindung zu trennen diskutil, kein Problem damit. Was ich hier mache, ist, dass ich lerne, wie ich Probleme im System identifizieren kann, indem ich zu jeder Warnung "Ja" sage, die ich erkennen kann. Ich möchte wissen, warum "Resource busy" überhaupt stattfindet und nicht, wie man es loswird. Welcher genaue Prozess im Betriebssystem macht dies möglich?
Gmile
@gmile Der Kernel sperrt, soweit ich weiß, ausgelastete Geräte. Sie müssen also alle Partitionen und Images aushängen und auswerfen, um die Kernel-Sperre zu entfernen.
Thrig
Oh, das ist interessant. Ich werde jetzt nach Kernel-Sperren googeln. Vielleicht haben Sie eine gute Quelle im Kopf, wo ich darüber lesen kann?
Gmile
9

Das Aushängen der Unterpartitionen hat geholfen

/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *8.0 GB     disk2
   1:             Windows_FAT_16 wr_usb_efi              134.2 MB   disk2s1
   2:                      Linux                         1.1 GB     disk2s2
vgsprasad-mbp:~ vgsprasad$ diskutil umount /dev/disk2s1
Volume wr_usb_efi on disk2s1 unmounted
vgsprasad-mbp:~ vgsprasad$ diskutil umount /dev/disk2s2
disk2s2 was already unmounted
Shivaprasad
quelle
3
Abgesehen von der fehlenden Formatierung sagte das OP ausdrücklich: "Jeder im Internet sagt, dass ich zuerst die Festplatte aushängen muss. Sicher, kann das und geht weiter. Aber ich möchte verstehen, warum / was genau in OS X das Gerät beschäftigt? "
Jeff Schaller
@ Jeff Ich bin auf das gleiche Problem gestoßen wie gmile, ich wollte eine ISO-Datei auf einen USB-Stick schreiben, und dd kehrte zurück dd: /dev/disk9: Resource busy. Als ich die Bereitstellung aufgehoben habe diskutil umount /dev/disk9s1, ist das Gerät vom Desktop verschwunden, aber das Gerät /dev/disk9war immer noch aktiviert, sodass dddie Leistung nicht ordnungsgemäß erbracht werden konnte. So hielt Mac OSX das Gerät auf Trab, indem es eine Verknüpfung zum inneren Dateisystem des USB-Sticks herstellte.
Gustav