この投稿ではコマンドラインでAPFSボリュームを作る方法を説明します。
APFS、コンテナ、ボリューム
APFS(Apple File System)はmacOS High Sierraで導入されたファイルシステムです。従来のファイルシステムは、物理ディスクとそれをいくつかの領域に分割する「パーティション」の概念からなるものでした。APFSは物理ディスク、コンテナ、ボリュームの概念からなり、従来のものと異なります。
APFSコンテナはざっくりいうと、パーティションに当たります。APFSでは、このコンテナの中にボリュームがいくつか作れます。ボリュームはコンテナ内でディスク容量を共有できます。
CLIでAPFSを操作する
APFSはdiskutil
コマンドを使うとCLIで操作できます。
APFSコンテナの状態を表示する
diskutil ap list
APFSボリュームを追加する
diskutil ap addVolume ${コンテナ名} APFS ${ボリューム名}
例: disk1コンテナにMyDataボリュームを追加する
diskutil ap addVolume disk1 APFS MyData
/Volumes/MyDataが作られます。
マウントするパスを指定しながらAPFSボリュームを追加する
ディスクユーティリティのアプリのほうからは、APFSボリュームをマウントするパスを指定できず、/Volumesにできあがってしまいますが、diskutil
を使うと任意のパスにAPFSボリュームをマウントできます。
マウント先は-mountpoint
オプションで指定します。マウント先指定は実行にroot権限が必要なのでsudo
で実行してください。
sudo diskutil ap addVolume ${コンテナ名} APFS ${ボリューム名} -mountpoint ${マウント先のパス}
例: disk1コンテナにMyDataボリュームを追加する
マウント先となるディレクトリは予め作っておきます:
mkdir ~/MyData
-mountpoint
オプションに上で作ったディレクトリのパスを指定しながら実行します:
sudo diskutil ap addVolume disk1 APFS test -mountpoint ${HOME}/MyData
大文字小文字区別のAPFSボリュームを追加する
デフォルトで作られるAPFSボリュームは、ファイル名の大文字小文字を区別しません(case-insensitive)。大文字小文字区別する(case-sensitive)ボリュームを作るには、"Case-sensitive APFS"の指定をします。
diskutil ap addVolume ${コンテナ名} "Case-sensitive APFS" ${ボリューム名}
例: disk1コンテナに大文字小文字区別のボリュームを追加する
diskutil ap addVolume disk1 "Case-sensitive APFS" CaseSenstiveVolume
cd /Volumes/CaseSenstiveVolume/
touch a A
ls
# a Aと出力されます
暗号化されたAPFSボリュームを追加する
暗号化された状態のAPFSボリュームを作るには、-passprompt
オプションをつけて実行します。
diskutil ap addVolume ${コンテナ名} APFS ${ボリューム名} -passprompt
実行すると、プロンプトでボリュームのパスワードを何にするか聞いてくるので、設定したいパスワードを入力します。
例: disk1コンテナに暗号化されたMyEncryptedDataボリュームを追加する
diskutil ap addVolume disk1 APFS MyEncryptedData -passprompt