Pozbądź się komunikatu „Resource Busy” w Mac OS X.

12

Próbuję naprawić zgubioną HSF+tablicę partycji iMaca, uruchamiając ikomendę wewnątrz sudo pdisk /dev/rdisk1. Gdy spróbuję uruchomić ipolecenie, pojawia się komunikat o błędzie informujący, że zasób jest zajęty:

pdisk: nie można otworzyć pliku „/ dev / rdisk1” do zapisu (zajęty zasób)

Polecenie i w pdisk / dev / rdisk1

Mam ten sam wynik podczas korzystania /dev/disk1, /dev/rdisk2oraz /dev/disk2.

Próbowałem też biegać sudo gpt /dev/(r)disk(1-3). Co ciekawe, otrzymuję wynik tylko z /dev/rdisk3:

sudo gpt / dev / (r) disk (1-3).  / dev / rdisk3 daje wynik

Więc próbuję zobaczyć, co korzysta z zasobu, uruchamiając sudo lsof /dev/rdisk1, a także sudo lsof /dev/disk1. Nic się nie pokazuje:

lsof na / dev / disk1 i / dev / rdisk1

Próbowałem również odmontować urządzenie, uruchamiając je sudo umount /dev/disk1również sudo umount /dev/rdisk1. Otrzymuję komunikat, że urządzenie nie jest aktualnie zamontowane:

odmontowywanie / dev / rdisk1 i / dev / disk1

Oto lista wszystkich dysków podłączonych do komputera, znalezionych po uruchomieniu sudo DiskUtil list:

Polecenie listy DiskUtil

/ dev / disk0 - Dysk komputera, do którego podłączony jest komputer iMac.

/ dev / disk1 - dysk twardy komputera iMac.

/ dev / disk2 - Dysk SSD iMaca.

/ dev / disk3 - Nie wiem co to jest. Zakładam, że jest to połączony dysk twardy i dysk SSD komputera iMac.

/ dev / disk4 - Zewnętrzny dysk twardy.

/ dev / disk5 - Nie mam pojęcia, co to jest. Może narzędzia dla / dev / disk4?

IMac ma napęd fusion i /dev/disk1jest dyskiem twardym. Próbowałem z dyskiem SSD /dev/disk2, ale otrzymuję ten sam wynik.

Mam iMaca podłączonego do innego komputera za pomocą pioruna, i przytrzymując, tgdy iMac się uruchomił , Macintosh HDpokazał się jako urządzenie zewnętrzne na drugim komputerze.

Jak mogę pozbyć się tej wiadomości? Próbowałem ponownie uruchomić komputer iMac i komputer, do którego jest podłączony.

Jojodmo
źródło
1
To pytanie można lepiej zadać w Ask Different ... W każdym razie: Czy używasz tego trybu dla jednego użytkownika? W co jesteś teraz uruchomiony?
TheBro21

Odpowiedzi:

5

Po pierwsze, pdiskpolecenie służy do modyfikowania dysków podzielonych na partycje za pomocą Apple Partition Map. Używają ich tylko komputery Mac z procesorami PowerPC.

Po drugie, umountpowyższe polecenia zawodzą, ponieważ / dev / disk1 i / dev / disk2 nie są zamontowane. Zazwyczaj montowane są tylko partycje (np. / Dev / disk0s3), chociaż w twoim przypadku masz napęd Fusion. Masz całkowitą rację, że / dev / disk3 nie jest „prawdziwym” dyskiem. Jest to łączna pojemność / dev / disk1s2 i / dev / disk2s2. Jeśli wpiszesz umount /dev/disk3, powinno to działać. Oczywiście nic nie jest zamontowane na / dev / disk1 lub / dev / disk2, więc będziesz musiał wydać diskutil unmountdisk /dev/diskNdla nich a. To powinno je zwolnić, aby gptpolecenie przestało wyświetlać błąd zajętości zasobu.

Dyski Fusion używają partycji Apple CoreStorage jako kontenerów, co jest w pewnym sensie analogiczne do dysków dynamicznych Microsoft. Niestety utrudniają manipulowanie partycjami i usuwają wiele produktów do odzyskiwania dysków / partycji ze stołu.

Jednak oprócz powyższych problemów nie jestem do końca pewien, na czym polega problem. Wspominasz, że tablica partycji została utracona, ale dane wyjściowe diskutil listsugerują, że tablice partycji wydają się być OK.

Czy możesz bardziej szczegółowo opisać problem, który miałeś?

Wes Sayeed
źródło
Właśnie zaktualizowałem pytanie. Zakładam gpt, że byłoby właściwym narzędziem do użycia zamiast pdisk?
Jojodmo
Poprawny. Zaktualizowałem swoją odpowiedź, aby odzwierciedlić opublikowane przez Ciebie dodatkowe informacje.
Wes Sayeed
Możesz zapomnieć o utraconej partycji, ważne jest to, dlaczego otrzymuję tę wiadomość
Jojodmo
4

spróbuj tego: diskutil unmountDisk force / dev / disk0 (lub cokolwiek to jest dysk)

użytkownik774082
źródło
To nie działa
adib
@ adib Tak się złożyło, że miałem podobny problem (ciągle otrzymywałem komunikat „Zajęty zasób”, chociaż lsofnic nie pokazywałem) i działałem diskutil unmountDisk force /dev/disk<#>dla mnie! 👍
RocketNuts
To zadziałało dla mnie.
OuzoPower
0

Miałem podobny problem do PO, więc pomyślałem, że podzielę się tym, co znalazłem. Mój scenariusz był inny;

1) Kupiłem zupełnie nową Sandisk 32GBpamięć USB, której później musiałem użyć w innej dystrybucji Unix. USB zostało wstępnie sformatowane, jak zwykle, z systemem FATplików i niektórymi plikami do tworzenia kopii zapasowych itp

2) Mam tylko Macbooka Pro (MacOS 10.14.4), ale muszę sformatować pamięć, ext2która nie jest tak prosta, jak byś chciał.

Po podłączeniu mojej nowej pamięci USB rzeczywiście spotkałem się z następującymi sprawami;

Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 422619568  51147752    90% 2408063 9223372036852367744    0%   /
devfs                673       673         0   100%    1164                   0  100%   /dev
/dev/disk1s4   489825072  14680896  51147752    23%       7 9223372036854775800    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
map -fstab             0         0         0   100%       0                   0  100%   /Network/Servers
/dev/disk1s3   489825072   1021032  51147752     2%      30 9223372036854775777    0%   /Volumes/Recovery
/dev/disk2s1    60033120     26976  60006144     1%       0                   0  100%   /Volumes/SANDISK32GB

Uruchomienie e2fsprogs w celu sformatowania pamięci USB spowodowało:

sudo $(brew --prefix e2fsprogs)/sbin/mkfs.ext2 /dev/disk2

mke2fs 1.44.5 (15-Dec-2018)
/dev/disk2: Resource busy while setting up superblock

To, co musiałem zrobić, to odmontować partycję FAT z komputera Mac, aby móc sformatować ją w ext2 zgodnie z wymaganiami;

diskutil unmountdisk /dev/disk2s1

Następnie uruchom oryginalne polecenie e2fsprogs, aby sformatować dysk USB.

Zwróć uwagę na różnicę między nazwą systemu plików a nazwą zamontowanego systemu plików

/ dev / disk2s1 zamontowane przeciwko / dev / disk2 device .

Chris Gillatt
źródło