Uruchamianie dd. Dlaczego zasoby są zajęte?


32

Właśnie sformatowałem kartę microSD i chciałbym uruchomić ddpolecenie. Niestety ddpolecenie nie powiedzie się:

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

Wszyscy w Internecie mówią, że najpierw muszę odmontować dysk. Jasne, mogę to zrobić i przejść dalej. Ale chcę zrozumieć, dlaczego / co dokładnie w OS X powoduje, że urządzenie jest zajęte ? Jak mogę to zdiagnozować?

Do tej pory próbowałem:

  1. Wyświetlanie otwartych plików:

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

    Również:

    $ lsof /Volumes/UNTITLED
    $
    
  2. Lista użytkowników pracujących nad plikiem:

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

    Również:

    $ fuser -u /Volumes/UNTITLED
    $
    
  3. Sprawdź komunikaty systemowe:

    $ sudo dmesg | grep disk
    $
    

    Również:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    

Moje środowisko

  1. System operacyjny:

    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. Informacje o moim 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 Używam OS X 10.11.

Zaktualizuj 22.03.2016 . Domyśliłam się. Ponownie uruchomiłem lsofi fuserz góry sudo, i w końcu dotarłem do sedna problemu:

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

I:

$ 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
$

Z powyższego łatwo zauważyć, że procesy wywoływały mdsi mds_storeutworzyły i przechowują wiele plików na woluminie.


Używaj of=/dev/rdisk2go o wiele szybciej i nie obciążaj karty SD.
Rui F Ribeiro

Cześć @RuiFRibeiro! Tak, to ma sens, zapomniałem o rdisktym pisząc.
gmile

Urządzenie jest zajęte, ponieważ jest automatycznie zamontowane ...; zamontujesz go, zrób swój dd, a zostanie on ponownie zamontowany automatycznie, gdy tylko dd się skończy.
Rui F Ribeiro

@RuiFRibeiro Wiem, że to ma sens ... Ale czy jest coś innego, oprócz tego, że widzi /Volumes/UNTITLEDi wie, że jest montowany automatycznie? Na przykład niektóre dzienniki, a jeszcze lepiej jakiś proces odpowiedzialny za pobranie urządzenia?
gmile

1
@RuiFRibeiro okazuje się, że obecnie 2 procesy utrzymują zamontowany wolumin. To, czego mi brakowało, to bieganie lsofi fuseruprawnienia roota. Po uruchomieniu obu z nich sudozorientowałem się, że procesy wywołały mdsi mds_storeutworzyły kilkanaście plików na woluminie.
gmile

Odpowiedzi:


50

Sąd Apple, zasady Apple. Spróbuj 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

(W przypadku obrazu dysku hdiutilpolecenie może być również interesujące. Możesz także kliknąć w Disk Utility.app).


Cześć @ thrig, dziękuję. Tak, jestem w stanie odmontować za pomocą diskutil, nie ma z tym problemu. To, co tu robię, to uczę się, jak identyfikować problemy w systemie, mówiąc „Tak” w przypadku każdego ostrzeżenia, które mogę dostrzec. Chcę przede wszystkim wiedzieć, dlaczego dzieje się „zajęty zasób”, a nie jak się go pozbyć. Jaki dokładnie proces w systemie operacyjnym sprawia, że ​​tak się dzieje?
gmile

@gmile jądro, o ile mi wiadomo, blokuje zajęte urządzenia, więc musisz odmontować i wysunąć dowolną partycję i obraz, aby usunąć blokadę jądra.
thrig

och, to interesujące. Teraz zamierzam google zablokować jądro. Może masz na myśli coś dobrego, gdzie mógłbym o tym poczytać?
gmile

9

Odmontowanie partycji pomogło

/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

3
poza brakującym formatowaniem, OP wyraźnie powiedział: „Wszyscy w Internecie mówią, że najpierw muszę odmontować dysk. Jasne, mogę to zrobić i przejść dalej. Ale chcę zrozumieć, dlaczego / co dokładnie w OS X powoduje, że urządzenie jest zajęte? „
Jeff Schaller

@Jeff Wpadłem na ten sam problem co gmile, chciałem napisać .iso na pendrivie i dd wróciło dd: /dev/disk9: Resource busy. Po odmontowaniu diskutil umount /dev/disk9s1urządzenie zniknęło z pulpitu, ale /dev/disk9nadal było zamontowane, więc ddnie mogło działać tak, jak powinno. Dlatego Mac OSX utrzymywał urządzenie w ruchu, tworząc skrót do wewnętrznego systemu plików pamięci USB.
Gustav
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.