| # 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 |
| ``` |