Virtual Filesystem - JayFoxRox/xqemu-jfr GitHub Wiki
..Doc is WIP..
There is a virtual FATX blockdriver in xqemu now. It is similar to the existing vVFAT blockdriver which has been present in QEMU since 2004.
It allows you to use your host filesystem within your emulated Xbox. That not only makes it possible to easily create a virtual clone of your actual Xbox Filesystem, but also to create Memory-Units to easily transfer files to your Xbox without FTP. Furthermore the approach can be used to inspect the filesystem operations during runtime to aid in debugging the emulator.
So far, the virtual Filesystem is read-only.
The code was written from scratch by Jannik Vogel (JayFoxRox) for his bachelor thesis. A detailed description of FATX, the concept and a basic overview of the code can be found in the bachelor thesis.
vFATX is responsible for providing a single FATX partition within the guest. It can be used stand-alone to emulate virtual Memory-Units.
-
dir: "Host directory to map to the vfatx device"
FIXME
-
size: "Virtual partition size"
FIXME
-
sector_size: "Set vfatx device sector size"
FIXME
-
sectors_per_cluster: "Set fatx sectors per cluster"
FIXME
-
volume_name: "Set fatx volume name"
FIXME
-
volume_id: "Set fatx volume id"
FIXME
-
prediction: "Optimize by predicting the next file"
FIXME
-
keep_file: "Optimize by keeping the current file opened"
FIXME
-
compress: "Enable compression of delta"
FIXME
-
fragmentation: "Set fatx fragmentation per thousand"
FIXME
The standard way to create a virtual FATX partition is through Xbox-HDD which is responsible for creating the layout which is present on Xbox Harddisks.
-
size: "Virtual disk size"
FIXME
-
dir: "Directory to use as root"
FIXME
-
dca: "Path for the disk config area"
FIXME
-
x,y,z,e,f,g: "Path for partition X,Y,Z,E,F,G"
FIXME
Both drivers can be used using the protocol syntax: -drive driver=vfatx,<options>
Alternatively the short syntax can be used: -hda fatx:<dir>,<options>
virtual Xbox Harddisk in virtual Xbox
qemu-system-xbox ... -drive driver=xbox-hdd,dir=<path>,index=0,media=disk,locked=on
Creating an Xbox Memory-Unit (MU) Image
All Memory-Units have a forced sector size of 4KiB, even if the hardware reports something else:
qemu-img convert fatx:<path>,size=<size>,sector_size=4096
You can additionally specify a volume_name
or volume_id
to describe your partition.
Make sure that the size is the same as your Memory-Unit reports. FATX depends on the partition size being correct. The xbox will also ignore any GPT/MBR so you can only have one huge partition on MUs.