Как смонтировать APFS в Linux или Windows?

Есть ли способ монтировать APFS раздел только для чтения или чтение / запись в Linux или Windows?

6 ответов

На самом деле есть бесплатные инструменты для обеих ОС.

Это мои инструменты повседневного использования на моем hackintosh.

Установите libfsapfs-utils (проверено в Ubuntu 20.04)

1. Смонтируйте раздел APFS 3 /dev/sdd в каталог /mnt.

fsapfsmount -f 1 /dev/sdd3 /mnt

где, -f file_system_index (монтирует определенную файловую систему)

2. Отключите раздел APFS, смонтированный в каталоге /mnt

fusermount -u /mnt

Есть специальный linux-apfsдрайвер, у которого даже есть экспериментальная поддержка записи: https://github.com/linux-apfs

Если вы используете Arch Linux или производную версию, вы можете установить ее из AUR.

Я не проверял это сам, но кажется, что коммерческое решение доступно (в настоящее время только для чтения):

https://backstage.paragon-software.com/business/apfs-linux/

Хотя на странице мало что сказано, даже не цена.

Как смонтировать файловые системы Apple APFS

1. Инструменты FOSS для Linux

Мне удалось заставить работать два действительно хороших инструмента:

  1. на сегодняшний день это лучшее, что я работал, но его текущее ограничение заключается в том, что «Шифрование еще не реализовано, даже в режиме только для чтения». Для моего MacBook Air 2015 года это не имело большого значения, но я думаю, что большинство, если не все современные MacBook, теперь зашифрованы, что может создать проблему. Чтобы установить его в Linux Ubuntu (в том числе на USB-накопитель Ubuntu 22.04), запустите следующий скрипт. Запуск на свежезагруженном USB-накопителе Ubuntu 22.04 занимает пару минут, но это, безусловно, лучше, чем перепечатывать это каждый раз, когда вам это нужно!:

    install_linux-apfs-rw.sh:

            #!/usr/bin/env bash
    
    # Gabriel Staples
    # 20 May 2023
    
    # Install a linux kernel APFS Apple Filesystem module to allow us
    # to mount and read Apple AFPS drives.
    # See my instructions online: 
    # https://github.com/linux-apfs/linux-apfs-rw/issues/42#issuecomment-1556103266
    install_apfs() {
        STARTING_DIR="$(pwd)"
    
        sudo add-apt-repository universe -y
        sudo apt update
        sudo DEBIAN_FRONTEND=noninteractive apt install -y \
            linux-headers-$(uname -r) \
            git \
            gcc \
            g++ \
            cmake \
            make \
            ncdu
    
        mkdir -p ~/dev
        cd ~/dev
        git clone https://github.com/linux-apfs/linux-apfs-rw.git
        cd linux-apfs-rw
        time make
        sudo modprobe libcrc32c
        sudo insmod apfs.ko
    
        cd "$STARTING_DIR"
    
        echo "Done installing linux-apfs-rw kernel module"\
             "to allow you to mount and read Apple APFS filesystems!"
    }
    
    install_all() {
        time install_apfs "$@"
    }
    
    # Determine if the script is being sourced or executed (run).
    # See:
    # 1. "eRCaGuy_hello_world/bash/if__name__==__main___check_if_sourced_or_executed_best.sh"
    # 1. My answer: https://stackoverflow.com/a/70662116/4561887
    if [ "${BASH_SOURCE[0]}" = "$0" ]; then
        # This script is being run.
        __name__="__main__"
    else
        # This script is being sourced.
        __name__="__source__"
    fi
    
    # Only run `main` if this script is being **run**, NOT sourced (imported).
    # - See my answer: https://stackoverflow.com/a/70662116/4561887
    if [ "$__name__" = "__main__" ]; then
        time install_all "$@"
    fi
    

    Отметьте его как исполняемый и запустите:

            chmod +x install_linux-apfs-rw.sh
    ./install_linux-apfs-rw.sh
    

    Что действительно приятно в этом инструменте, так это то, что он работает с обычнымиmountкоманда, поэтому нажатие на диск APFS в файловом менеджере с графическим интерфейсом автоматически монтирует и открывает его!

    Я попросил Parted Magic установить Parted Magic как часть образа по умолчанию в этом частном сообщении на форуме здесь: https://partedmagic.com/forums/viewtopic.php?p=8936#p8936. Посмотрим, сделают ли они это. Надеюсь, они это сделают!

  2. . Этот инструмент легко установился и позволил мне читать файлы, ноduбудет отображать все файлы на подключенном диске APFS как 0 байт. Я не знаю, почему. Я открыл проблему здесь: https://github.com/sgan81/apfs-fuse/issues/180 .

    Вот мои инструкции по установке и использованию , опять же, на свежем USB-накопителе Ubuntu 20.04 или 22.04:

    Как построитьapfs-fuseна свежем USB-накопителе Ubuntu 20.04

             # See: https://askubuntu.com/a/227788/327339
    sudo add-apt-repository universe
    
    sudo apt install ncdu
    
    # see my comment: https://github.com/sgan81/apfs-fuse/issues/101#issuecomment-1547206616
    sudo apt install fuse libfuse3-dev bzip2 libbz2-dev cmake gcc g++ git libattr1-dev zlib1g-dev
    
    git clone https://github.com/sgan81/apfs-fuse.git
    cd apfs-fuse
    git submodule update --init --recursive
    mkdir build
    cd build
    cmake ..
    time make
    
    ./apfs-fuse -h
    
    # mount
    mkdir -p ~/mount/macbook
    sudo ./apfs-fuse /dev/sda2 ~/mount/macbook/
    # unmount
    sudo umount ~/mount/macbook
    

    И для просмотра смонтированных файлов как root через Ubuntu по умолчаниюnautilusФайловый менеджер:

             sudo nautilus /home/ubuntu/mount/macbook/
    

    Самое замечательное в этом инструменте то, что как только я его создал, даже если собрать его на своей основной машине с Linux, использовать его на USB-накопителе Ubuntu или даже на загрузочном диске Parted Magic , это было так же просто, как скопировать исполняемый файл!

    Оно бы просто побежало.

Вот и все, что касается бесплатных инструментов с открытым исходным кодом, которые я смог использовать в работе, и я очень старался над этим, вероятно, потратив на это одну полную неделю и около 70 часов.

2. Платные инструменты для Windows или Linux

В будущем, если мне понадобится инструмент для работы, и я не хочу тратить свое время, и если один из двух вышеупомянутых инструментов не будет работать сразу (например, в зашифрованной файловой системе APFS), я думаю, что я Я просто выложу 40 долларов и готово!

  1. Для Linux: 40 долларов США для личного использования: APFS для Linux от Paragon Software -> нажмите «Купить сейчас». Наверное, оно того стоит.
  2. Для Windows: пробная версия бесплатна, в противном случае она стоит 50 долларов США для личного использования: APFS для Windows от Paragon Software -> нажмите «Загрузить», чтобы получить пробную версию, или «Купить сейчас», чтобы купить.

У них тоже есть лицензии на ведение бизнеса. Я дам вам найти ссылки оттуда.

Экосистема инструментов APFS

Создательlinux-apfs-rwбыл достаточно любезен, чтобы помочь мне понять различные доступные инструменты, здесь :

Я думаю, было бы неплохо иметь раздел «альтернативы» в файле readme.

Думаю, в конце концов я смогу это сделать. А пока расскажу тут быстро:

https://github.com/sgan81/apfs-fuse

Это драйвер предохранителя, а не драйвер ядра. Так что он, вероятно, более портативен, но и намного медленнее. В отличие от моего, он также поддерживает шифрование, но доступен только для чтения и не планирует поддерживать запись. Для реализации записи требуется гораздо больше работы, чем для чтения, так что это большой плюс как для моего драйвера, так и для драйвера Paragon.

https://github.com/libyal/libfsapfs

Я никогда не использовал его (хотя некоторую информацию о макете я получил из работы автора). Первое очевидное отличие состоит в том, что это библиотека. Итак, еще раз, он более портативен, чем мой, и его можно встроить в другие инструменты, если вы этого хотите. Я думаю, что он включает в себя способ крепления с помощью предохранителя, поэтому в этом отношении он похож на предыдущий.

Если предположить, что README обновлен, то, похоже, в нем отсутствует поддержка снимков и нескольких алгоритмов сжатия, которые поддерживаются в моем драйвере (а также, я полагаю, в apfs-fuse). Я не знаю, где оно находится в некоторых вещах, о которых не упоминается, например, в запечатанных томах. Я предполагаю, что они не реализованы. Хотя он поддерживает шифрование.

Как и apfs-fuse, он также доступен только для чтения, и, насколько я понимаю, поддержка записи не планируется.

https://www.paragon-software.com/us/home/apfs-linux/

Основным недостатком этого является то, что он платный и с закрытым исходным кодом. Я никогда им не пользовался (полагаю, он дорогой?), поэтому о его качестве говорить не могу, извините. Вероятно, он гораздо более полный, чем мой, и они не используют «экспериментальный» отказ от ответственности, как я, поэтому они должны быть очень уверены, что записи работают правильно. Однако никто не любит терять данные, и мы мало что знаем о процессе его разработки, поэтому, если вас интересует этот вариант, вам следует поговорить с другими клиентами и узнать, надежен ли он.

Смотрите также

  1. Если вы пытаетесь выполнить резервное копирование данных с CrapMacBook, используя Live USB с Linux, загруженный на Mac, я рекомендую файловую систему exFAT, но это немного сложно. Вот несколько ответов, которые я написал для этого проекта и которые вам понадобятся:
    1. Какую файловую систему использовать для Windows, Mac и Linux?
    2. Как отформатировать файловую систему exFAT в Linux с желаемым размером кластера, чтобы настроить ваш выбор по кривой компромисса между скоростью и использованием диска
    3. Лучший rsyncнастройки для копирования и зеркалирования в или из файловых систем FAT и exFAT
    4. [статья на моем веб-сайте] Скорость файловой системы exFAT и использование диска в зависимости от размера кластера
  2. [статья на моем сайте] Как починить MacBook, если он не загружается

Paragon теперь имеет драйвер с полной поддержкой чтения / записи:

https://www.paragon-software.com/home/apfs-linux/

(это не бесплатно, хотя)

Другие вопросы по тегам