4 ms·
menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' { set isofile='/ubuntu-14.04.1-desktop-amd64.iso' loopback loop (hd0,2)$isofile linux (loop)/c
by Bluescreens 10y ago
menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' {
set isofile='/ubuntu-14.04.1-desktop-amd64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8
initrd (loop)/casper/initrd.lz
}
This works.
- drvdevd 10y agoOk so one immediate point that I notice here is that if you look closely at this grub configuration, you'll see that the EFI boot Kernel and initrd are not loaded from an EFI partition, but rather taken from the ISO itself: > loopback loop (hd0,2)$isofile > linux (loop)/casper/vmlinuz.efi Whereas above, for Ubuntu 16.04, you appear to be trying to use a separate fat32 EFI partition to load vmlinuz.efi So, just to test, you should try to do what Ubuntu 14.04 is doing, but keep your EFI parition to load grubx64.efi. Make sense? So your partiton layout on this USB stick will be as follows: Partlabel: gpt (hd0,gpt1): FAT32 (type: EFI system) - has path/to/grubx64.efi (hd0,gpt2): ext4 (type: Linux) - has boot/grub/grub.cfg - has ubuntu-16.04-WHATEVER-REALNAME-HERE.iso ---- And the grub.cfg now has a new menu entry as follows: menuentry '[loopback]ubuntu-16.04-desktop' { set isofile='/ubuntu-16.04-WHATEVER-REALNAME-HERE.iso' loopback loop (hd0,2)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8 initrd (loop)/casper/initrd.lz } Let me know if that solution works for you? [Edit] I think the issue with all of this here is the other scripts/parts of Casper that get loaded normally using the ISO. Its annoying, but casper is the ubuntu way. There are better ways to boot a live system off EFI but this would be the quickest path
- drvdevd 10y ago[Edit 2] where you put grub/grub.cfg in the above partition layout is also up to you. It could reside on the EFI parition. Its all about how you lay it out in the host system when putting this disk together and then how you run grub-install
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- Bluescreens 10y agoI'm... not following a 100%. But getting there. Its frustrating to feel like your 98% there, and just missing the one thing :/. My setup right now _is_: (hd0,gpt1): ESP - /boot/grub/grub.cfg - /boot/{i386-pc,locale,x86_64-efi} - /EFI/BOOT/BOOTx64.EFI (hd0,gpt2): ext4 - ubuntu-16.04.bla.iso - custom.iso I don't see the difference in grub.cfg(appart from 14/16, that was mb, I tried both 14/16 standard isos :D), and indeed its location doesn't matter as this works for the default live cd/it does seem to find the things inside the custom.iso/casper. ------------------------------------ And I totally agree with the part regarding the Casper scripts ;). I tried the following: - mount default 16.04 iso - take out its vmlinux.efi & initrd.lz - put it in the casper/ folder of the custom.iso This booted! :). And then it hang on the 'not enough loop devices' error from the post below. :( So I tried grabbing either the vmlinuz-LATEST_VERSION and the vmlinuz-LATEST_VERSION.efi.signed for the vmlinuz.efi in the casper/ (with corresponding initrd.lz), but those crashed even earlier. Just "error: no suitable video mode found. booting in blind mode", which is not the actual critical error, as the default 16.04 proclaims this as well, and then proceeds to boot properly in blind mode. Can't really seem to figure out how far the custom version got... You happen to know of a listing of sorts regarding the required Casper files? I just get some general stuff. It really seems to indeed hinge around those vmlinuz.efi and initrd.lz files. The naming convention with the .efi and .lz shouldn't even matter that much, as long as the grub entry matches it. But those _are_ the images the host OS is booting from. Do they have some internal pathing/referencing I'm missing? Something that keeps staring at me though is the /grub and /EFI inside the .iso. The iso basically has: - boot/grub - casper - EFI/BOOT/{BOOTx64.EFI,grubx64.efi} But I'm not too trusting of the grub.cfg inside the iso... menuentry "Boot custom iso" { set gfxpayload=keep linux /casper/vmlinuz.efi boot=casper quiet splash -- initrd /casper/initrd.lz } I do think I need it, but does it need more references than this? Should it also have the (hd0,2)etc. prepending? Or is this OK as it is a selfreference within the iso? Thanks for the help so far, its already comforting to know that someone else suspects the same area for the issues :). I swear this is going to drive me properly mad one of these days.