Announcement

Collapse
No announcement yet.

Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (Grub2

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (Grub2

    Hello,

    I had a Dell computer with Windows XP. I've installed Kubuntu 9.10 Karmic Koala on it. I never want to go back to Windows, so I've removed the ntfs partition and created a swap and ext4 partition in it's place. But I kept the Dell Utility System Partition. Because I want to keep using that!!!

    My problem is: After installing Kubuntu with Grub2, I can't boot to the Dell Utility System Partition any more .

    Old situation
    When I switch on my computer I press F12 to enter in the Dell Boot options menu.
    In the boot options menu I have a list of possible boot options. One of them is "Boot to Utility Partition"
    When I choose "Boot to Utility Partition", then I booted in the special Dell Utility Diagnostics Tool.


    Current situation:
    When I choose "Boot to Utility Partition", then Kubuntu starts instead of the special Dell Utility Diagnostics Tool.

    I know you can press the [Shift] key while booting to let the Grub2 menu appear. When I do that, the Grub2 menu appears ...but there is no option "Dell Utility Partition" in it

    So unfortunately the Grub2 OS prober doesn't find my Dell Utility System Partition .


    Desired situation:
    I want to be able to boot to my Dell Utility System Partition, so I can run the Dell Utility Diagnostics Tool.


    What I've tried:
    I tried to add the Dell Utility System Partition boot option to the Grub2 menu. Therefore I did this:

    To verify that my Dell Utility partition is on /dev/sda1 I ran the command:
    Code:
    sudo fdisk -l
    This command gave the following output:
    Code:
    Disk /dev/sda: 120.0 GB, 120000000000 bytes
    255 heads, 63 sectors/track, 14589 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x9dc96e9e
    
      Device Boot   Start     End   Blocks  Id System
    /dev/sda1        1      6    48163+ de Dell Utility
    /dev/sda2        7     130   996030  82 Linux swap / Solaris
    /dev/sda3  *     131    14589  116141917+ 83 Linux

    The filesystem of the Dell Utility System Partition is: fat
    I verified this with the following command:
    Code:
    sudo grub-probe --device /dev/sda1 --target=fs
    This command gave the following output:
    Code:
    fat

    Then I tried to manually add the Dell Utility System Partition boot option to the grub2 menu.
    So I read the information on https://wiki.kubuntu.org/Grub2 and http://grub.enbug.org/Manual.

    After reading that I first edited /etc/grub.d/40_custom (With gksu kate /etc/grub.d/40_custom). And added the following:
    Code:
    menuentry "Dell Utility partition" {
        set root=(hd0,1)
        chainloader +1
    }
    So my /etc/grub.d/40_custom file looked like this:
    Code:
    #!/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 "Dell Utility partition" {
        set root=(hd0,1)
        chainloader +1
    }
    Then I ran
    Code:
    sudo grub-mkconfig -o
    to see if my menuentry would successfully be added to the grub config file. It was nicely added to the end of the grub config file, just as expected.

    Then I ran
    Code:
    sudo update-grub
    Code:
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-2.6.31-14-generic
    Found initrd image: /boot/initrd.img-2.6.31-14-generic
    Found memtest86+ image: /boot/memtest86+.bin
    done
    To verify if my menuentry was successfully added in the newly generated grub.cfg, I opened /boot/grub/grub.cfg in an editor. And as expected it was successfully added.

    My /boot/grub/grub.cfg file now looks as follows:
    Code:
    #
    # DO NOT EDIT THIS FILE
    #
    # It is automatically generated by /usr/sbin/grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    #
    
    ### BEGIN /etc/grub.d/00_header ###
    if [ -s /boot/grub/grubenv ]; then
     have_grubenv=true
     load_env
    fi
    set default="0"
    if [ ${prev_saved_entry} ]; then
     saved_entry=${prev_saved_entry}
     save_env saved_entry
     prev_saved_entry=
     save_env prev_saved_entry
    fi
    insmod ext2
    set root=(hd0,3)
    search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
    if loadfont /usr/share/grub/unicode.pf2 ; then
     set gfxmode=640x480
     insmod gfxterm
     insmod vbe
     if terminal_output gfxterm ; then true ; else
      # For backward compatibility with versions of terminal.mod that don't
      # understand terminal_output
      terminal gfxterm
     fi
    fi
    if [ ${recordfail} = 1 ]; then
     set timeout=-1
    else
     set timeout=10
    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/white
    ### END /etc/grub.d/05_debian_theme ###
    
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry "Ubuntu, Linux 2.6.31-14-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    	set quiet=1
    	insmod ext2
    	set root=(hd0,3)
    	search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
    	linux	/boot/vmlinuz-2.6.31-14-generic root=UUID=c98a8949-8bf2-4b86-8f37-554d06753cc9 ro  quiet splash
    	initrd	/boot/initrd.img-2.6.31-14-generic
    }
    menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    	insmod ext2
    	set root=(hd0,3)
    	search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
    	linux	/boot/vmlinuz-2.6.31-14-generic root=UUID=c98a8949-8bf2-4b86-8f37-554d06753cc9 ro single 
    	initrd	/boot/initrd.img-2.6.31-14-generic
    }
    ### END /etc/grub.d/10_linux ###
    
    ### BEGIN /etc/grub.d/20_memtest86+ ###
    menuentry "Memory test (memtest86+)" {
    	linux16	/boot/memtest86+.bin
    }
    menuentry "Memory test (memtest86+, serial console 115200)" {
    	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
    }
    ### END /etc/grub.d/20_memtest86+ ###
    
    ### BEGIN /etc/grub.d/30_os-prober ###
    if [ ${timeout} != -1 ]; then
     if keystatus; then
      if keystatus --shift; then
       set timeout=-1
      else
       set timeout=0
      fi
     else
      if sleep --interruptible 3 ; then
       set timeout=0
      fi
     fi
    fi
    ### END /etc/grub.d/30_os-prober ###
    
    ### 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 "Dell Utility partition" {
        set root=(hd0,1)
        chainloader +1
    }### END /etc/grub.d/40_custom ###
    Then I rebooted my computer. I pressed the [F12] key again to enter in the Dell Boot options menu. I choose "Boot to Utility Partition" and holded the [Shift] key. The grub2 menu appeared ...but my menu entry was missing!?!


    Question:
    How can I boot to my Dell Utility System Partition? And (automatically) run the Dell Utility that is installed on that partition?



    P.S. If you read this post because you have problems with grub2, here are some other links that might be useful:
    http://kubuntuforums.net/forums/inde...opic=3106368.0
    http://ubuntuforums.org/showthread.php?t=1195275

    #2
    Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

    Those Dell Utility partitions do seem to annoy us now and then.
    Very nice explanation of your problem. Unfortunately, my solution would have been what you already tried: to chainload into sda1.

    Now, as you know, you can chainload if there is a bootloader installed to the boot sector of sda1; so we assume Dell has installed some sort of bootloader there? I have no idea what Dell has put there or how it's supposed to work.
    Second, you say it did not appear in the boot menu. Sometimes if the menu is long, it scrolls down off the screen, and you'll see a down-arrow on the right border and you press the down arrow key on your keyboard to see more boot menu.
    Third, you could also try it directly:
    When you see your boot menu (after POST), press the "c" key to get a GRUB 2 prompt, grub>.
    Then:
    grub>set root=(hd0,1)
    grub>chainloader +1
    grub>boot
    and see if it will go into sda1.

    Sorry, right now, that's all I can think of; I haven't searched for this problem, but I'll bet you have googled some on it.
    An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way. Charles Bukowski

    Comment


      #3
      Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

      Originally posted by Qqmike
      Third, you could also try it directly:
      When you see your boot menu (after POST), press the "c" key to get a GRUB 2 prompt, grub>.
      Then:
      grub>set root=(hd0,1)
      grub>chainloader +1
      grub>boot
      and see if it will go into sda1.
      Thanks for your reply.
      Your second point isn't the case. My menu is very short (only 4 items).
      Your third point works. With the GRUB 2 prompt I can successfully boot the Dell Utility partition.

      So now I've got a workaround for my problem. But still I wonder why my menuentry doesn't appear in the GRUB2 menu. And how I can make my menuentry appear.

      Any ideas?

      Comment


        #4
        Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

        So now I've got a workaround for my problem. But still I wonder why my menuentry doesn't appear in the GRUB2 menu. And how I can make my menuentry appear


        After editing /etc/grub.d, did you run
        sudo update-grub
        or
        sudo
        grub-mkcfg -o /boot/grub/grub.cfg
        ?
        An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way. Charles Bukowski

        Comment


          #5
          Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

          ... if not, do so now
          An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way. Charles Bukowski

          Comment


            #6
            Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

            sudo grub-mkconfig --output= /boot/grub/grub.cfg
            or, same thing
            sudo grub-mkconfig --o /boot/grub/grub.cfg
            (sorry)
            An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way. Charles Bukowski

            Comment


              #7
              Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (Grub2

              I found out the cause and the solution to the problem!

              The cause is this that Grub2 only see lines that start with # as comments. If a # is written somewhere else, Grub2 doesn't see that as a comment. So if you have a # behind a Grub2 configuration line, you will get a syntax error.

              If you edit /etc/grub.d/40_custom and then generate the grub.cfg with sudo update-grub, then update-grub will place this comment at the end of the contents of /etc/grub.d/40_custom ### END /etc/grub.d/40_custom ###.

              In my case the generated /boot/grub/grub.cfg file looked like this:
              Code:
              #
              # DO NOT EDIT THIS FILE
              #
              # It is automatically generated by /usr/sbin/grub-mkconfig using templates
              # from /etc/grub.d and settings from /etc/default/grub
              #
              
              ### BEGIN /etc/grub.d/00_header ###
              if [ -s /boot/grub/grubenv ]; then
               have_grubenv=true
               load_env
              fi
              set default="0"
              if [ ${prev_saved_entry} ]; then
               saved_entry=${prev_saved_entry}
               save_env saved_entry
               prev_saved_entry=
               save_env prev_saved_entry
              fi
              insmod ext2
              set root=(hd0,3)
              search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
              if loadfont /usr/share/grub/unicode.pf2 ; then
               set gfxmode=640x480
               insmod gfxterm
               insmod vbe
               if terminal_output gfxterm ; then true ; else
                # For backward compatibility with versions of terminal.mod that don't
                # understand terminal_output
                terminal gfxterm
               fi
              fi
              if [ ${recordfail} = 1 ]; then
               set timeout=-1
              else
               set timeout=10
              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/white
              ### END /etc/grub.d/05_debian_theme ###
              
              ### BEGIN /etc/grub.d/10_linux ###
              menuentry "Ubuntu, Linux 2.6.31-14-generic" {
                  recordfail=1
                  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
              	set quiet=1
              	insmod ext2
              	set root=(hd0,3)
              	search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
              	linux	/boot/vmlinuz-2.6.31-14-generic root=UUID=c98a8949-8bf2-4b86-8f37-554d06753cc9 ro  quiet splash
              	initrd	/boot/initrd.img-2.6.31-14-generic
              }
              menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
                  recordfail=1
                  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
              	insmod ext2
              	set root=(hd0,3)
              	search --no-floppy --fs-uuid --set c98a8949-8bf2-4b86-8f37-554d06753cc9
              	linux	/boot/vmlinuz-2.6.31-14-generic root=UUID=c98a8949-8bf2-4b86-8f37-554d06753cc9 ro single 
              	initrd	/boot/initrd.img-2.6.31-14-generic
              }
              ### END /etc/grub.d/10_linux ###
              
              ### BEGIN /etc/grub.d/20_memtest86+ ###
              menuentry "Memory test (memtest86+)" {
              	linux16	/boot/memtest86+.bin
              }
              menuentry "Memory test (memtest86+, serial console 115200)" {
              	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
              }
              ### END /etc/grub.d/20_memtest86+ ###
              
              ### BEGIN /etc/grub.d/30_os-prober ###
              if [ ${timeout} != -1 ]; then
               if keystatus; then
                if keystatus --shift; then
                 set timeout=-1
                else
                 set timeout=0
                fi
               else
                if sleep --interruptible 3 ; then
                 set timeout=0
                fi
               fi
              fi
              ### END /etc/grub.d/30_os-prober ###
              
              ### 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 "Dell Utility partition" {
                  set root=(hd0,1)
                  chainloader +1
              }### END /etc/grub.d/40_custom ###
              Do you see the problem?

              update-grub placed the ### END /etc/grub.d/40_custom ### behind my closing }. And because grub2 only sees lines that START with # as a comment, the ### END /etc/grub.d/40_custom ### was interpreted as code. So I got a syntax error.

              THE SOLUTION:
              Make sure there is a empty line on the end of your /etc/grub.d/40_custom file.

              Now my /etc/grub.d/40_custom looks like this
              Code:
              #!/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 "Dell Utility partition" {
                  set root=(hd0,1)
                  chainloader +1
              }
              # make sure there is an enter after the }
              And now everything works fine!

              Conclusion
              This feature took me many hours to solve. I think it would be nice if the people of Grub2 and or Kubuntu would change the update-grub so it will always place the comments on a new line.

              Comment


                #8
                Re: Can't boot to Dell Utility System Partition after installing Kubuntu 9.10 (G

                Interesting. Nice work wim007.
                Yes, the
                #
                indicates a comment line.

                This is troubling! ->
                }### END /etc/grub.d/40_custom ###

                You should report that to the grub list.
                Now, had there been a space after the }, it (probably) would have worked OK:
                } ### END /etc/grub.d/40_custom ###

                It makes me realize why I haven't had the problem: by habit (no other reason), I always introduce a blank line, hitting return, after finishing any boot entry.

                Thanks for this good work. This could (and no doubt will) trip up a lot of unsuspecting folks. Quite a subtle thing.

                An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way. Charles Bukowski

                Comment

                Working...
                X