1

Topic: Boot GParted from HD with Grub2

I'm using Ubuntu, and have installed, setup, and dual-booted countless Linux systems with no problems.  I also know how to mount partitions, set up grub, etc.  So, I'm not a newbie, FWIW.

So, I decided to try out the latest GParted (0.22.0-1 on AMD 64-bit), and I thought having a bootable version would be nice for those times I need to modify my running system.

First, I tried the zip file.  I installed it on a small partition, and checked it by mounting it in a temp directory, and all looked well.  I added the necessary lines to grub2, checked the grub.cfg file, and it looked good.  But when I tried to boot, it immediately did a reboot.  I tried the trouble shooting of using "radeon.modeset=x", as well as "nomodeset", but nothing changed.

Next, I downloaded the iso, and tried that.  At first, I got the same results.  I checked the Ubuntu site with examples for booting isos, and found an example for an older gparted, so I tried using that with no luck.  Then I used the original suggestion from the gparted site, but modified it in one place where it was differrent: I specified the boot partition on the loopback line to say "loopback loop (hd0,gpt1)$isofile" (my boot disk is gpt formatted).

This booted, but will not run X.  I've tried everything I can think of, setting various options and screen resolutions, but I always get a black screen with a flashing text cursor in the upper left.

I have an AMD Radeon HD 5450, which usually works with everything I've tried without anything special.

Should I give up now, or later? :-)

2

Re: Boot GParted from HD with Grub2

Does the .iso image boot on your computer from a USB flash drive, or from CD/DVD media?

3 (edited by randomuser 2015-03-29 00:00:27)

Re: Boot GParted from HD with Grub2

gedakc wrote:

Does the .iso image boot on your computer from a USB flash drive, or from CD/DVD media?

Thanks, that's a good question, and I suppose I should have tried that already.  I didn't have a blank USB stick, and no blank CDs, but I'll erase one and give it a try.

OK, I booted from USB, using the same iso file, and it booted OK using all defaults for the initial prompts.  I retried from disk (same iso file), using the same defaults, and no X.

Guess I'll have to give up on avoiding the external media, or try another distro.  :-(

4

Re: Boot GParted from HD with Grub2

Thanks for testing.  The fact that the GParted Live image boots from removable media indicates that your video card is indeed supported.  Instead the problem is likely with the HDD boot configuration.  I have forwarded your post to our Live image maintainer.

Note that GParted Live is based on Debian Live, so much of the knowledge on how to boot Debian Live is relevant for GParted Live.

5

Re: Boot GParted from HD with Grub2

@randomuser,
Please show me your complete grub config so that it's easier to understand the whole picture.
Thanks.

Steven.

6 (edited by randomuser 2015-03-30 16:54:24)

Re: Boot GParted from HD with Grub2

stevenshiau wrote:

@randomuser,
Please show me your complete grub config so that it's easier to understand the whole picture.
Thanks.

Steven.

Do you meant the entire file?  It's just the standard Ubuntu stuff except for adding one menuentry (which works, but doesn't run X).

Here's the GParted section; I'll add the entire file at the bottom.

### BEGIN /etc/grub.d/40_custom ###
# 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 "Gparted live" {
    set isofile="/home/isos/gparted-live-0.22.0-1-amd64.iso" 
    loopback loop (hd0,gpt1)$isofile
    echo "Loading Linux"
    linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt vga=788 ip=frommedia toram=filesystem.squashfs findiso=$isofile
    echo "Loading minirt"
    initrd (loop)/live/initrd.img
}

It's the recommended code, except I needed to add the partition specifier in the loopback statement; maybe the gpt partitioning makes a difference?).  I got that from the Ubuntu example from their wiki: https://help.ubuntu.com/community/Grub2 … es#Gparted  I believe it also works if I use

set root=(hd0,gpt1)

Here is the entire grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
else
  search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=-1
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30,0; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-12d48b97-b35f-481d-9579-34288db7fb20' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
    else
      search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
    fi
    linux    /boot/vmlinuz-3.13.0-24-generic root=UUID=12d48b97-b35f-481d-9579-34288db7fb20 ro  quiet splash $vt_handoff
    initrd    /boot/initrd.img-3.13.0-24-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-12d48b97-b35f-481d-9579-34288db7fb20' {
    menuentry 'Ubuntu, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-12d48b97-b35f-481d-9579-34288db7fb20' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
        else
          search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
        fi
        echo    'Loading Linux 3.13.0-24-generic ...'
        linux    /boot/vmlinuz-3.13.0-24-generic root=UUID=12d48b97-b35f-481d-9579-34288db7fb20 ro  quiet splash $vt_handoff
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd.img-3.13.0-24-generic
    }
    menuentry 'Ubuntu, with Linux 3.13.0-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-recovery-12d48b97-b35f-481d-9579-34288db7fb20' {
        recordfail
        load_video
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
        else
          search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
        fi
        echo    'Loading Linux 3.13.0-24-generic ...'
        linux    /boot/vmlinuz-3.13.0-24-generic root=UUID=12d48b97-b35f-481d-9579-34288db7fb20 ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd.img-3.13.0-24-generic
    }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry 'Memory test (memtest86+)' {
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
    else
      search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
    fi
    knetbsd    /boot/memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  12d48b97-b35f-481d-9579-34288db7fb20
    else
      search --no-floppy --fs-uuid --set=root 12d48b97-b35f-481d-9579-34288db7fb20
    fi
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# 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 "Gparted live" {
    set isofile="/home/isos/gparted-live-0.22.0-1-amd64.iso" 
    loopback loop (hd0,gpt1)$isofile
    echo "Loading Linux"
    linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt vga=788 ip=frommedia toram=filesystem.squashfs findiso=$isofile radeon.modeset=1 
    echo "Loading minirt"
    initrd (loop)/live/initrd.img
}

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

7

Re: Boot GParted from HD with Grub2

gedakc wrote:

Thanks for testing.  The fact that the GParted Live image boots from removable media indicates that your video card is indeed supported.  Instead the problem is likely with the HDD boot configuration.  I have forwarded your post to our Live image maintainer.

Note that GParted Live is based on Debian Live, so much of the knowledge on how to boot Debian Live is relevant for GParted Live.

Thanks for your help.  Perhaps I'll try booting some other isos, especially Debian-based.  I've never actually booted from an iso before, and only tried it because it would not boot from an HD partition (I haven't actually tried booting a live CD from an HD without installing, either, though).