qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] How to get beyond the 16 head limit?


From: Fabrice Bellard
Subject: Re: [Qemu-devel] How to get beyond the 16 head limit?
Date: Wed, 11 Jun 2008 22:46:16 +0200
User-agent: Thunderbird 1.5.0.9 (X11/20070212)

Erik Mouw wrote:
> On Wed, Jun 04, 2008 at 07:16:14PM +0200, Erik Mouw wrote: 
>> We managed to recover data from an ancient 60 MB ESDI drive. Because
>> the interesting data is in some kind of proprietary database system
>> (running on top of its own OS) I tried to run the recovered disk
>> image in Qemu and let the database export itself to a floppy image.
>>
>> The drive has an unusual though valid geometry: 58 cylinders, 64 heads,
>> 32 sectors. Qemu refuses to boot the image because it says the CHS
>> format is invalid:
>>
>> address@hidden:~/qemu > qemu -fda scratch.img -hda bd4467.img \
>>       -hdachs 58,64,32 -std-vga -boot c -m 4 -net none
>> qemu: invalid physical CHS format
>>
>> I increased the head limit in vl.c from 16 to 64 but it appears that is
>> not enough to convince Qemu to accept the geometry. Qemu starts, but
>> when I check from DOS (in Qemu) it now looks as if the drive geometry
>> is 116/16/63. With a partition table patched to match that geometry I
>> can boot the database OS bootsector, which happily loads the db OS
>> kernel from the wrong location because it uses CHS addressing (instead
>> of LBA). Needles to say that won't fly.
>>
>> Like I said, I already increased the head limit in vl.c but that is
>> apparently not enough. What else do I have to change to get Qemu to use
>> my supplied disk geometry?
> 
> It wasn't enough, there was also some work needed in hw/ide.c to get
> Qemu to accept and use the unual layout (see below for the patch).
> Right now Qemu is convinced that the geometry really is 58/64/32, but
> when testing in DOS through INT13 the geometry is 116/16/63. I guess
> that has to do with the BIOS getting in my way, could somebody confirm
> this?

At the IDE hardware level, you cannot have more than 16 heads, so your
problem is a BIOS issue.

Fabrice.




reply via email to

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