All Projects → linux-apfs → Linux Apfs Oot

linux-apfs / Linux Apfs Oot

Licence: gpl-2.0
APFS module for linux (out-of-tree repository)

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Linux Apfs Oot

Locator
A node module that gives semantic meaning to filesystem paths.
Stars: ✭ 21 (-63.79%)
Mutual labels:  filesystem
Filesize.js
JavaScript library to generate a human readable String describing the file size
Stars: ✭ 997 (+1618.97%)
Mutual labels:  filesystem
Glusterfs Java Filesystem
GlusterFS for Java
Stars: ✭ 50 (-13.79%)
Mutual labels:  filesystem
Shell Functools
Functional programming tools for the shell
Stars: ✭ 971 (+1574.14%)
Mutual labels:  filesystem
Filemanager
Android File Manager Demo
Stars: ✭ 36 (-37.93%)
Mutual labels:  filesystem
Chokidar
Minimal and efficient cross-platform file watching library
Stars: ✭ 8,538 (+14620.69%)
Mutual labels:  filesystem
Pyfiling
Python script that organizes files in a folder or directory according to file type/extension.
Stars: ✭ 12 (-79.31%)
Mutual labels:  filesystem
30daysofnode
30 days of node is a code base tutorial series for node.js which deals with providing a practical project based learning experience instead of talking about its conceptual details.
Stars: ✭ 57 (-1.72%)
Mutual labels:  filesystem
Python Diskcache
Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.
Stars: ✭ 992 (+1610.34%)
Mutual labels:  filesystem
Flysystem Backblaze
💿 A backblaze adapter which can be used with flysystem(http://flysystem.thephpleague.com/)
Stars: ✭ 49 (-15.52%)
Mutual labels:  filesystem
Node Fs Extra
Node.js: extra methods for the fs object like copy(), remove(), mkdirs()
Stars: ✭ 8,142 (+13937.93%)
Mutual labels:  filesystem
Trash
macOS command line tool to move files to trash
Stars: ✭ 35 (-39.66%)
Mutual labels:  filesystem
Moosefs
MooseFS – Open Source, Petabyte, Fault-Tolerant, Highly Performing, Scalable Network Distributed File System (Software-Defined Storage)
Stars: ✭ 1,025 (+1667.24%)
Mutual labels:  filesystem
E Marketplace For Buying And Reselling Products Web Project Using Jsp Servlet Jstl Security Jdbc
An 🛒online shopping system 🛍️ using J2EE ☕(Jsp, Servlet, Jdbc, Jstl), MySql, Bootstrap. This is like Olx 📲with an Unique name BechDo 💰and here is the latest version with final commit.
Stars: ✭ 33 (-43.1%)
Mutual labels:  filesystem
Cords
File-system fault injection framework for distributed storage systems
Stars: ✭ 55 (-5.17%)
Mutual labels:  filesystem
Read Multiple Files
Read multiple files Observable way
Stars: ✭ 13 (-77.59%)
Mutual labels:  filesystem
Rmlint
Extremely fast tool to remove duplicates and other lint from your filesystem
Stars: ✭ 996 (+1617.24%)
Mutual labels:  filesystem
Udftools
Linux tools for UDF filesystems and DVD/CD-R(W) drives
Stars: ✭ 57 (-1.72%)
Mutual labels:  filesystem
F2fs Notes
F2FS的学习笔记以及源码分析。这个github的分析都是初版,CSDN的版本是经过修改的,应该逻辑更为通畅,建议去CSDN进行阅读,连接如下。
Stars: ✭ 56 (-3.45%)
Mutual labels:  filesystem
Kaitai fs
KaitaiFS: mount any filesystem specified with a .ksy as a real file system
Stars: ✭ 45 (-22.41%)
Mutual labels:  filesystem

Apple File System

The Apple File System (APFS) is a copy-on-write filesystem apparently intended to replace HFS+ on all Apple devices in the near future. This module provides a degree of experimental read-only support on Linux.

This repo is a standalone version of git://github.com/eafer/linux-apfs.git for the purpose of making it easier to build the module out-of-tree. It is supposed to work with a range of kernel versions starting at 4.9 or before, but only a few of those have actually been tested. If you run into any problem, please send a report to [email protected].

The long-term goal is to support writes as well. To help with testing, a set of userland tools is under development. The git tree can be retrieved from git://github.com/eafer/apfsprogs.git.

Known limitations

This module is the result of reverse engineering. As it is read-only there should be no risk of data corruption, but do not expect everything to be read correctly. Testing in general has been limited so far, so you may experience crashes. Please report any issues that you find.

Apple has released other versions of the filesystem to the public before the current one. I would not expect them to be compatible with this module at all, but I am open to fixing that if requested.

Many features are not yet supported:

o Encryption. o Compression, though the compressed contents of a file can be read from the 'com.apple.decmpfs' and 'com.apple.ResourceFork' xattrs as long as they are under 64k. o Restoring to a snapshot. o Access control lists. This is not a priority.

Build

In order to build a module out-of-tree, you will first need the Linux kernel headers. On Debian, you can get them by running (as root):

apt-get install linux-headers-$(uname -r)

Now you can just cd to the linux-apfs-oot directory and run

make

The resulting module is the apfs.ko file. Before you can use it you must insert it into the kernel, as well as its dependencies. Again as root:

modprobe libcrc32c insmod apfs.ko

Mount

Like all filesystems, apfs is mounted with

mount [-o options] device dir

where 'device' is the path to your device file or filesystem image, and 'dir' is the mount point. The following options are accepted:

vol=n Volume number to mount. The default is volume 0.

uid=n, gid=n Override on-disk inode ownership data with given uid/gid.

cknodes Verify the checksum on all metadata nodes. Right now this has a severe performance cost, so it's not recommended.

So for instance, if you want to mount volume number 2, and you want the metadata to be checked, you should run (as root):

mount -o cknodes,vol=2 device dir

To unmount it, run

umount dir

Credits

Originally written by Ernesto A. Fernández [email protected], with several contributions from Gabriel Krisman Bertazi [email protected] and Arnaud Ferraris [email protected].

Work was first based on reverse engineering done by others [1][2], and later on the (very incomplete) official specification [3]. Some parts of the code imitate the ext2 module, and to a lesser degree xfs, udf, gfs2 and hfsplus.

[1] Hansen, K.H., Toolan, F., Decoding the APFS file system, Digital Investigation (2017), http://dx.doi.org/10.1016/j.diin.2017.07.003 [2] https://github.com/sgan81/apfs-fuse [3] https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].