Code: Select all
$ #The 0x4600 is the offset of the volume in the image
$ ./leanfuse -O0x4600 mnt fysos64.img
$ tree -hDp mnt
mnt
├── [---------- 3.1K Apr 6 05:39] bsod.sys
├── [d--------- 48 Apr 6 05:39] EFI
│ └── [d--------- 128 Apr 6 05:39] BOOT
│ ├── [---------- 31K Apr 6 05:39] BOOTIA32.EFI
│ ├── [---------- 38K Apr 6 05:39] BOOTx64.EFI
│ └── [---------- 185 Apr 6 05:39] STARTUP.NSH
├── [---------- 507K Apr 6 05:39] kernel32.sys
├── [---------- 637K Apr 23 07:10] kernel64.sys
├── [---------- 92K Apr 6 05:39] loader.sys
├── [d--------- 80 Apr 6 05:39] system
│ ├── [d--------- 512 Apr 6 05:39] fonts
│ │ ├── [---------- 1.6K Apr 6 05:39] arial.fnt
│ │ ├── [---------- 1.8K Apr 6 05:39] couriernew.fnt
│ │ ├── [---------- 3.6K Apr 6 05:39] ImprintShadow.fnt
│ │ ├── [---------- 3.2K Apr 6 05:39] lucidac.fnt
│ │ ├── [---------- 4.9K Apr 6 05:39] OCRAExtended.fnt
│ │ ├── [---------- 4.7K Apr 6 05:39] sansserf.fnt
│ │ ├── [---------- 1.7K Apr 6 05:39] Simple.fnt
│ │ ├── [---------- 5.1K Apr 6 05:39] sys8x12.fnt
│ │ ├── [---------- 5.6K Apr 6 05:39] sys8x14.fnt
│ │ ├── [---------- 6.1K Apr 6 05:39] sys8x16.fnt
│ │ ├── [---------- 4.1K Apr 6 05:39] sys8x8.fnt
│ │ ├── [---------- 6.6K Apr 6 05:39] sys9x16.fnt
│ │ ├── [---------- 2.8K Apr 6 05:39] System128.fnt
│ │ ├── [---------- 5.6K Apr 6 05:39] System256.fnt
│ │ └── [---------- 1.7K Apr 6 05:39] wopr.fnt
│ └── [d--------- 224 Apr 6 05:39] grfx
│ ├── [---------- 134K Apr 6 05:39] hallway.gif
│ ├── [---------- 169K Apr 6 05:39] images.sys
│ ├── [---------- 472K Apr 6 05:39] snow.bmp
│ ├── [---------- 527K Apr 6 05:39] tron6.tga
│ ├── [---------- 780K Apr 6 05:39] tron.png
│ └── [---------- 1.6M Apr 6 05:39] TronUprising.png
└── [---------- 16K Apr 6 05:39] system.sys
5 directories, 29 files
$ identify mnt/system/grfx/hallway.gif
mnt/system/grfx/hallway.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 136775B 0.000u 0:00.000
$ echo "Test" > mnt/test
$ ls mnt
bsod.sys EFI kernel32.sys kernel64.sys loader.sys system system.sys test
$ cat mnt/test
Test
$ rm mnt/test
$ ls mnt
bsod.sys EFI kernel32.sys kernel64.sys loader.sys system system.sys
$ umount mnt
$
The source is available on the repository here. Building is as simple as `make`, while having a cc and libfuse installed.
Due to stupidities in some text editor implementations, they may not work with writing files in the filesystem. One text editor, who asked to be anonymous, creates a temporary file and then replaces it with the real file upon saving. Because the rename operation isn't implemented in leanfuse, you can't edit files at all in it.