2017年、AppleはmacOS(High Sierra以降)のデフォルトのファイルシステムをAPFS、つまりAppleFileSystemに変更しました。 HFS+に取って代わりました。
パーティションではなく、コンテナを使用するという原則に基づいて機能します。優れたクローン効率、より優れた暗号化、スナップショットサポート、およびその他のいくつかの利点があります。
目次
独自のプラトル
Appleの世界では最近のすべてのものと同様に、彼らは物事を共有することを好みません。これが彼らのビジネスに悪影響を与える可能性がある場合でも。たとえば、FaceTimeを取り上げます。もし彼らがそのプラットフォームを不可知論者にしたなら、つまりWindows、Android、そしておそらくLinux / Webプラットフォームの人々がそれを使うことができたなら、FaceTimeはSkypeのようなものから市場シェアの多くを奪っていただろう。 APFSも例外ではありません。 AppleはAPIを共有していないため、ある程度の推測、詳細な調査、およびリバースエンジニアリングを行うのは人々に依存しています。ファイルの整合性を管理するシステムで作業している場合、これらすべては決して良いことではありません!
MacでLinuxを使用していて、ハードドライブのMacパーティションにあるファイルにアクセスする必要がある場合は、問題が発生する可能性があります。 10.3(High Sierra)より前のバージョンのmacOSを使用している場合、MacはHFS+を使用します。 HFS +パーティションを読み取り/書き込みとしてマウントする方法については、MacでのLinuxの使用に関する包括的なガイドをご覧ください。
どうすれば機能させることができますか?
新しいAPFSユーザーの場合、幸いなことに、apfs-fuseというドライバーを使用してMacのAPFSディスクにアクセスできるようになりました。このドライバーはLinuxディストリビューションの一部ではないため、ソースコードからビルドする必要があることに注意してください。この短いガイドでは、その方法を説明します。
バマー、読み取り専用…。
残念ながら、少なくとも今のところ、読み取り専用アクセスに制限されています。その結果、この実験的なソフトウェアに存在する可能性のあるバグによってデータが損傷することはありません。ドライバーに関連付けられているマウントツールも、透過的なLZFSE解凍を実行しません。このツールを「Mojave」macOSコンピューターで数週間使用していますが、正常に機能します。
ツールを作成する
まず、これはまったくの初心者向けのチュートリアルですが、今回はすべてターミナルで機能します。コマンドラインでの作業に慣れていなくても、あまり心配する必要はありません。手順をコピーして貼り付けても安全です。
まず、APFS-Fuseドライバーを構築するための適切なツールが必要です。ターミナルアプリを開き、次のコマンドを入力します:
sudo apt update
sudo apt install libicu-dev bzip2 cmake libz-dev libbz2-dev fuse3 libfuse3-3 libfuse3-dev clang git libattr1-dev
On older versions of Ubuntu, you may need to use the following: sudo apt install fuse libfuse-dev libicu-dev bzip2 cmake libz-dev libbz2-dev clang git libattr1-dev
これで、gitを使用してドライバーのソースコードをダウンロード(クローン)できます:
git clone https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
git submodule init
git submodule update
それが終わったら、ダウンロードしたソースコードをコンパイルします。
mkdir build
cd build
cmake ..
make
コンパイル後、バイナリはビルドディレクトリに配置されます。パスでアクセスできるディレクトリ(/ usr / local / binなど)にapfs*ツールをコピーすることをお勧めします。それらをコピーするには、次のようにします。
sudo cp apfs-* /usr/local/bin
次に、macOSがオンになっているディスクパーティションを確認する必要があります。 fdisk -lコマンドを使用すると、ディスクのレイアウトを確認できます。
$sudo fdisk -l
--- 8>--snipped the loop volumes--<8 ---
Disk /dev/sda: 465.9 GiB, 500277790720 bytes, 977105060 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 6153AD88-FE14-4E88-8D9A-60E8AA465516
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 409640 764593231 764183592 364.4G unknown
/dev/sda3 764594176 781570047 16975872 8.1G Microsoft basic data
/dev/sda4 781832192 976842751 195010560 93G Microsoft basic data
--- 8>--snipped the loop volumes--<8 ---
上記の私の例では、364.4GBの不明なパーティションがあることがわかります。私のmacOSパーティションのサイズが365GBであることを知っているので、これが私のmacOSパーティションであることを知っています。これは、デバイス識別子が/ dev / sda2であることを意味するため、これをマウントします。
それをチェックして、機能するかどうかを確認しましょう…。
sudo mkdir -p /media/$USERNAME/macos
sudo ./apfs-fuse -o allow_other /dev/sda2 /media/<your userame>/macos
うまくいけば、この時点でエラーメッセージが表示されないことを願っています。持っている場合は、おそらくREADMEファイルがいくつかの啓蒙を提供することができます。
固執させる
コンピュータを起動するたびにmacosパーティションを自動的にマウントする場合は、ファイルシステムテーブル(fstab)を編集する必要があります。これを行うには、apfsマウントツールへのシンボリックリンクを作成してから、fstabを編集する必要があります(nanoがない場合は、vimを使用してください):
sudo ln -s /usr/local/bin/apfs-fuse /usr/sbin/mount.apfs
sudo nano /etc/fstab
ファイルの下部に(すべて1行に)次のような行を追加します:
mount.apfs#/dev/sda2 /media/<your username>/macos/ fuse user,allow_other 0 0
それがすぐに機能するかどうかを確認したい場合は、ディスクをアンマウントするだけです(以下のクリーンアップセクションを参照してください)。次に、sudo mount -aと入力して、fstabからディスクをマウントします。
パーティションを理解する
パーティションがマウントされると、private-dirとrootの2つのディレクトリが表示されます。ディレクトリルートはあなたが望むものです。内部には、Macのルートファイルシステムがあります。自分のものは「ユーザー」フォルダにあります。
クリーンアップ(アンマウント)
macosディレクトリを正しくアンマウントするには、fusermountコマンドを使用する必要があります:
fusermount -u /media/<your username>/macos
これがMacのファイルへのアクセスに役立つことを願っています。この記事を共有して、下のコメントセクションでどのように進んでいるか教えてください。