環境
- OS: macOS Catalina
- ファイルシステム: APFS
事象
別パーティションにOSをインストールしたのに、インストール前ファイルにアクセスできてしまう。
行ったこと
下記の作業を行った
- macOSでOS自体の再インストールを行った。
- 既存のOSを念の為に保存しておきたく、GUIのDisk Utilityで別のAPFSボリュームを作成した。
- 起動時に「option + command + R」キーを使ってmacOS Catalinaのインストールを行った
- 新しいボリュームへ無事インストールを行えた。
- だが、「command + Space」でSpotlightを起動して検索すると、インストール前の別パーティションにあるデータが閲覧できてしまう。
原因
macOSで同じコンテナディスク内に別ボリュームを生成し、OSをインストールしたとき、新しいOSはコンテナディスク内の全部のボリューム(インストール前のものを含む)を自動でマウントしてしまうため。
コンテナとボリュームの一覧を確認するためには、cliでdiskutil list
を実行すれば良い。下記の例では、元々インストールされていたボリューム(disk1s5,disk1s1)に加えて新しく作ったボリューム(disk1s7,disk1s6)が見えている
sh-3.2# diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 500.0 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +500.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD - Data 113.0 GB disk1s1
2: APFS Volume Preboot 166.9 MB disk1s2
3: APFS Volume Recovery 1.1 GB disk1s3
4: APFS Volume VM 1.1 GB disk1s4
5: APFS Volume Macintosh HD 11.1 GB disk1s5
6: APFS Volume MacHD - Data 5.0 GB disk1s6
7: APFS Volume MacHD 11.1 GB disk1s7
マウントの状態をmount
コマンドで確認すると先程の4つがすべてマウントされていることがわかる
sh-3.2# mount | column -t
/dev/disk1s7 on / (apfs, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s6 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk1s4 on /private/var/vm (apfs, local, journaled, nobrowse)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
/dev/disk1s1 on /Volumes/Macintosh HD - Data (apfs, local, journaled, nobrowse)
/dev/disk1s5 on /Volumes/Macintosh HD (apfs, local, journaled)
対応方法
同じコンテナディスク内に存在する特定のボリュームを自動マウントさせないためにはfstabを変更すれば良い。
fstabに定義を追記するためには、自動マウントさせたくないボリュームのUUIDを調べる必要がある。
ボリュームのUUIDは、system_profiler SPStorageDataType
コマンドを実行するとわかる。
sh-3.2# system_profiler SPStorageDataType
Storage:
Macintosh HD - Data:
Free: 357.22 GB (357,223,976,960 bytes)
Capacity: 499.96 GB (499,963,174,912 bytes)
Mount Point: /Volumes/Macintosh HD - Data
File System: APFS
Writable: Yes
Ignore Ownership: No
BSD Name: disk1s1
Volume UUID: AEE6234F-C8A9-47CA-9A78-F32CC7D7F42E
Physical Drive:
Device Name: APPLE SSD AP0512J
Media Name: AppleAPFSMedia
Medium Type: SSD
Protocol: PCI-Express
Internal: Yes
Partition Map Type: Unknown
S.M.A.R.T. Status: Verified
Macintosh HD:
Free: 357.22 GB (357,223,976,960 bytes)
Capacity: 499.96 GB (499,963,174,912 bytes)
Mount Point: /Volumes/Macintosh HD
File System: APFS
Writable: Yes
Ignore Ownership: No
BSD Name: disk1s5
Volume UUID: 2198D52F-ED0D-4116-92BE-9239428E4FAE
Physical Drive:
Device Name: APPLE SSD AP0512J
Media Name: AppleAPFSMedia
Medium Type: SSD
Protocol: PCI-Express
Internal: Yes
Partition Map Type: Unknown
S.M.A.R.T. Status: Verified
この例だと、下記の2つを控えておく
- Volume UUID: AEE6234F-C8A9-47CA-9A78-F32CC7D7F42E
- Volume UUID: 2198D52F-ED0D-4116-92BE-9239428E4FAE
fstabファイルは、vifsコマンドで編集する。下記の例ではサイトの2行に追記しており、noauto
の部分で自動マウントをオフにしている。
$ sudo vifs
# Warning - this file should only be modified with vifs(8)
#
# Failure to do so is unsupported and may be destructive.
#
UUID=2198D52F-ED0D-4116-92BE-9239428E4FAE none apfs rw,noauto
UUID=AEE6234F-C8A9-47CA-9A78-F32CC7D7F42E none apfs rw,noauto
再起動後、mountコマンドを実行すると、自動マウントされていないことがわかる。
% mount | column -t
/dev/disk1s7 on / (apfs, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s6 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk1s4 on /private/var/vm (apfs, local, journaled, nobrowse)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
こちらもおススメ