qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 304636] Re: -hda FAT:. limited to 504MBytes


From: Pedro Pablo Lopez Rodriguez
Subject: [Bug 304636] Re: -hda FAT:. limited to 504MBytes
Date: Sun, 07 Feb 2021 00:33:06 -0000

Hello.

I am using qemu-5.2.0 in Windows with operating system Minix 3.1.2a and
vfat fail to write files of size over 4096 bytes. The read works well.
This is not ploblem of Minix 3.1.2a because in Bochs emulator reads an
writes of files of any size works well.

I also consider this to be a major bug as it prevents communication of
information between the guest OS and the host. I have over 300 students
complaining about this bug present in qemu.

Thanks.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/304636

Title:
  -hda FAT:. limited to 504MBytes

Status in QEMU:
  Confirmed
Status in qemu package in Ubuntu:
  Won't Fix

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_per_cluster=0x20;
  +    } else if (strstr(dirname, ":16-32K:")) {
  +       s->fat_type = 16;
  +       s->sectors_per_cluster=0x40;
       } else if (strstr(dirname, ":12:")) {
          s->fat_type = 12;
          s->sector_count=2880;
  --

  Cheers,
  Mungewell

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/304636/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]