0

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"
Enterprise
  • 12,352
  • I could only get this to work if the .iso was on a separate physical drive. – Organic Marble Nov 01 '19 at 03:54
  • 1
    I think this is an issue with 19.10, because this exact setup above (boot from ISO on SSD partition) worked in 19.04. Interestingly, I currently have this same setup working with 19.10 and a Legacy BIOS system. So may be this is an issue is with UEFI systems running 19.10? I do have secure boot disabled on my laptop, and it is set to UEFI. – Enterprise Nov 01 '19 at 15:05
  • Is your Partitionschema GPT? – nobody Nov 01 '19 at 21:17
  • sudo fdisk -l /dev/nvme0n1 shows Disklabel type: gpt. – Enterprise Nov 01 '19 at 23:27
  • this part (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
  • This was a very good resource. Using the instructions, I verified that the ISO file is located at (hd0,gpt2) on my system. (In the past I've been able to use (hd0,2) interchangeably with (hd0,gpt2). But I will use gpt2 from now on). To test this out I dropped to a grub command shell by pressing "c" on the grub menu. I typed loopback 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 the loopback command on my system. Any ideas? – Enterprise Nov 04 '19 at 01:23
  • 1
    After further investigation, this was caused the same issue as in https://askubuntu.com/questions/1186040/grub-command-loopback-loop-does-not-work-on-ubuntu-19-10. It is necessary to add rmmod tpm to the grub config file as a work-around. – Enterprise May 29 '20 at 14:18
  • It does. After further investigation, I discovered my two questions were prompted by the same underlying issue. I posted the answer I discovered on the other question, and flagged this as a duplicate. – Enterprise May 30 '20 at 15:59

0 Answers0