今年の WWDC で発表された APFS を使い始めてみた。今年は誰でも録画されたセッションを見ることができるようになったようなので、NDA なにそれ美味しいの?状態みたい。
早速、下記のセッションを見てみましょう。
(※ 要 Safari、Resources に .mp4 もあります。)
Introducing Apple File System
https://developer.apple.com/videos/play/wwdc2016/701/
今回 Developer にリリースされた macOS Sierra (10.12) で APFS のフォーマットができるようになります。セッションによると APFS でフォーマットされたディスクは El Capitan 以降でマウントできるようです。(32:19)
APFS の良さについては既にあるニュースサイトの記事や上記セッションを確認してください。まだまだベータの実装なので正しく動かなくなったり、今後のアップデートで既存の APFS を認識しなくなったりする可能性があるのでテスト環境以外ではお勧めできない。
macOS Sierra の Beta 1 にあるディスクユーティリティはまだ APFS に対応していなかったのでターミナルのコマンドで操作します。イメージファイルを操作する hdiutil や、実際のディスクを操作する diskutil で使用できます。
セッションで実際にデモされたコマンドは
% hdiutil create -fs APFS -size 1GB apfs.sparsebundle
これで APFS の 1GB のディスクイメージを作成して APFS のテストをしていました。これならシステムに影響なく APFS を楽しむことができます。
実ディスクを diskutil を使って APFS にフォーマットするとこんな感じ
% diskutil list
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.5 TB disk2
1: EFI EFI 209.7 MB disk2s1
2: Apple_APFS 1.5 TB disk2s2/dev/disk2s2s1 (external, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Volume TOSHIBA +199.2 GB disk2s2s1
物理的(physical)なパーティション上に仮想(virtual)パーティションが作成されます。この仮想パーティションは物理パーティション上にいくつも作ることができます。その中の内部的データは共有されており、仮想パーティション間でのファイルコピーはどんな容量でも一瞬で終わります。
diskutil を使用したフォーマットもちゃんと動いたり動かなかったりしていて正しく作成するのが難しいのだけれど、下記の手順でとりあえずそれっぽい形になった。
% diskutil eraseDisk APFS [volumename] disk2
% diskutil apfs addVolume disk2s2 APFS [volumename]
% diskutil apfs deleteVolume disk2s2s2
% diskutil mount disk2s2s1
- 該当のボリュームを APFS でフォーマット
- 仮想ボリュームを作成
- なぜか2つの仮想ボリュームができるので2つ目を削除
- 仮想ボリュームをマウント
一度、マウントしてしまえば次からは普通にマウントされます。でも、現状のバージョンでは認識するまでが遅いので注意が必要ですね。とりあえずマウントしてしまえば普通に使えています。
使用できる APFS 関連のコマンドは % diskutil apfs でご参照ください。
引き続き APFS のテスト・研究を続けます。