blob: 24463992eae4e56155d97df28dc153dacdebc5bd [file] [log] [blame] [view] [edit]
# 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.
```shell
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.
```shell
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.
```shell
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:
```shell
mkfs /dev/class/block/000 fat
```
To mount the block device:
```shell
mount /dev/class/block/000 /mount/path/of/your/choice
```