On Sun, 2009-11-01 at 08:53 +0100, Vladimir 'phcoder' Serbinenko wrote: > Ron wrote: > > On Sat, 2009-10-31 at 18:30 +0100, Robert Millan wrote: > > > >> On Sat, Oct 31, 2009 at 06:01:56PM +0100, Ron wrote: > >> > >>> Hi, > >>> > >>> I was playing around with Grub2 (latest svn version) and its loopback > >>> feature and had some problems to boot an ISO. The ISO file is the 32Bit > >>> version of Ubuntu 9.10 which is located on a 8GB USB flash drive with > >>> one FAT32 partition. I've tried to boot it with the following menu > >>> entry: > >>> > >>> menuentry "Ubuntu" { > >>> set isofile="/boot/isos/ubuntu-9.10-desktop-i386.iso" > >>> > >>> loopback loop $isofile > >>> linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile > >>> quiet splash noprompt -- > >>> initrd (loop)/casper/initrd.lz > >>> } > >>> > >>> This entry fails silently and when the commands were executed one by one > >>> the linux command shows the error message "error: invalid magic number". > >>> > >> This error means vmlinuz wasn't read correctly. > >> > >> This could be either a problem in loopback/iso9660 or a problem in the > >> partition that contains ubuntu-9.10-desktop-i386.iso. > >> > >> Can you figure out which applies? For example, if you put a physical CD > >> with ubuntu-9.10-desktop-i386.iso in the drive and access it from > >> GRUB (via ata.mod), are you able to load Linux this way? > >> > >> > > > > I'm sorry but right now I can't burn a CD. But I made some more test > > with the ISO file that doesn't work and the copy from it that does work. > > As I've mentioned both files shows the same correct MD5 sum under Linux. > > Also GRUB shows with the ls command the same file size of 723488768 > > Bytes (690 MiB) for both of them. But the output of the blocklist > > command is looking wrong. > > > > blocklist output for the ISO that doesn't work: > > 11833144+161304, 13766112+8, 13853680+218800, 14072488+118288 > > > > blocklist output for the ISO that does work: > > 15128592+328728, 11652008+16, 11654088+1792, 11655888+8,11655912+440, > > 12089440+16, 12404120+126080, 12530256+99464, 12629728+761984, 13413432 > > +94536 > > > > So if you sum up the sectors from the ISO that doesn't work and multiply > > it with 512 you get only 255180800 Bytes (243 MiB). It looks like the > > blocklist command encounters an error and exits before it is done, but > > no error message is visible. > > > > > Can you disable offset checking in kern/disk.c and retry?
I've looked at the source code but I'm unsure where this offset checking is placed. Can you give me more infos? _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel