DescriptionRichard W.M. Jones
2011-02-02 10:41:14 UTC
Description of problem:
I am trying to install a very old version of RHL (7.3) which comes
on several CDs. During installation I have to "swap" the ISO at
least once.
After swapping ISO for the first time, the installation fails. It
appears that the size of the second ISO (that the guest sees) is
truncated to the size of the first ISO. This causes I/O errors
when the guest tries to read any file which is beyond the end of
the first ISO's size.
This might be an unresolvable error in the ancient guest kernel,
but I think it is worth investigating that it's not a bug in
the hypervisor.
Version-Release number of selected component (if applicable):
qemu-0.13.0-1.fc14.x86_64
kernel-2.6.35.10-74.fc14.x86_64 (host)
libvirt-0.8.3-2.rwmj1.fc14.x86_64 (0.8.3 + watchdog fix)
python-virtinst-0.500.4-1.fc14.noarch
virt-manager-0.8.5-1.fc14.noarch
Guest kernel is 2.4.18-3BOOT i686 from RHL 7.3 install disk.
How reproducible:
Tried it once.
Steps to Reproduce:
1. Try to install RHL 7.3 from
ftp://archive.download.redhat.com/pub/redhat/linux/7.3/en/iso/i386/
2. When it says "insert disk 2", swap ISO using virt-manager
(ie. disconnect + connect)
Actual results:
Guest gives lots of error messages:
attempt to access beyond end of device
16:00: rw=0, want=653346, limit=652832
^ ^
| |
| limit reflects size of the original ISO, see below
|
16:00 is major=22, minor=0 which is /dev/hdc
Expected results:
No errors.
Additional info:
These are the sizes of the ISO files:
-rw-rw-r--. 1 qemu qemu 668499968 Feb 1 23:24 valhalla-i386-disc1.iso
-rw-rw-r--. 1 qemu qemu 669319168 Feb 2 01:48 valhalla-i386-disc2.iso
Notice that 652832 * 1024 = 668499968 which is the size of
the first disk (yet this error occurs when the second disk is
"inserted").
Comment 1Richard W.M. Jones
2011-02-02 10:49:49 UTC
The patch at http://thread.gmane.org/gmane.comp.emulators.qemu/100247 will solve this.
In addition, the following patches will be helpful to solve other cdrom related bugs:
0c370a35498bf9e300a035864bee7ce8460da669
493accd624149e9dcf4b89dcbbdbc42621cbc231
8f8e834d70216372619b79a10392cdf208bbd3d0
0af63ba3629e6f826846a73636ca391a810b2c6e
996faf1ad4a93342e381766d95686b16624f0dbd
First four are just cleanups; last patch implements GET_EVENT_STATUS_NOTIFICATION, which modern kernels use to query cdrom status.