Ubuntu – GRUB cannot find the ISO image on the hard-disk

grub2hard driveisokubuntusystem-installation

I have an old computer with Kubuntu version 10.10. I want to install the latest version and followed the instruction according the post Install Ubuntu from ISO image directly from hard disk of a system running Linux.

The iso-image is located at /home/newinstall/kubuntu-14.10-desktop-amd64.iso

I changed the /etc/grub.d/40_custom file:

#!/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 "Kubuntu ISO" {
        set isofile="/home/newinstall/kubuntu-14.10-desktop-amd64.iso"
        loopback loop (hd1,6)$isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
        initrd (loop)/casper/initrd.lz
}

After the reboot and choosing the new grub menu "Kubuntu ISO" I've got always the same error:

error: file not found.
error: no such disk.
error: you need to load the kernel first.

There are some other hard disks installed on this system:

$ sudo blkid
/dev/sda1: LABEL="Vista" UUID="1478E3F678E3D510" TYPE="ntfs" 
/dev/sdb1: LABEL="WinXP" UUID="70445A47445A1068" TYPE="ntfs" 
/dev/sdb5: LABEL="DataXP" UUID="1EC4D769C4D74227" TYPE="ntfs" 
/dev/sdb6: UUID="3155a65d-e23d-4b53-844a-f5071e0fd957" TYPE="ext3" 
/dev/sdb7: UUID="6780d437-a484-40da-a95c-06ce66d8b3cd" TYPE="ext4" 
/dev/sdb8: UUID="8c31b07c-eaac-4404-9e03-c1ce66ca0d6f" TYPE="ext4" 
/dev/sdb9: UUID="ceb365a4-5f7b-414a-954c-f7e2c93264ed" TYPE="ext4" 
/dev/sdb10: UUID="f35c6cbd-3e0c-47f0-960b-753b8c5cc7f9" TYPE="swap" 
/dev/sdb11: UUID="e8c4bba7-459c-4f6b-8627-c084ae9fe1fe" TYPE="ext4" 
/dev/sdb12: UUID="f02ad769-fbff-49b1-8ff6-1144412d3ae0" TYPE="ext4" 
/dev/sdb13: UUID="6a7823c1-3ca3-4e56-b6b3-61a4a9bf5650" TYPE="ext4" 

    df -k
    /dev/sdb8              2401840    407196   1872636  18% /
    none                    504304       260    504044   1% /dev
    none                    511172       584    510588   1% /dev/shm
    none                    511172        80    511092   1% /var/run
    none                    511172         0    511172   0% /var/lock
    /dev/sdb11              235021      6186    216701   3% /tmp
    /dev/sdb7               472036     48393    399272  11% /boot
    /dev/sdb12             2882592    388612   2347548  15% /var
    /dev/sdb13            28767364    176068  27130000   1% /res
    /dev/sdb6             48062440  24521892  21099072  54% /home
    /dev/sdb9              7693480   2443544   4859128  34% /usr

What is wrong in this configuration?

Best Answer

Note the comments about using a more current version of the ISO, but your problem may be that you have a separate /home partition. Assuming your "newinstall" is a user home directory, the partition starts with /newinstall,,, not /home in the line

set isofile="/newinstall/kubuntu-14.10-desktop-amd64.iso"
loopback loop (hd1,6)$isofile

The other potential issue is the enumeration of disks may differ at the grub prompt and in the final running system. You would expect your sdb to be the hd1 at the grub prompt, but sometimes, hd0 and hd1 seem to be reversed. I did try the fix mentioned above, since I have an iso on a mounted partition, and the boot succeeded, but with an external (non-bootable) USB hard disk plugged in, the hd0 (in my case for sda) had to be manually changed to hd1 for the boot to work. Without the USB disk, the hs0 worked.

Related Question