Jak zamontować dysk za pomocą UUID lub LABEL w OS X El Capitan?

17

Otrzymuję identyfikator UUID i etykietę dysku diskutil info disk0s4

diskutil info disk0s4
   Device Identifier:        disk0s4
   Device Node:              /dev/disk0s4
   Whole:                    No
   Part of Whole:            disk0
   Device / Media Name:      Untitled

   Volume Name:              Data

   Mounted:                  No

   File System Personality:  HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended
   Journal:                  Unknown (not mounted)
   Owners:                   Disabled

   Partition Type:           Apple_HFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI
   SMART Status:             Verified
   Volume UUID:              F8C88B2D-5412-343B-8969-254F3AC559B8
   Disk / Partition UUID:    1738336E-68DD-46B1-997E-57469CF0472D

   Total Size:               338.0 GB (337984569344 Bytes) (exactly 660126112 512-Byte-Units)
   Volume Free Space:        0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          Internal
   Removable Media:          No

   Solid State:              Yes

mount użycie etykiety woluminu nie działa:

$ sudo mount -t hfs LABEL=Data /Users/user/test
GetMasterBlock: Error 2 opening LABEL=Data
GetMasterBlock: Error 2 opening LABEL=Data
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory

mount UUID woluminu nie działa z cudzysłowami lub bez:

$ sudo mount -t hfs uuid=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/user/test
GetMasterBlock: Error 2 opening uuid=F8C88B2D-5412-343B-8969-254F3AC559B8
GetMasterBlock: Error 2 opening uuid=F8C88B2D-5412-343B-8969-254F3AC559B8
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory
$ sudo mount -t hfs UUID="F8C88B2D-5412-343B-8969-254F3AC559B8" /Users/user/test
GetMasterBlock: Error 2 opening UUID=F8C88B2D-5412-343B-8969-254F3AC559B8
GetMasterBlock: Error 2 opening UUID=F8C88B2D-5412-343B-8969-254F3AC559B8
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory

mount przy użyciu identyfikatora woluminu działa

mymac:~ user$ sudo mount -t hfs /dev/disk0s4 /Users/user/test

Aktualizacja:

Moim celem jest wstawienie mountlinii, /etc/fstabponieważ chcę zamontować wolumin w niestandardowym punkcie montowania.

biocyberman
źródło
Jak już się dowiedziałeś, mountpolecenie nie może używać UUIDlub LABELmusi używać identyfikatora dysku, np /dev/disk0s4. Dodatkowo jako perhapsmaybeharry podkreślić, że metoda OS X jest użycie diskutil. Aby rozwiązać problem z aktualizacją ... fstabMożna jednak użyć UUIDlub LABEL, po prostu spójrz na przykłady na stronie podręcznika użytkownika dla fstab. W typie terminala, fstaba następnie kliknij prawym przyciskiem myszy fstabi wybierz opcję Otwórz stronę podręcznika, a następnie przeczytaj ją w całości! :)
user3439894
@ user3439894 Próbowałem linii w fstabten sposób: UUID=<volume_uuid> /mount/point autoi uruchomiłem sudo mount -a. Wystąpił ten sam błąd:... mount_hfs: No such file or directory
biocyberman
Drugie pole (plik fs), punkt montowania, musi już istnieć, prawda?
user3439894
Tak, istnieje.
biocyberman
Nie mam problemów z używaniem fstab, jednak zawsze używam co najmniej pierwszych czterech pól. Widzę, że brakuje ci trzeciego pola (fs_vfstype) w swoim komentarzu. Pomijasz to w fstab? Powinieneś edytować swoje pytanie i pokazać dokładnie to, czego próbowałeś fstabi którego edytora użyłeś. To powiedziawszy, żaden z moich punktów montowania nie jest inny niż domyślny / Volumesdla którego nonejest ustawiony. Przetestuję, gdy zobaczę twoją edycję i punkt montowania, którego próbujesz.
user3439894

Odpowiedzi:

17

Podczas korzystania z systemu OS X zwykle zaleca się używanie go diskutildo działań związanych z dyskami.

TL; DR:

Aby zamontować wolumin / dysk według identyfikatora:

diskutil mount /dev/diskXsY          # mounts just that volume
diskutil mountDisk /dev/diskX        # mounts the whole disk

Aby zamontować wolumin według identyfikatora UUID:

diskutil mount [Volume/Partition UUID]

Aby zamontować wolumin według etykiety:

diskutil mount [label]

Wyjaśnienie

Za pomocą diskutilidentyfikatorów węzłów ( /dev/diskXsY) można stosować zamiennie z identyfikatorami UUID: w dowolnej diskutiloperacji (np. eject) Zamiast identyfikatora węzła można podać identyfikator UUID. Ze strony podręcznika:

URZĄDZENIA

Parametr urządzenia do dowolnego z powyższych poleceń (z wyjątkiem przypadków, gdy jest to wyraźnie wymagane inaczej) może zwykle być jednym z poniższych:

o Identyfikator dysku (patrz poniżej). Dowolny wpis w postaci dysku *, np. Disk1s9.

o Wpis węzła urządzenia zawierający identyfikator dysku. Dowolny wpis w postaci / dev / disk *, np. / Dev / disk2.

o Punkt montowania woluminu. Wszelkie wpisy w postaci / Volumes / *, np. / Volumes / Untitled. W większości przypadków „niestandardowy” punkt montowania, np. / Your / custom / mountpoint / here, jest również akceptowany.

o Formularz adresu URL dowolnej z opisanych wyżej punktów montowania woluminów. Np. Plik: /// Woluminy / Bez tytułu lub plik: ///.

o UUID. Wszelkie wpisy w formie np. 11111111-2222-3333-4444-555555555555. UUID może być UUID „medialnym”, który IOKit umieszcza w węźle IOMedia na podstawie np. UUID partycji mapy GPT, lub może być zestawem AppleRAID (lub CoreStorage) (LV) lub członkiem (PV) UUID.

Z man diskutilsekcji „Urządzenia”.


Uzyskanie tych identyfikatorów / identyfikatorów UUID / etykiet jest proste za pomocą jednego z następujących poleceń:

diskutil list                               # lists all connected volumes and their identifiers
diskutil info /dev/diskXsY | grep UUID      # gets the UUID of a connected volume

Zwrócone wartości z tych poleceń powinny wyglądać mniej więcej tak:

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

$ diskutil info /dev/diskXsY | grep UUID
Volume UUID:              1F340CD7-G071-4218-98DG-2D08G89CC57C
Disk / Partition UUID:    76E7G531-G6C3-5E37-C11B-BCEEC67D12G4

Jak pokazano powyżej, identyfikator można znaleźć z IDENTIFIERkolumny, etykietę z NAMEkolumny i identyfikator UUID z dowolnego UUIDpola (każdy z UUID zamontuje wolumin).

Według etykiety:

$ diskutil mount Recovery\ HD
Volume Recovery HD on Recovery HD mounted

Według UUID:

$ diskutil mount 67EG87EB-CB01-4ED9-082D-303F63CF6394
Volume Recovery HD on 67EG87EB-CB01-4ED9-082D-303F63CF6394 mounted

Według identyfikatora dysku:

$ diskutil mount /dev/disk0s3
Volume Recovery HD on /dev/disk0s3 mounted

dodatek do edycji pytania OP: montaż na niestandardowej ścieżce

Możesz to zrobić za pomocą diskutil mounti -mountPointopcji. Ze strony podręcznika:

mount [readOnly] [-mountPoint path] device

Zamontuj pojedynczy wolumin. Jeśli określono opcję readOnly, system plików jest montowany tylko do odczytu, nawet jeśli podstawowy system plików woluminu i / lub urządzenie i / lub nośnik obsługuje zapis; nawet superużytkownik nie może do niego pisać; jest to to samo co rdonly opcja mount (8). Jeśli podano -mountPoint, wówczas ścieżka ta, zamiast standardowej ścieżki / Volumes / VolumeName, będzie używana jako widok zawartości pliku woluminu; katalog w tej ścieżce musi już istnieć.

Z man diskutilsekcji „Czasowniki”.

Składnia montowania do niestandardowego punktu montowania jest następująca:

diskutil mount -mountPoint /path/to/custom/mountpoint [volume (identifier/UUID/label)]

Pamiętaj, że /path/to/custom/mountpoint musi to być katalog , podobnie jak w przypadku mount, i że twój identyfikator / UUID / etykieta jest specyficzny dla woluminu (tzn. /dev/diskXsYNie /dev/diskX). Nie można wykonać montażu na niestandardowym punkcie montowania diskutil mountDiski działa on tylko z jednym woluminem naraz.

być może może być
źródło
Dzięki za odpowiedź, czy mógłbyś sprawdzić sekcję dotyczącą aktualizacji w moim pytaniu i rozwiązać ją?
biocyberman
@biocyberman zaktualizował moją odpowiedź. Jeśli nie odnosi się odpowiednio do twojego dodatku, daj mi znać
może
2

Oto, czego użyłem do zamontowania zewnętrznego dysku SSD w moim folderze Music, który automatycznie zawiera moje pliki multimedialne iTunes za każdym razem, gdy się loguję. Nie powiedziałeś dokładnie, jaki jest cel zewnętrznego podłączenia, więc niektóre z tych bitów mogą nie być tym, czego potrzebujesz, ale z drugiej strony może to być dokładnie to, co próbujesz zrobić.

Jak wspomniano w pytaniu i odpowiedzi @ być może maybeharry, mountpolecenie nie obsługuje UUID, więc diskutiljest to zalecane narzędzie. Jednak fstabplik obsługuje identyfikatory UUID, więc możesz zapisać parametry montowania, fstaba następnie diskutilodczytać parametry, fstababy podłączyć dysk.

  • W ~/Music/iTunes/utwórz folder, który będzie używany dla punktu montowania. Kiedyś SSD_Music.
  • Użyj sudo vifsdo edycji fstabpliku, dodaj następujące elementy w jednym wierszu (odpowiednio dla UUID i USERNAME), a następnie zapisz / wyjdź. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = nie montuj napędu podczas uruchamiania. Zetknąłem się z czasami, w których dysk był podłączony jako root zamiast jako ja, więc lepiej poczekać, aż się zalogujesz.
    • noowners = Zignoruj ​​własność woluminu. Uprawnienia zostaną odziedziczone z punktu montowania. Gdybym tego nie używał, podłączony wolumin był własnością root, ale podkatalogi należały do ​​mnie.
    • nobrowse = Nie pokazuj dysku na pasku bocznym Findera lub na pulpicie.
  • Wykonaj podłączenie za pomocą diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8( Uwaga: Nie dołączaj UUID=prefiksu do tego polecenia.
  • Mam nadzieję, że zamontował się bez błędów. Sprawdź, za pomocą mountktórego powinien pokazywać się coś takiego/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Jeśli robisz to dla iTunes, musisz utworzyć alias dla iTunes Mediafolderu, aby wskazywał folder na zamontowanym dysku.
    • Zamknij iTunes, jeśli jest uruchomiony
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media'aby skopiować multimedia na nowy dysk. Pomiń to, jeśli już go skopiowałeś.
  • Odmontuj dysk za pomocą diskutil unmount ~/Music/iTunes/SSD_Music

Teraz, gdy możesz zamontować dysk za pomocą UUID, zautomatyzujmy go po zalogowaniu.

  • W ~/Library/LaunchAgents/utwórz nowy plik o nazwielocal.mount_SSD_Music.plist
  • Skopiuj / Wklej następujący kod XML do nowego pliku, a następnie zapisz / wyjdź.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Disabled</key>
        <false/>
        <key>KeepAlive</key>
        <false/>
        <key>Label</key>
        <string>local.mount_SSD_Music</string>
        <key>ProcessType</key>
        <string>Background</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/sbin/diskutil</string>
            <string>mount</string>
            <string>F8C88B2D-5412-343B-8969-254F3AC559B8</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    
  • Upewnij się, że napęd jest odmontowany

  • Przetestuj montaż za pomocą nowego plistera LaunchAgent z launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Mam nadzieję, że zamontował się ponownie bez błędów.

Jeśli teraz uruchomisz ponownie, dysk zewnętrzny zostanie automatycznie podłączony po zalogowaniu.

Mam nadzieję że to pomoże!

Oprogramowanie Insomniac
źródło
0

Łączę część mojego komentarza w odpowiedź, ponieważ uważam, że rozwiązuje ten fstabproblem.

Jak już się dowiedziałeś, mountpolecenie nie może używać UUIDlub LABELmusi używać identyfikatora dysku, np /dev/disk0s4. Dodatkowo jako perhapsmaybeharry podkreślić, że metoda OS X jest użycie diskutil. Aby rozwiązać problem z aktualizacją ... fstabMożna jednak użyć UUIDlub LABEL, po prostu spójrz na przykłady na stronie podręcznika użytkownika dla fstab. W typie terminala, fstaba następnie kliknij prawym przyciskiem myszy fstabi wybierz opcję Otwórz stronę man. Przeczytaj w całości! :)

Nie mam problemów z używaniem fstab, jednak zawsze używam co najmniej pierwszych czterech pól. Widzę, że brakuje ci trzeciego pola (fs_vfstype) w swoim komentarzu. Pomijasz to w fstab? Powinieneś edytować swoje pytanie i pokazać dokładnie to, czego próbowałeś fstabi którego edytora użyłeś.

Spróbuj: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto gdzie /mount/pointjest istniejący katalog.

Przetestowałem to na moim systemie za pomocą mojego UUID, to jest twój UUIDw linii Sugeruję, aby spróbować powyżej.

Uwaga: Montowałby się tylko w zdefiniowanym punkcie montowania, gdybym zawarł trzecie pole (fs_vfstype), w przeciwnym razie montowałoby się w nim, /Volumesmimo że istniało drugie pole (fs_file).

użytkownik3439894
źródło
Testowałem to wcześniej i mam dwa identyczne woluminy zamontowane UUID=... /mount/point hfs rw,autow El Capitan: 1. / mount / point i 2. / Volumes.
klanomath
@klanomath, Nie jestem pewien, co próbujesz powiedzieć, a może to działa tak, jak powiedziałem w mojej odpowiedzi? A może mówisz, że montuje się dwa razy, bez względu na wszystko? BTW Używam OS X 10.8.5.
user3439894
@klanomath, zredagowałem to, mam nadzieję, że jest bardziej przejrzyste. Wracając do pierwszego komentarza, czy mówisz, że w systemie OS X 10.11 będzie montowany do niestandardowego punktu montowania, ale także domyślnie montuje drugi punkt montowania /Volumes, z dodaną tylko jedną linią fstab?
user3439894
Tak, to było moje doświadczenie. Napisałem podobną odpowiedź, ale potem zdałem sobie sprawę, że wolumin został pokazany dwukrotnie: na pulpicie (którym jest / Volumes) i w punkcie montowania zdefiniowanym w fstab (którym był / Users / user / test)
klanomath
@klanomath, nigdy nie widziałem twojej odpowiedzi, chyba usunąłeś ją zanim zobaczyłem to pytanie. Ponieważ korzystam z systemu OS X 10.8.5 i nie mam komputera z systemem OS X 10.11.x do przetestowania, nie mogę zrobić nic więcej poza usunięciem mojej odpowiedzi.
user3439894