OS X El CapitanでUUIDまたはLABELでディスクをマウントする方法は?


17

ディスクのUUIDとラベルを取得します 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 ボリュームラベルの使用は機能しません。

$ 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の使用は、引用符の有無にかかわらず機能しません。

$ 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 ボリューム識別子を使用して動作します

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

更新:

私の目標は、ボリュームをカスタムマウントポイントにマウントするときにmount行を/etc/fstab追加することです。


既にわかっているように、mountコマンドはディスク識別子を使用できないUUIDLABEL、使用する必要があります/dev/disk0s4。さらに多分maybeharryが指摘したように、OS Xの方法は使用することdiskutilです。更新に対処するには...ただしfstabUUIDまたはを使用することはできますLABELが、のマニュアルページの例をご覧くださいfstab。ターミナルタイプfstabで、右クリックしfstabて[マニュアルページを開く] を選択し、全体を読みます。:)
user3439894

@ user3439894私はfstabこのような行を試してみました:UUID=<volume_uuid> /mount/point auto、そして走りましたsudo mount -a。同じエラーが発生しました:... mount_hfs: No such file or directory
biocyberman

2番目のフィールド(fs_file)、マウントポイントは、すでに存在している必要がありますか?
user3439894

はい、存在します。
バイオサイバーマン

を使用しても問題はありませんがfstab、少なくとも最初の4つのフィールドは常に使用します。コメントに3番目のフィールド(fs_vfstype)がありません。あなたはそれを省略していfstabますか?質問を編集し、何を試したかfstab、どのエディタを使用したかを正確に示す必要があります。とは言っても、私のマウントポイントはどれも、デフォルトの/ が設定さVolumesれているもの以外はありませんnone。あなたの編集とあなたが試みているマウントポイントを確認したらテストします。
user3439894

回答:


17

OS Xを使用する場合、通常diskutilはディスク関連のアクティビティに使用することをお勧めします。

TL; DR:

識別子でボリューム/ディスクをマウントするには:

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

UUIDでボリュームをマウントするには:

diskutil mount [Volume/Partition UUID]

ラベルでボリュームをマウントするには:

diskutil mount [label]

説明

ではdiskutil、ノード識別子(/dev/diskXsY)はUUIDと交換可能です。任意のdiskutil操作(などeject)で、ノード識別子の代わりにUUIDを指定できます。manページから:

デバイス

上記のコマンドのいずれかに対するデバイスパラメータ(明示的に必要な場合を除く)は通常、次のいずれかです。

oディスク識別子(以下を参照)。disk *の形式のエントリ(例:disk1s9)。

oディスク識別子を含むデバイスノードエントリ。/ dev / disk *の形式のエントリ(例:/ dev / disk2)。

oボリュームマウントポイント。/ Volumes / *の形式のエントリ(例:/ Volumes / Untitled)。ほとんどの場合、「/ your / custom / mountpoint / here」などの「カスタム」マウントポイントも使用できます。

o上記のボリュームマウントポイント形式のURL形式。例:file:/// Volumes / Untitledまたはfile:///。

o UUID。11111111-2222-3333-4444-555555555555などの形式のエントリ。UUIDは、GPTマップのパーティションUUIDなどから派生したIOMediaノードにIOKitが配置する「メディア」UUIDでも、AppleRAID(またはCoreStorage)セット(LV)またはメンバー(PV)UUIDでもかまいません。

からman diskutil、「デバイス」セクション。


これらの識別子/ UUID /ラベルの取得は簡単で、次のコマンドのいずれかを使用します。

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

これらのコマンドから返される値は、次のようになります。

$ 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

上記のように、識別子はIDENTIFIER列から、ラベルはNAME列から、UUIDはいずれかのUUIDフィールドから見つけることができます(いずれかのUUIDがボリュームをマウントします)。

ラベル別:

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

UUIDによる:

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

ディスク識別子別:

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

OPの質問の編集用の追加:カスタムパスへのマウント

これはdiskutil mount-mountPointオプションで実行できます。manページから:

マウント[読み取り専用] [-mountPointパス]デバイス

単一のボリュームをマウントします。readOnlyが指定されている場合、ボリュームの基盤となるファイルシステムやデバイス、メディアが書き込みをサポートしていても、ファイルシステムは読み取り専用でマウントされます。スーパーユーザーでさえ書き込みません。これは、mount(8)のrdonlyオプションと同じです。-mountPointが指定されている場合、/ Volumes / VolumeNameの標準パスではなく、そのパスがボリュームファイルコンテンツへのビューとして使用されます。そのパスのディレクトリはすでに存在している必要があります。

からman diskutil、セクション「動詞」。

カスタムマウントポイントにマウントする構文は次のとおりです。

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

/path/to/custom/mountpoint ように、ディレクトリである必要がありmount、識別子/ UUID /ラベルはボリュームに固有(つまりで/dev/diskXsYはない/dev/diskX)であることを覚えておいてください。カスタムマウントポイントへのマウントはdiskutil mountDisk、では実行できず、一度に1つのボリュームでのみ機能します。


答えてくれてありがとう、私の質問の更新セクションをチェックして対処してもらえますか?
biocyberman

@biocybermanが私の答えを更新しました。追加が適切に処理されない場合は、お知らせください。
おそらく

2

ログインするたびに、iTunesメディアファイルを含むMusicフォルダーに外部SSDを自動的にマウントするために使用しているものです。必要なものになりますが、繰り返しますが、まさにあなたがやろうとしていることです。

あなたの質問と@perhapsmaybeharryの答えで述べたように、mountコマンドはUUIDをサポートしていないためdiskutil、推奨されるユーティリティです。しかし、fstabあなたがマウントパラメータ格納できるように、ファイルは、サポートUUIDを行いfstab、その後にdiskutilからパラメータを読み込みますfstabあなたのドライブをマウントします。

  • では~/Music/iTunes/、マウントポイントに使用するフォルダを作成します。使用しましたSSD_Music
  • ファイルsudo vifsを編集するために使用しfstab、次を1行として追加し(必要に応じてUUIDとUSERNAMEを編集)、保存/終了します。 UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto =起動中にドライブをマウントしません。ドライブが私ではなくルートとしてマウントされたことがあるので、ログインするまで待つ方が良いでしょう。
    • noowners =ボリュームの所有権を無視します。権限はマウントポイントから継承されます。これを使用しなかった場合、マウントされたボリュームはルートが所有していましたが、サブディレクトリは私が所有していました。
    • nobrowse = Finderサイドバーまたはデスクトップにディスクを表示しません。
  • マウントを実行diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8注: Doが含まれていないUUID=、このコマンドで接頭辞を。
  • うまくいけば、エラーなくマウントされました。以下のmountように表示されるはずです/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • iTunesでこれを行う場合はiTunes Media、マウントされたディスク上のフォルダーを指すフォルダーのエイリアスを作成する必要があります。
    • iTunesが実行中の場合は終了します
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media'メディアを新しいドライブにコピーします。既にコピーしている場合は、これをスキップします。
  • でディスクをアンマウントします diskutil unmount ~/Music/iTunes/SSD_Music

UUIDでドライブをマウントできるようになったので、ログイン時に自動化しましょう。

  • ~/Library/LaunchAgents/、という新しいファイルを作成しますlocal.mount_SSD_Music.plist
  • 次のXMLを新しいファイルにコピー/貼り付け、保存/終了します。

    <?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>
    
  • ドライブがアンマウントされていることを確認してください

  • で新しいLaunchAgent plistを使用してマウントをテストしlaunchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plistます。うまくいけば、エラーなしで再びマウントされます。

再起動すると、ログイン時に外部ドライブが自動的にマウントされます。

お役に立てれば!


0

このfstab問題に対処していると思うので、コメントの一部を回答にまとめています。

既にわかっているように、mountコマンドはディスク識別子を使用できないUUIDLABEL、使用する必要があります/dev/disk0s4。さらに多分maybeharryが指摘したように、OS Xの方法は使用することdiskutilです。更新に対処するには...ただしfstabUUIDまたはを使用することはできますLABELが、のマニュアルページの例をご覧くださいfstab。ターミナルタイプfstabで、右クリックしfstabて[マニュアルページを開く] を選択します。完全に読んでください!:)

を使用しても問題はありませんがfstab、少なくとも最初の4つのフィールドは常に使用します。コメントに3番目のフィールド(fs_vfstype)がありません。あなたはそれを省略していfstabますか?質問を編集し、何を試したかfstab、どのエディタを使用したかを正確に示す必要があります。

試してみてください: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,autoどこに/mount/point既存のディレクトリがあります。

私は自分を使用してシステム上でこれをテストしてみたUUID、それはあなただ、UUID私はあなたが上記試す示唆していラインに。

注: 3番目のフィールド(fs_vfstype)を含めると、定義されたマウントポイントにのみマウントされ/Volumesます。


これを以前にテストしましたがUUID=... /mount/point hfs rw,auto、El Capitanでマウントされた2つの同一のボリュームがありました:1. / mount / pointおよび2. / Volumes。
クラノマス

@klanomath、あなたが何を言おうとしているのかわからない、それ以外は多分それは私の答えで言ったように動作しますか?それとも、それが何であっても2回マウントすると言っていますか?ところで私はOS X 10.8.5を実行しています。
user3439894

@klanomath、私はそれを編集しましたが、うまくいけばより明確になります。最初のコメントに戻りますが、OS X 10.11ではカスタムマウントポイントにマウントされますが、2行目のマウントポイントもデフォルトでマウントされ、/Volumes1行だけ追加されfstabますか?
user3439894

はい、それは私の経験でした。同様の回答を書きましたが、ボリュームが2回表示されることに気付きました。デスクトップ(/ Volumes)とfstabで定義されたマウントポイント(/ Users / user / test)
klanomath

@klanomath、あなたの答えを見たことがありません。この質問を見る前にあなたがそれを削除したと思います。私はOS X 10.8.5を実行しており、テストするOS X 10.11.xマシンがないため、答えを削除する以外にできることはあまりありません。
user3439894
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.