I'm trying to create a multiboot USB flash drive by using GRUB2 to chainload different partitions on the drive. It's not working. I do not want advice on how to create a multiboot flash drive; I know there are lots of ways to do that. I am only interested in figuring out why this particular method doesn't work.
Some background: I have two USB drives, let's call them USB1 and USB2. I am currently trying to install Debian Wheezy on either one of them in a multiboot-friendly way. Now, if I simply dd the iso onto USB1 (/dev/sdb):
dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdb
That creates a nice, bootable drive from which I can installed Debian. Furthermore, if I install GRUB2 on USB2 I can successfully chainload USB1 from it with:
search --label --set=root "Debian 7.0.0 i386 1" chainloader +1 boot
Now for my problem: If I instead create a second partition on USB2 and dd the iso onto that:
dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdc2
Chainloading that doesn't work. It doesn't throw any error message, but simply gives me a black screen with a blinking dash (unresponsive). (I tried this with both drives, so I don't think faulty hardware is to blame).
Why doesn't this work? What's the difference between chainloading a different drive, and chainloading a different partition on the same drive when they contain the exact same data?