You are not logged in.
Goal: Have a multiboot USB stick that can boot to multiple Linux distros through GRUB 2's ISO-booting feature.
The Issue: I can't get the Arch Linux install ISO to boot properly.
I've formatted the stick, installed GRUB on it, and I've got the ISO on it (I followed this guide). But here's where I'm running in to trouble:
It boots, successfully mounts the ISO and loads the kernel (and I assume the initrd because it never complains about it) but as soon as it tries to read "/arch/aitab" it fails.
I think the issue is my grub.cfg. I tried copying the one from the pendrivelinux tutorial, but there's no Arch option, so I tried to create one based off of it's advice: copying the APPEND options from the ISO's syslinux.cfg file. On the Arch Install ISO, that reads:
archisobasedir=arch archisolabel=ARCH_201108
When I tried those options, it complained at the "Waiting for boot device" stage. It couldn't find /dev/disk/by-label/ARCH_201108. I realized that there was a discussion going on here, and using some of their .cfg's I changed the archisolabel option to the actual label for the USB device, which is MULTITOOL. I also added the ramdisk_size and locale options.
It should be noted that this discussion ended before the official install ISO had loopback support, which it does now.
When I tried the archisolabel=MULTITOOL option, I got further! It didn't fail after waiting 30 seconds! It just failed immediately. Great. Apparently it can't find /bootmnt/arch/aitab. Using ls on the ramfs, I realized that it had mounted the USB stick itself, not the ISO filesystem.
So, in summary, I can successfully mount the ISO from GRUB, GRUB boots the kernel, loads the inird, but then doesn't quite realize it should be mounting the ISO for the actual filesystem. (Or, if I go with the original options, doesn't realize that it should mount the USB stick to mount the ISO.)
Here's my grub.cfg on the stick:
set timeout=10
set default=0
menuentry "Arch Linux x86_64 Core Install ISO isofrom" {
loopback loop /isos/archlinux-2011.08.19-core-x86_64.iso
linux (loop)/arch/boot/x86_64/vmlinuz isofrom=/isos/archlinux-2011.08.19-core-x86_64.iso archisobasedir=arch archisolabel=ARCH_201108 ramdisk_size=75% locale=en_US.UTF-8
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry "Arch Linux x86_64 Core Install ISO isofrom multitool" {
loopback loop /isos/archlinux-2011.08.19-core-x86_64.iso
linux (loop)/arch/boot/x86_64/vmlinuz isofrom=/isos/archlinux-2011.08.19-core-x86_64.iso archisobasedir=arch archisolabel=MULTITOOL ramdisk_size=75% locale=en_US.UTF-8
initrd (loop)/arch/boot/x86_64/archiso.img
}
I'd appreciate any advice on the matter, especially from anyone involved with release engineering (I'm almost certain I just don't have the right kernel parameters here).
Last edited by Klink-a-dink-dink (2011-11-22 19:32:03)
Offline
Sure, with these parameters will not work. Here is what you need http://projects.archlinux.org/archiso.g … README#n80 this is the right place.
Just boot with these bootparms:
archisolabel=ARCH_201108 img_label=MULTITOOL img_loop=/isos/archlinux-2011.08.19-core-x86_64.iso
Thats all. Good luck!
Offline
btw: I recommend to use one of testisos instead of 2011.08.19 (ironically loop mount is broken) See https://bbs.archlinux.org/viewtopic.php?id=125412
archisolabel=ARCH_201108 img_label=MULTITOOL img_loop=/isos/archlinux-2011.08.19-core-x86_64.iso earlymodules=loop
Add earlymodules=loop to workaround the bug in 2011.08.19 without repack
http://releng.archlinux.org/isos/
Last edited by djgera (2011-11-23 02:21:26)
Offline
Instead of loop-mounting the ISO, extracting the /arch folder and booting that is likely easier and more straight-forward.
Offline