thinfs/

directory
v0.0.0-...-2208570 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2021 License: BSD-2-Clause

README

Thinfs

Thinfs is a collection of disk managment utilities which can be used to build a filesystem.

Thinfs currently includes an implementation of:

  • FAT16 and FAT32

Download Sources

Download ThinFS sources

Thinfs should be included in the full Fuchsia checkout by default.

jiri import thinfs
jiri update

Building

Thinfs will be built as a part of the Fuchsia build. Follow the instructions on the Fuchsia landing pages.

To build Thinfs exclusively, the "--modules" parameter can be provided to gn. This is useful if the rest of the build is broken, or if you're trying to incrementally rebuild Thinfs alone.

cd $FUCHSIA_ROOT
fx gn gen out/x64 --args='base_package_labels="garnet/packages/thinfs"'
fx ninja -C out/x64

Testing

Running on Fuchsia

If you have a partition (either on a hard disk or USB) which is formatted as FAT, it will be automatically detected by the Zircon kernel and mounted using thinfs under "/volume".

If you want to manually mount a block device, use the following steps:

Use lsblk to determine which block device you'd like to mount.

lsblk

Let's arbitrarily choose block device '000'. If it is formatted as FAT, you can skip to the mounting stage immediately. Otherwise, you'll need to format it as a FAT filesystem (which, as a warning, will wipe all data present on the partition).

To format the block device:

mkfs /dev/class/block/000 fat

To mount the block device:

mount /dev/class/block/000 /mount/path/of/your/choice

Directories

Path Synopsis
Package bitops provides various utility functions and types for low level bit-twiddling.
Package bitops provides various utility functions and types for low level bit-twiddling.
Package block defines the interface that all block-based devices must present to ThinFS.
Package block defines the interface that all block-based devices must present to ThinFS.
blocktest
Package testlib a test library for testing implementations of the block.Device interface.
Package testlib a test library for testing implementations of the block.Device interface.
fake
Package fake provides a fake in-memory implementation of block.Device.
Package fake provides a fake in-memory implementation of block.Device.
file
Package file implements the block.Device interface backed by a traditional file.
Package file implements the block.Device interface backed by a traditional file.
Package cache provides an object cache that uses an adaptive replacement policy described by Mediddo & Modha in "Outperforming LRU with an Adaptive Replacement Cache Algorithm".
Package cache provides an object cache that uses an adaptive replacement policy described by Mediddo & Modha in "Outperforming LRU with an Adaptive Replacement Cache Algorithm".
fs
Package fs defines the interface for all filesystems.
Package fs defines the interface for all filesystems.
msdosfs
Package msdosfs implements the FAT filesystem
Package msdosfs implements the FAT filesystem
msdosfs/bootrecord
Package bootrecord describes the first sectors of a partition, which hold filesystem metadata.
Package bootrecord describes the first sectors of a partition, which hold filesystem metadata.
msdosfs/clock
Package clock allows the current time to be overloaded
Package clock allows the current time to be overloaded
msdosfs/cluster
Package cluster is responsible for opening and using the FAT.
Package cluster is responsible for opening and using the FAT.
msdosfs/cluster/fat
Package fat contains the actual File Allocation Table used by the FAT filesystem.
Package fat contains the actual File Allocation Table used by the FAT filesystem.
msdosfs/cluster/fat/fsinfo
Package fsinfo describes the FAT32-exclusive FSInfo structure
Package fsinfo describes the FAT32-exclusive FSInfo structure
msdosfs/direntry
Package direntry describes FAT directory entries.
Package direntry describes FAT directory entries.
msdosfs/testutil
Package testutil provides utilities which help test the FAT filesystem.
Package testutil provides utilities which help test the FAT filesystem.
Package gpt is an implementation of GUID Partition Table read and write.
Package gpt is an implementation of GUID Partition Table read and write.
Package mbr is a minimial implementation of Master Boot Record parsing and writing, implemented in support of GUID Partition Table parsing and writing.
Package mbr is a minimial implementation of Master Boot Record parsing and writing, implemented in support of GUID Partition Table parsing and writing.
Package thinio provides functionality for orchestrating I/O operations on a block.Device.
Package thinio provides functionality for orchestrating I/O operations on a block.Device.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL