Thu 06 Jul 2006 11:48:01 AM UTC, original submission:
I've successfully made a working bootable CD using GRUB 0.97. However, if I re-make the CD with a slightly altered directory structure (by adding one or more directories) I get a variety of similar errors on boot. If I add only one directory, I see:
Loading stage2 ....
Loading stage2 ....
Loading stage2 ....
Loading stage2 ....
(many times, terminated by either
Loading stage2 ..FATAL: bios_printf: unknown format
or a complete lock-up, seemingly at random)
If I add several directories, I see:
Loading stage2 ....................Read error 0x80
The filesystem that works looks like this:
.
|-- REVISION
|-- boot
| |-- System.map-2.6.16-1-486
| |-- System.map-2.6.16.13-xen
| |-- config-2.6.16-1-486
| |-- config-2.6.16.13-xen
| |-- grub
| | |-- default
| | |-- device.map
| | |-- e2fs_stage1_5
| | |-- fat_stage1_5
| | |-- ffs_stage1_5
| | |-- jfs_stage1_5
| | |-- menu.lst
| | |-- minix_stage1_5
| | |-- nbgrub
| | |-- pxegrub
| | |-- reiserfs_stage1_5
| | |-- stage1
| | |-- stage2
| | |-- stage2.netboot
| | |-- stage2_eltorito
| | |-- vstafs_stage1_5
| | `-- xfs_stage1_5
| |-- initrd-2.6.16-1-486.img
| |-- initrd-2.6.16.13-xen.img
| |-- vmlinux-syms-2.6.16.13-xen
| |-- vmlinuz-2.6-xen -> vmlinuz-2.6.16.13-xen
| |-- vmlinuz-2.6.16-1-486
| |-- vmlinuz-2.6.16-xen -> vmlinuz-2.6.16.13-xen
| |-- vmlinuz-2.6.16.13-xen
| |-- xen-3.0.2-3.gz
| |-- xen-3.0.gz -> xen-3.0.2-3.gz
| |-- xen-3.gz -> xen-3.0.2-3.gz
| |-- xen-syms-3.0.2-3
| `-- xen.gz -> xen-3.0.2-3.gz
|-- boot.catalog
|-- rootfs.img
`-- xen-3.0-testing-20060627.tar.bz2
2 directories, 37 files
One that displays the first described errors looks like this:
.
|-- REVISION
|-- boot
| |-- System.map-2.6.16-1-486
| |-- System.map-2.6.16.13-xen
| |-- config-2.6.16-1-486
| |-- config-2.6.16.13-xen
| |-- grub
| | |-- default
| | |-- device.map
| | |-- e2fs_stage1_5
| | |-- fat_stage1_5
| | |-- ffs_stage1_5
| | |-- jfs_stage1_5
| | |-- menu.lst
| | |-- minix_stage1_5
| | |-- nbgrub
| | |-- pxegrub
| | |-- reiserfs_stage1_5
| | |-- stage1
| | |-- stage2
| | |-- stage2.netboot
| | |-- stage2_eltorito
| | |-- vstafs_stage1_5
| | `-- xfs_stage1_5
| |-- initrd-2.6.16-1-486.img
| |-- initrd-2.6.16.13-xen.img
| |-- vmlinux-syms-2.6.16.13-xen
| |-- vmlinuz-2.6-xen -> vmlinuz-2.6.16.13-xen
| |-- vmlinuz-2.6.16-1-486
| |-- vmlinuz-2.6.16-xen -> vmlinuz-2.6.16.13-xen
| |-- vmlinuz-2.6.16.13-xen
| |-- xen-3.0.2-3.gz
| |-- xen-3.0.gz -> xen-3.0.2-3.gz
| |-- xen-3.gz -> xen-3.0.2-3.gz
| |-- xen-syms-3.0.2-3
| `-- xen.gz -> xen-3.0.2-3.gz
|-- boot.catalog
|-- rootfs.img
|-- scripts
| |-- README
| |-- e2fs-zero.py
| |-- make-livecd
| |-- update-initrd
| `-- update-rootfs
`-- xen-3.0-testing-20060627.tar.bz2
3 directories, 42 files
i.e. it has the "scripts" directory added. I've tried many variations, and it doesn't seem to matter whether the directory contains any files, or what it's called, or even whether it's added in the root or in /boot. If I add several directories (three or more), I see the second of the error cases described above.
The CDs are all built using the following command:
mkisofs -r -J -z -no-emul-boot -b boot/grub/stage2_eltorito -c boot.catalog -boot-load-size 4 -o
/dev/stdout /store/tmp/working/new-iso-fs > some-file.iso
where /store/tmp/working/new-iso-fs is a directory as shown above. Note that I'm using transparent compression, but not on any files in /boot/grub. I also tried without the compression, with no change.
I've also tried removing all files from boot/grub except stage2_eltorito and menu.lst, but that has no effect. The menu.lst looks as follows:
terminal console
timeout 10
default 0
title Debian-based Dom0 (from testing)
root (cd)
kernel /boot/xen-3.0.2-3.gz watchdog
module /boot/vmlinuz-2.6.16.13-xen ro selinux=0 ramdisk_size=32758 image=rootfs.img boot=cow
module /boot/initrd-2.6.16.13-xen.img
title Debian-based Dom0 in text mode (from testing)
root (cd)
kernel /boot/xen-3.0.2-3.gz watchdog
module /boot/vmlinuz-2.6.16.13-xen ro 2 selinux=0 ramdisk_size=32758 image=rootfs.img boot=cow
module /boot/initrd-2.6.16.13-xen.img
title Debian on Native Kernel 2.6.16 (from testing) (text mode only)
root (cd)
kernel /boot/vmlinuz-2.6.16-1-486 ro 2 selinux=0 ramdisk_size=32758 image=rootfs.img boot=cow
initrd /boot/initrd-2.6.16-1-486.img
I've tried the images on both my Thinkpad T60p and qemu 0.8.1, with the same results on both. Likewise, I've tried three different builds of GRUB (the one from Debian unstable, one I built myself using gcc 4.1.2, and a third that was present on the CD image from which mine derive).
You can download a minimal image which displays the second of the two errors at
http://www.cl.cam.ac.uk/users/srk31/private/grub-bug/test-livecd23.iso
and I can provide a larger image which shows the first error on request (by e-mail please).
Thanks for reading. Let me know if you need more information. There's a chance it's down to a mistake I've made somewhere....
|