-hda FAT:. limited to 504MBytes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Invalid
|
Wishlist
|
Unassigned | ||
qemu (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: qemu
The size of the virtual FAT file system (for sharing a particular directory with Guest OS) is hard-coded to be limited to 504MBytes, in block-vvfat.c
--
/* 504MB disk*/
bs->cyls=1024; bs->heads=16; bs->secs=63;
--
If the directory contents exceeds this is stops with an assert
--
qemu: block-vvfat.c:97: array_get: Assertion `index < array->next' failed.
Aborted
--
Also the FAT16 mode (default) only uses 8KByte cluster sizes which prevents the above being increased. 16KByte and 32KByte sectors can be selected with the following patch
--
--- block-vvfat.c_orig 2008-12-02 12:37:28.000000000 -0700
+++ block-vvfat.c 2008-12-02 19:50:35.000000000 -0700
@@ -1042,6 +1042,12 @@
s->fat_type = 32;
} else if (strstr(dirname, ":16:")) {
s->fat_type = 16;
+ } else if (strstr(dirname, ":16-16K:")) {
+ s->fat_type = 16;
+ s->sectors_
+ } else if (strstr(dirname, ":16-32K:")) {
+ s->fat_type = 16;
+ s->sectors_
} else if (strstr(dirname, ":12:")) {
s->fat_type = 12;
--
Cheers,
Mungewell
please send your patch to upstream at <email address hidden>, the vvfat code in qemu is fragile and should be carefully reviewed.