Run Kali Linux , BackBox and Gentoo Distrubutions Directly from Hard Disk in Ubuntu 14.04 using Grub Menu

Most of Linux distributions provide ISO files that are designed and build to run in Live mode directly from a bootable media such as CD /DVD, Flash/USB cards or even directly form an Hard Drive using Linux Grub menu without the need to burn it to an CD/DVD or create a bootable USB.

Run Linux From Hard Disk

Run Linux From Hard Disk

This tutorial will concentrate on presenting a way you can run some Linux ISO distributions directly from your hard disk by editing Ubuntu 14.04 GRUB2 menu which is the default boot loader in most modern Linux distributions, which provides a faster way of using a Linux Operating System, and also has a great impact on privacy because all your settings and live sessions are not preserved by default.

The distributions presented in this topic are: Kali Linux 1.0.7, Backbox 3.13 and Gentoo Live DVD.

Requirements

Ubuntu 14.04 ( or any other Linux distributions with GRBU2 boot loader) installed on your system hard drive.

  1. Ubuntu 14.04 Installation Guide

Step 1: Download required ISO files

Kali Linux, formerly known as BackTrack Linux, is the most advanced Operating System for security and penetration testing, based on mainstream Debian, which provides a great deal of forensics and penetration testing programs, developed by Offensive Security Ltd, who recently released their last version 1.0.7.

Download Kali Linux
  1. http://www.kali.org/downloads/

BackBox is an alternative distribution for Kali Linux, based on Ubuntu, who uses XFCE as a Desktop Environment, build to run fast and easy to use and provides tools for penetration and security tasks.

Download BackBox
  1. http://www.backbox.org/downloads

Gentoo is the most versatile Linux distribution designed for professionals who uses source code packages complied locally, has a complex and difficult installation procedure for newbies but provides an excellent Live DVD for testing purposes.

Download Gentoo
  1. http://www.gentoo.org/main/en/where.xml

Step 2: Add ISO Images to GRUB2 Menu

1. After you have downloaded your favorite ISO Live DVD, open Ubuntu Nautilus with root privileges using ‘sudo nautilus‘ command from Terminal and create a directory called live in your system root path and move ISO file to this folder.

Create Live Directory

Create Live Directory

Copy ISO Files to Live Directory

Copy ISO Files to Live Directory

2. To continue further will need to provide Grub2 with our disk partition UUIDUniversally Unique Identifier (partition where ISO files are located). To get partition UUID run the following commands.

$ sudo blkid
## For automatically mounted partition or hard disks  on system boot ##

$ sudo cat /etc/fstab   
Get Partition UUID

Get Partition UUID

Confirm Partition UUID

Confirm Partition UUID

3. Another method to get your partition UUID is, to open visualize grub.cfg file content located in /boot/grub/ path and search for –fs-uuid string (in case you don’t have a separated partition for /boot).

Open grub.cfg File

Open grub.cfg File

Verify Partition UUID

Verify Partition UUID

4. After you obtained your root partition UUID code move to /etc/grub.d/ directory, open 40_custom file for editing and add the following lines at the bottom of this file.

menuentry 'Kali Linux 2014 Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/kali-linux-1.0.7-amd64.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 59036d99-a9bd-4cfb-80ab-93a8d3a92e77                            
                linux (loop)/live/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=kali
                initrd (loop)/live/initrd.img
}
Add Kali Linux Boot Kernel Parameters

Add Kali Linux Boot Kernel Parameters

Verify Kali Linux Boot Kernel Parameters

Verify Kali Linux Boot Kernel Parameters

Here the following directives represents:

  1. set isofile = A variable the holds ISO system path location.
  2. (hd0,msdos1) = First partition from first hard disk (In Linux disks are numbered starting with 0) – the same as /dev/sda1.
  3. –fs-uuid –set=root 59036d99-a9bd-4cfb-80ab-93a8d3a92e77 = First partition from first hard disk UUID code.
  4. linux and initrd = Custom kernel booting parameters – they are different depending on every Linux distribution.

5. After you finish editing file update grub to add the newly ISO (in this case Kali Linux) to your Grub2 menu. To verify it open /boot/grub/grub.cfg and search at the botton for your ISO entry.

$ sudo update-grub
Update Grub to Add ISO Images

Update Grub to Add ISO Images

Verify ISO Images Entry

Verify ISO Images Entry

6. To run Kali Linux Live ISO reboot your computer, select Kali Linux entry from GRUB menu then press Enter key.

Select Kali Linux From Grub Menu

Select Kali Linux From Grub Menu

Booting Kali Linux Live ISO

Booting Kali Linux Live ISO

Kali Linux Desktop

Kali Linux Desktop

7. If you don’t have enough free space on your root partition, to host other Linux ISO files you can add another hard disk and move all your Linux distribution ISO files there. After you create an partition and add a file system mount it on /mnt path to make it available.

$ sudo mount /dev/sdb1 /mnt

8. Then move all ISO on the new hard disk and grab its UUID using blkid command.

$ sudo blkid
Move ISO Images and Verify UUID

Move ISO Images and Verify UUID

Verify All ISO Images

Verify All ISO Images

9. Again open and edit /etc/grub.d/40_custom grub file and add the following entries.

For BackBox Live DVD
menuentry 'Backbox Live ISO' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/backbox-3.13-amd64.iso"
                loopback loop (hd1,1)$isofile
                linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
                initrd (loop)/casper/initrd.gz
}
For Gentoo Live DVD
menuentry 'Gentoo Live DVD ISO' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/livedvd-amd64-multilib-20121221.iso"
                loopback loop (hd1,1)$isofile   
                linux (loop)/boot/gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/boot/gentoo.igz isoboot=$isofile
                initrd (loop)/boot/gentoo.igz

}
Add BackBox and Gentoo Boot Kernel Parameters

Add BackBox and Gentoo Boot Kernel Parameters

10. Then update your GRUB menu again with ‘sudo update-grub‘, reboot your computer and choose your preferred Linux distribution ISO from GRUB menu.

Select Gentoo from Grub Menu

Select Gentoo from Grub Menu

Booting Gentoo Live ISO

Booting Gentoo Live ISO

Gentoo Desktop

Gentoo Desktop

Select BackBox from Grub Menu

Select BackBox from Grub Menu

Booting BackBox Live ISO

Booting BackBox Live ISO

BackBox Desktop

BackBox Desktop

Now you can use Kali Linux, BackBox or Gentoo live ISO images directly from your hard disks without the need to burn it to a DVD but you can, also, add other Linux Live ISO distribution images to GRUB2 menu using the same procedure but pay attention to every distribution Live Kernel booting parameters which can be inspected by mounting the ISO image using mount -o loop option or consult distribution Wiki pages.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Matei Cezar

I'am a computer addicted guy, a fan of open source and linux based system software, have about 4 years experience with Linux distributions desktop, servers and bash scripting.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

21 Responses

  1. lilw says:

    I follow this tutorial but failed to see the menu entry in grub2. Checked the grub.cfg and saw the menu but it’s still not appear in grub2 menu
    I’m running on ubuntu 12.04. and it is on the sda3. Actually I have multiple ubuntu version running on my system. sda1 and sda2 is for ubuntu OEM recovery. so here is the look of it:

    sda1 – DELLUTILITY
    sda2 – OS
    sda3 – 12.04 x64 OEM
    sda4 – Extended
    sda5 – swap
    sda6 – 10.04 x64
    sda7 – 10.04 x86
    sda8 – 12.04 x32
    sda9 – 14.04 x32
    sda10 – 14.04 x64
    sda11 – data
    sda12 – 12.04 x64

    the sda3 is the owner of grub2, so I work on this sda3. Also I tried grub-imageboot but failed to boot cause of memdisk not found.

  2. Ankit Singhaniya says:

    can you tell how to make it persistent?

  3. Ankit Singhaniya says:

    I am trying to use BackBox and i have Ubuntu oh hd0, gpt 7
    i tried changing every parameters, but get the following
    error: secure boot forbids to load /boot/grub/…/*.mod (altough secure boot is disabled)
    error: could not load kernel.
    and 2 more

    can you please provide me an entry for 40_custom, and yes my system is UEFI enabled)

  4. Waheed says:

    /dev/sda6 in above input, which automatically means yes i have linux ext4 parition numberd 6. :)

  5. Matei Cezar says:

    @Waheed : Do you even have six partitions on your hard disk? Did you read topic: (hd0,6) or
    hd0,gpt6 are just examples here, it means the 6th partition on first hard disk? Got it?
    Change those numbers with your exact locations? Run fdisk -l to see have a point of view!

  6. Waheed says:

    Removing any hd0,gpt6 like entry worked for me. my ubuntu partition is not visible when running kali linux, but this is i think because of the fact that we are running kali from ubuntu partition. the following entry for gpt drive worked for me

    menuentry ‘Kali Linux 2014 Live’ –class os –class gnu-linux –class gnu –class os –group group_main {
    set isofile=”/live/kali-linux-1.0.7-amd64.iso”

    insmod part_gpt
    insmod ext2
    insmod loopback
    insmod iso9660
    loopback loop $isofile
    search –no-floppy –fs-uuid –set=root YOURUBUNTUDRIVEUUID
    linux (loop)/live/vmlinuz boot=live fromiso=/dev/sda6/$isofile noconfig=sudo username=root hostname=kali
    initrd (loop)/live/initrd.img
    }

    • Ankit Singhaniya says:

      Your details were really helpful. Still I needed to add extra line as:
      set root='(hd0,gpt7)’

      search –no-floppy –fs-uuid –set=root –hint-bios=hd0,gpt7 –hint-efi=hd0,gpt7 –hint-
      baremetal=ahci0,gpt7 e8005837-2f2e-49e1-8a0d-c65728014928

      now BackBox runs fine.

  7. Matei Cezar says:

    Here is a complete entry for Ubuntu 14.04 at six partiton on first GPT disk:

    menuentry “[loopback]ubuntu-14.04-desktop-amd64″ {
    set isofile=”/path_to_iso/ubuntu-14.04-desktop-amd64.iso”
    loopback loop (hd0,6)/$isofile
    linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8
    initrd (loop)/casper/initrd.lz
    }

    The same instructions an apply on Linux Mint Qiana.

    If doesn’t work try this:

    insmod part_gpt
    set root=(hd0,6)
    or
    search –fs-uuid –no-floppy –set=root –hint-bios=hd0,gpt2

  8. Waheed says:

    what will be the input for GPT drives?

  9. vigneswaran says:

    Will this work only for the specified Linux distributions or all distributions ?

  10. Vikri says:

    Thank you for this great article.

    I have a Linux iso “linuxmint-17-dvd-64bit-mate”

    if you have a Custom kernel boot parameters for this.?
    read from your posts, every linux has a different boot parameters.

    Thank you for your attention

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.