Using Ubuntu 19.10, I am unable to boot into a ISO image located on my SSD.
I've added an entry to my Grub menu called "Install", and I've setup 40_custom
to point to an ISO image located in one of my partitions.
After I select this new "Install" entry in the Grub menu, the screen just goes blank. In some time, my laptop fan spins up, but noting else happens. The only thing I can do at this point is restart by pressing CTRL-ALT-DELETE.
It seems like the kernel is not loaded / bootstrapped, but I get no error messages.
The following setup has always worked for me on previous releases of Ubuntu. At first I thought it might be a corrupt ISO image, so I tried other images, and the results were disappointingly the same.
Can you suggest how to resolve this problem, or suggest how I might debug this? Is anyone else experiencing this on an Ubuntu 19.10 install with UEFI boot?
Below is the contents of /etc/grub.d/40_custom
. This file adds an additional entry to the grub menu called "Install".
As I mentioned above, I do get this entry in Grub, but when I select it, my screen goes blank, and noting happens.
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Install" {
set isofile="/ubuntu.iso"
loopback loop (hd0,2)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
I have confirmed that both vmlinuz
and initrd
are in the casper
directory in the ISO file.
Contents of directory /etc/grub.d/
-rwxr-xr-x 1 root root 10627 Oct 11 09:57 00_header
-rwxr-xr-x 1 root root 6258 Oct 11 09:57 05_debian_theme
-rwxr-xr-x 1 root root 17123 Oct 11 09:57 10_linux
-rwxr-xr-x 1 root root 37613 Oct 11 09:57 10_linux_zfs
-rwxr-xr-x 1 root root 12894 Oct 11 09:57 20_linux_xen
-rwxr-xr-x 1 root root 1992 Jan 28 2016 20_memtest86+
-rwxr-xr-x 1 root root 12059 Oct 11 09:57 30_os-prober
-rwxr-xr-x 1 root root 1418 Oct 11 09:57 30_uefi-firmware
-rwxr-xr-x 1 root root 423 Oct 30 21:44 40_custom
-rwxr-xr-x 1 root root 216 Oct 11 09:57 41_custom
-rw-r--r-- 1 root root 483 Oct 11 09:57 README
Here are my SSD partitions. The 4.7G partition (/dev/nvme0n1p2
) is referenced as (hd0,2)
in my 40_custom
file. If I change (hd0,2)
to something else, I get an error message that the kernel was not found. (hd0,2)
has worked on this laptop in the past, so I am petty confident that (hd0,2)
is the correct value to use in 40_custom
.
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 405503 403456 197M EFI System
/dev/nvme0n1p2 405504 10172415 9766912 4.7G Linux filesystem
/dev/nvme0n1p3 10172416 242595839 232423424 110.8G Linux filesystem
/dev/nvme0n1p4 242595840 2000409230 1757813391 838.2G Linux filesystem
Below is the contents of directory /mnt/install/
. This directory is mounted on /dev/nvme0n1p2
.
total 4128792
drwx------ 2 root root 16384 Oct 30 22:27 lost+found
-rw-r--r-- 1 root root 4227858432 Oct 31 00:24 ubuntu-19.10.0-2019.10.30-desktop-amd64.iso
-rw-r--r-- 1 root root 77 Oct 31 00:24 ubuntu-19.10.0-2019.10.30-desktop-amd64.md5
lrwxrwxrwx 1 root root 43 Oct 30 23:04 ubuntu.iso -> ubuntu-19.10.0-2019.10.30-desktop-amd64.iso
Notice that ubuntu.iso
is a symlink to the actual iso image, and the 40_custom
file refers to ubuntu.iso
. I have used this symlink approach for many years, and it has always worked in the past.
However, to eliminate possible causes of this issue:
I have tried not using a simlink, and referencing the iso image directly.
I have tried using other official Ubuntu ISOs, such as 18.10, 19.04, and the official 19.10 ISO.
Of course, I made the necessary changes in the 40_custom
file, and I ran update-grub
.
Below is the contents of /etc/default/grub
. Notice that I blacklisted nouveau, and I give myself 1 second to press ESC to show the grub menu. (If I don't blacklist nouveau, I get a blank screen on my HP laptop during a normal boot).
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
GRUB_INIT_TUNE="480 440 1"
sudo fdisk -l /dev/nvme0n1
showsDisklabel type: gpt
. – Enterprise Nov 01 '19 at 23:27(hd0,2)
is for mdsos disklabels please take a look https://askubuntu.com/questions/1025656/how-do-i-boot-an-iso-file-from-my-drive-using-grub2-on-uefi-machines – nobody Nov 03 '19 at 10:06(hd0,gpt2)
on my system. (In the past I've been able to use(hd0,2)
interchangeably with(hd0,gpt2)
. But I will usegpt2
from now on). To test this out I dropped to a grub command shell by pressing "c" on the grub menu. I typedloopback loop (hd0,gpt2)/ubuntu-19.10-desktop-amd64.iso
. I used tab completion to ensure I had no typos. BUT, as soon as I press the enter key, grub hangs!!! So grub seems to have a problem with theloopback
command on my system. Any ideas? – Enterprise Nov 04 '19 at 01:23rmmod tpm
to the grub config file as a work-around. – Enterprise May 29 '20 at 14:18