We’d like to remind Forumites to please avoid political debate on the Forum.

This is to keep it a safe and useful space for MoneySaving discussions. Threads that are – or become – political in nature may be removed in line with the Forum’s rules. Thank you for your understanding.

📨 Have you signed up to the Forum's new Email Digest yet? Get a selection of trending threads sent straight to your inbox daily, weekly or monthly!

Ubuntu Linux, Windows 10 & XP multi boot

I’ve got Ubuntu & Win 10 successfully working on an old desktop pc. The Grub2 boot loader works just fine.
Previously I installed a copy of XP on another partition on the same hard disc.
In Grub2 Customizer I’ve added XP as another menu choice but I can’t get it to run when chosen.
details are:-
name XP
Type Chainloader 
partition /dev/sda5 (winXP, ntfs)
boot sequence 
set root=‘(hd0,5)’
search-no-floppy-fs-uuid-set 30B85213B851D844
drivemap -s (hd0) ${foot}
chainloader +1

The above details were generated by Grub2 Customizer.
I wondered if there was anything above that was obviously wrong.
 Thanks 
«1

Comments

  • Neil_Jones
    Neil_Jones Posts: 9,655 Forumite
    Part of the Furniture 1,000 Posts Name Dropper
    Windows bootloaders tend to insist on being the only operating system on the drive.
    The easiest way to accomplish a dual-boot is to install the oldest operating system first, and then in the order that they were released coming forward.
    You should then be able to install Ubuntu afterwards which then works as a dual-boot for both it and all the versions of Windows too.
  • debitcardmayhem
    debitcardmayhem Posts: 13,102 Forumite
    Part of the Furniture 10,000 Posts Name Dropper Photogenic
    search-no-floppy-fs-uuid-set 30B85213B851D844
    should that be
    search --nofloppy  --fs-uuid   --set=root 30B85213B851D844
    Not sure though since I no longer have an XP partition , I run my XP in Virtualbox
    where is your grub.cfg ? could you put the full one up


    4.8kWp 12x400W Longhi 9.6 kWh battery Giv-hy 5.0 Inverter, WSW facing Essex . Aint no sunshine ☀️ Octopus gas fixed dec 24 @ 5.74 tracker again+ Octopus Intelligent Flux leccy
  • GeorgeTurner
    GeorgeTurner Posts: 12 Forumite
    Second Anniversary First Post
    #
    # 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 [ "${initrdfail}" = 2 ]; then
       set initrdfail=
    elif [ "${initrdfail}" = 1 ]; then
       set next_entry="${prev_entry}"
       set prev_entry=
       save_env prev_entry
       if [ "${next_entry}" ]; then
          set initrdfail=2
       fi
    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 initrdfail {
        if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
          if [ -z "${initrdfail}" ]; then
            set initrdfail=1
            if [ -n "${boot_once}" ]; then
              set prev_entry="${default}"
              save_env prev_entry
            fi
          fi
          save_env initrdfail
        fi; 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_msdos
    insmod ext2
    set root='hd0,msdos6'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
    else
      search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
    fi
        font="/usr/share/grub/unicode.pf2"
    fi

    if loadfont $font ; then
      set gfxmode=640x480
      load_video
      insmod gfxterm
      set locale_dir=$prefix/locale
      set lang=en_GB
      insmod gettext
    fi
    terminal_output gfxterm
    if [ "${recordfail}" = 1 ] ; then
      set timeout=30
    else
      if [ x$feature_timeout_style = xy ] ; then
        set timeout_style=hidden
        set timeout=10
      # Fallback hidden-timeout code in case the timeout_style feature is
      # unavailable.
      elif sleep --interruptible 10 ; then
        set timeout=0
      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
    ### END /etc/grub.d/05_debian_theme ###

    ### BEGIN /etc/grub.d/10_linux_proxy ###

    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



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

    ### BEGIN /etc/grub.d/30_os-prober_proxy ###
    menuentry "Windows 10 (on /dev/sda1)" --class windows --class os $menuentry_id_option 'osprober-chain-C80CC6710CC65A58' {
        insmod part_msdos
        insmod ntfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  C80CC6710CC65A58
        else
          search --no-floppy --fs-uuid --set=root C80CC6710CC65A58
        fi
        parttool ${root} hidden-
        drivemap -s (hd0) ${root}
        chainloader +1
    }
    ### END /etc/grub.d/30_os-prober_proxy ###

    ### BEGIN /etc/grub.d/31_linux_proxy ###
    menuentry "Ubuntu" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-637ecdb4-a199-4105-85f1-ae0f2d1ba8db' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        else
          search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        fi
        linux    /boot/vmlinuz-5.4.0-33-generic root=UUID=637ecdb4-a199-4105-85f1-ae0f2d1ba8db ro  quiet splash $vt_handoff
        initrd    /boot/initrd.img-5.4.0-33-generic
    }
    submenu "Advanced options for Ubuntu"{
    menuentry "Ubuntu, with Linux 5.4.0-33-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-33-generic-advanced-637ecdb4-a199-4105-85f1-ae0f2d1ba8db' {
            recordfail
            load_video
            gfxmode $linux_gfx_mode
            insmod gzio
            if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
            insmod part_msdos
            insmod ext2
            set root='hd0,msdos6'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            else
              search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            fi
            echo    'Loading Linux 5.4.0-33-generic ...'
            linux    /boot/vmlinuz-5.4.0-33-generic root=UUID=637ecdb4-a199-4105-85f1-ae0f2d1ba8db ro  quiet splash $vt_handoff
            echo    'Loading initial ramdisk ...'
            initrd    /boot/initrd.img-5.4.0-33-generic
    }
    menuentry "Ubuntu, with Linux 5.4.0-33-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-33-generic-recovery-637ecdb4-a199-4105-85f1-ae0f2d1ba8db' {
            recordfail
            load_video
            insmod gzio
            if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
            insmod part_msdos
            insmod ext2
            set root='hd0,msdos6'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            else
              search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            fi
            echo    'Loading Linux 5.4.0-33-generic ...'
            linux    /boot/vmlinuz-5.4.0-33-generic root=UUID=637ecdb4-a199-4105-85f1-ae0f2d1ba8db ro recovery nomodeset
            echo    'Loading initial ramdisk ...'
            initrd    /boot/initrd.img-5.4.0-33-generic
    }
    menuentry "Ubuntu, with Linux 5.4.0-26-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-advanced-637ecdb4-a199-4105-85f1-ae0f2d1ba8db' {
            recordfail
            load_video
            gfxmode $linux_gfx_mode
            insmod gzio
            if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
            insmod part_msdos
            insmod ext2
            set root='hd0,msdos6'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            else
              search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            fi
            echo    'Loading Linux 5.4.0-26-generic ...'
            linux    /boot/vmlinuz-5.4.0-26-generic root=UUID=637ecdb4-a199-4105-85f1-ae0f2d1ba8db ro  quiet splash $vt_handoff
            echo    'Loading initial ramdisk ...'
            initrd    /boot/initrd.img-5.4.0-26-generic
    }
    menuentry "Ubuntu, with Linux 5.4.0-26-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-recovery-637ecdb4-a199-4105-85f1-ae0f2d1ba8db' {
            recordfail
            load_video
            insmod gzio
            if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
            insmod part_msdos
            insmod ext2
            set root='hd0,msdos6'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            else
              search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
            fi
            echo    'Loading Linux 5.4.0-26-generic ...'
            linux    /boot/vmlinuz-5.4.0-26-generic root=UUID=637ecdb4-a199-4105-85f1-ae0f2d1ba8db ro recovery nomodeset
            echo    'Loading initial ramdisk ...'
            initrd    /boot/initrd.img-5.4.0-26-generic
    }
    }
    ### END /etc/grub.d/31_linux_proxy ###

    ### BEGIN /etc/grub.d/32_linux_zfs ###
    ### END /etc/grub.d/32_linux_zfs ###

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

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

    ### BEGIN /etc/grub.d/34_memtest86+_proxy ###



    ### END /etc/grub.d/34_memtest86+_proxy ###

    ### BEGIN /etc/grub.d/35_os-prober_proxy ###


    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/35_os-prober_proxy ###

    ### BEGIN /etc/grub.d/36_memtest86+_proxy ###
    menuentry "Memory test (memtest86+)" {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        else
          search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        fi
        knetbsd    /boot/memtest86+.elf
    }
    menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        else
          search --no-floppy --fs-uuid --set=root 637ecdb4-a199-4105-85f1-ae0f2d1ba8db
        fi
        linux16    /boot/memtest86+.bin console=ttyS0,115200n8
    }
    ### END /etc/grub.d/36_memtest86+_proxy ###

    ### BEGIN /etc/grub.d/37_uefi-firmware ###
    ### END /etc/grub.d/37_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 "Windows XP"{
        set root='(hd0,5)'
        search --no-floppy --fs-uuid --set 30B85213B851D844
        drivemap -s (hd0) ${root}
        chainloader +1
    }
    ### 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 ###

  • GeorgeTurner
    GeorgeTurner Posts: 12 Forumite
    Second Anniversary First Post
    thanks debitcardmayhem and others. As suggested I've posted the entire grub.cfg file above. Sorry for the length of the file.
    Regards

  • debitcardmayhem
    debitcardmayhem Posts: 13,102 Forumite
    Part of the Furniture 10,000 Posts Name Dropper Photogenic
    thanks debitcardmayhem and others. As suggested I've posted the entire grub.cfg file above. Sorry for the length of the file.
    Regards

    Could you run this and see what is in mygrub
    sudo grub2-mkconfig --output=mygrub
    see if it is the same as the one above


    4.8kWp 12x400W Longhi 9.6 kWh battery Giv-hy 5.0 Inverter, WSW facing Essex . Aint no sunshine ☀️ Octopus gas fixed dec 24 @ 5.74 tracker again+ Octopus Intelligent Flux leccy
  • debitcardmayhem
    debitcardmayhem Posts: 13,102 Forumite
    Part of the Furniture 10,000 Posts Name Dropper Photogenic
    A sample XP one here
    menuentry "Windows XP BIOS MBR" {
         insmod part_msdos
         insmod ntldr
         insmod ntfs
         ntldr (hd0,msdos5)/ntldr
    }
    or a sample of chainloader is
    chainloader (hd0,msdos5)+1

    4.8kWp 12x400W Longhi 9.6 kWh battery Giv-hy 5.0 Inverter, WSW facing Essex . Aint no sunshine ☀️ Octopus gas fixed dec 24 @ 5.74 tracker again+ Octopus Intelligent Flux leccy
  • GeorgeTurner
    GeorgeTurner Posts: 12 Forumite
    Second Anniversary First Post
    edited 5 June 2020 at 7:28PM
    thanks but the command suggested returns the following error
    sudo: grub2-mkconfig: command not found
    I did try the Chainloader suggestion but also couldn't get it to work - probably my fault
  • debitcardmayhem
    debitcardmayhem Posts: 13,102 Forumite
    Part of the Furniture 10,000 Posts Name Dropper Photogenic
    Aaah Ubuntu on there its grub-mkconfig ....my bad, so used to Fedora
    4.8kWp 12x400W Longhi 9.6 kWh battery Giv-hy 5.0 Inverter, WSW facing Essex . Aint no sunshine ☀️ Octopus gas fixed dec 24 @ 5.74 tracker again+ Octopus Intelligent Flux leccy
  • debitcardmayhem
    debitcardmayhem Posts: 13,102 Forumite
    Part of the Furniture 10,000 Posts Name Dropper Photogenic
    edited 6 June 2020 at 8:53AM
    This is a sample that works , but try the grub-mkconfig first.
    This was my grub-mkconfig output
    ### BEGIN /etc/grub.d/30_os-prober ###
    menuentry 'Microsoft Windows XP Professional (on /dev/sdax)' --class windows --class os $menuentry_id_option 'osprober-chain-CC24FEB624FEA31E' {
            insmod part_msdos
            insmod ntfs
            set root='hd0,msdos2'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  CC24FEB624FEA31E
            else
              search --no-floppy --fs-uuid --set=root CC24FEB624FEA31E
            fi
            parttool ${root} hidden-
            drivemap -s (hd0) ${root}
            chainloader +1
    }
    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/30_os-prober ###
    The bits that are struck out eg CC24FEB624FEA31E
    Need to be changed for your details eg msdos5 (if your partition is 5)
    and the CC24...... is the UUID of your XP disk you can check that with gparted on Ubuntu select that partition right click and go to information





    4.8kWp 12x400W Longhi 9.6 kWh battery Giv-hy 5.0 Inverter, WSW facing Essex . Aint no sunshine ☀️ Octopus gas fixed dec 24 @ 5.74 tracker again+ Octopus Intelligent Flux leccy
  • a
    a Posts: 241 Forumite
    Fifth Anniversary 100 Posts Name Dropper
    edited 6 June 2020 at 7:14AM
    unless you really need special hardware adapter or device access, put it on a vm like virtualbox, vmware, or hyper v and a few more, and save yourself some disk space with thin provisioning, and the insanity of boot loaders.
Meet your Ambassadors

🚀 Getting Started

Hi new member!

Our Getting Started Guide will help you get the most out of the Forum

Categories

  • All Categories
  • 352.1K Banking & Borrowing
  • 253.5K Reduce Debt & Boost Income
  • 454.2K Spending & Discounts
  • 245.1K Work, Benefits & Business
  • 600.7K Mortgages, Homes & Bills
  • 177.4K Life & Family
  • 258.9K Travel & Transport
  • 1.5M Hobbies & Leisure
  • 16.2K Discuss & Feedback
  • 37.6K Read-Only Boards

Is this how you want to be seen?

We see you are using a default avatar. It takes only a few seconds to pick a picture.