如何向 GRUB2 菜单添加新的操作系统启动项?

如何向 GRUB2 菜单添加新的操作系统启动项?

我对 Linux 还很陌生,但过去几天我决定尝试一下。我尝试了几个不同的发行版,只是为了感受一下不同的版本,这是唯一让我感到困惑的事情。

我先从 Windows 7 开始,然后安装了 Ubuntu 13.10(运行完美),然后安装了 Linux Mint。但是,我没有办法启动 Linux Mint,而这正是我想要实现的。我的目标是在启动时出现的 Grub2 菜单上有一个 Linux Mint 菜单项,与 Ubuntu 和 Windows 7 菜单项一起使用(还有一些我尚未使用过的菜单项,如高级 Ubuntu 选项子菜单和内存测试菜单项)。


如果需要任何此类信息,以下是来自 GParted 分区表的一些信息以及部分输出bootinfoscript

来自 GParted 的分区信息和描述:

  1. /dev/sda1是一个 101.94 MiB 主分区,采用 fat16 文件系统,带有“diag”标志
  2. /dev/sda2是一个 11.29 GiB 的主分区,采用 ntfs 文件系统,带有“启动”标志和“恢复”标签。根据/boot/grub/grub.cfg,这是 Windows 7 加载程序所在的位置。我从当前的 Grub2 菜单启动 Windows 7 没有任何问题。
  3. /dev/sda3是一个 275.12 GiB 的主分区,带有 ntfs 文件系统,标签为“OS”。此分区保存了我最初在 Windows 上创建的所有文件,尽管有些文件已使用 Ubuntu 程序保存(到目前为止,跨操作系统编辑文件没有出现任何问题,但如果出于某种原因出现问题,请告诉我)。
  4. /dev/sda4是一个 171.01 GiB 的扩展分区。此分区当前已挂载。它包含交换分区,以及 Ubuntu 13.10 和 Linux Mint 16 的逻辑分区:
    • /dev/sda5是一个 58.79 GiB 的逻辑分区,具有 ext4 文件系统,其中包含 Linux Mint 16 的安装。在 GParted 中,它显示此文件系统的挂载点是/。这是唯一具有非空挂载点条目的分区。我不知道该怎么做,而且我目前也不知道如何启动当前所在的 Linux Mint 16。
    • /dev/sda6是一个 19.56 GiB 分区(我相信它被认为是主分区?),带有“linux-swap”文件系统。这是我在安装 Ubuntu 时自动创建的,但在尝试安装 Linux Mint 16 时遇到一些问题时,我手动将其大小增加了约 10 GB。据我所知,Linux Mint 16 目前已成功安装,但我不知道如何像我之前所说的那样启动它。此分区当前已安装。
    • /dev/sda7是一个 36.41 GiB 的逻辑分区,文件系统为 ext4,其中包含 Ubuntu 13.10。Ubuntu 13.10 运行良好,我目前就是在它上面写这个问题的。此分区当前已挂载。

这是bootinfoscript输出(它很长,包括文件grub.cfg以及sudo fdisk -l已经发布在这里的信息 - 但是由于字符限制,有些信息必须省略):

                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    in partition 94 for .
 => Syslinux MBR (4.04 and higher) is installed in the MBR of /dev/sdb.

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  Dell Utility: FAT16
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /DELLBIO.BIN /DELLRMK.BIN /COMMAND.COM

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Boot/BCD

sda3: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /Windows/System32/winload.exe /ubuntu/winboot/wubildr 
                       /ubuntu/winboot/wubildr.mbr

sda4: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  -
    Boot sector info: 

sda5: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 13.10
    Boot files:        /boot/grub/grub.cfg /etc/fstab

sda6: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sda7: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda7 
                       and looks at sector 648107560 of the same hard drive 
                       for core.img. core.img is at this location and looks 
                       in partition 94 for .
    Operating System:  Linux Mint 16 Petra
    Boot files:        /boot/grub/grub.cfg /etc/fstab


============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1                  63       208,844       208,782  de Dell Utility
/dev/sda2    *        212,992    41,172,991    40,960,000   7 NTFS / exFAT / HPFS
/dev/sda3          41,172,992   618,134,175   576,961,184   7 NTFS / exFAT / HPFS
/dev/sda4         618,139,646   976,771,071   358,631,426   5 Extended
/dev/sda5         694,501,376   817,790,975   123,289,600  83 Linux
/dev/sda6         935,753,728   976,771,071    41,017,344  82 Linux swap / Solaris
/dev/sda7         618,139,648   694,499,022    76,359,375  83 Linux

"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/sda1        3030-3030                              vfat       DellUtility
/dev/sda2        76C2AD13C2ACD89F                       ntfs       RECOVERY
/dev/sda3        B864AE8864AE4948                       ntfs       OS
/dev/sda5        5832ede3-f357-427e-ac67-b2157b5ba6e1   ext4       
/dev/sda6        24a1b8d2-d3a0-4b3f-b48e-9a3f5bab16c2   swap       
/dev/sda7        520dfeb8-758e-47c0-97de-a0a8cb8b4866   ext4

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/sda3        /media/matt/OS           fuseblk    (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sda5        /                        ext4       (rw,errors=remount-ro)
/dev/sda7        /media/matt/520dfeb8-758e-47c0-97de-a0a8cb8b4866 ext4       (rw,nosuid,nodev,uhelper=udisks2)


=========================== sda5/boot/grub/grub.cfg: ===========================
Bootinfoscript
--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#

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

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_msdos
    insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
else
  search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
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
  set timeout=10
fi
### END /etc/grub.d/00_header ###

/\/\/\/\/\ EDITED OUT MORE THEME INFO /\/\/\/\/\/\

### 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-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
    else
      search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
    fi
    linux   /boot/vmlinuz-3.11.0-15-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro   acpi_backlight=vendor dell_laptop.backlight=0 quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.11.0-15-generic
}

/\/\/\/\/\/\/\/ I MANUALLY OMITTED THE UBUNTU ADVANCED OPTIONS SUBMENU FROM HERE BECAUSE THERE Was >30000 CHARACTERS /\/\/\/\/\/\/

--class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-35-generic-advanced-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
    recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
        else
          search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
        fi
        echo    'Loading Linux 3.8.0-35-generic ...'
        linux   /boot/vmlinuz-3.8.0-35-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro   acpi_backlight=vendor dell_laptop.backlight=0 quiet splash $vt_handoff
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.8.0-35-generic
    }
    menuentry 'Ubuntu, with Linux 3.8.0-35-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-35-generic-recovery-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
    recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
        else
          search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
        fi
        echo    'Loading Linux 3.8.0-35-generic ...'
        linux   /boot/vmlinuz-3.8.0-35-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.8.0-35-generic
    }
    menuentry 'Ubuntu, with Linux 3.8.0-19-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-advanced-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
    recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
        else
          search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
        fi
        echo    'Loading Linux 3.8.0-19-generic ...'
        linux   /boot/vmlinuz-3.8.0-19-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro   acpi_backlight=vendor dell_laptop.backlight=0 quiet splash $vt_handoff
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.8.0-19-generic
    }
    menuentry 'Ubuntu, with Linux 3.8.0-19-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-recovery-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
    recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
        else
          search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
        fi
        echo    'Loading Linux 3.8.0-19-generic ...'
        linux   /boot/vmlinuz-3.8.0-19-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.8.0-19-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_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
else
  search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
fi
linux16 /boot/memtest86+.bin
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
else
  search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-76C2AD13C2ACD89F' {
    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  76C2AD13C2ACD89F
    else
      search --no-floppy --fs-uuid --set=root 76C2AD13C2ACD89F
    fi
    chainloader +1
}
### 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.
### 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 ###
--------------------------------------------------------------------------------

=============================== sda5/etc/fstab: ================================

--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb5 during installation
UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 /               ext4    errors=remount-ro 0     1
# swap was on /dev/sdb6 during installation
UUID=24a1b8d2-d3a0-4b3f-b48e-9a3f5bab16c2 none            swap    sw              0       0
--------------------------------------------------------------------------------


=========================== sda7/boot/grub/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
set default="0"

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_msdos
insmod ext2
set root='hd0,msdos7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7  520dfeb8-758e-47c0-97de-a0a8cb8b4866
else
  search --no-floppy --fs-uuid --set=root 520dfeb8-758e-47c0-97de-a0a8cb8b4866
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
  set timeout=10
fi
### END /etc/grub.d/00_header ###

/\/\/\/\/\/\/ EDITED OUT SOME DEBIAN/MINT THEME INFO HERE /\/\/\/\/\/\/\

### 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
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Linux Mint 16 Cinnamon 64-bit, 3.11.0-12-generic (/dev/sda7)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7  520dfeb8-758e-47c0-97de-a0a8cb8b4866
    else
      search --no-floppy --fs-uuid --set=root 520dfeb8-758e-47c0-97de-a0a8cb8b4866
    fi
    linux   /boot/vmlinuz-3.11.0-12-generic root=UUID=520dfeb8-758e-47c0-97de-a0a8cb8b4866 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.11.0-12-generic
}
menuentry 'Linux Mint 16 Cinnamon 64-bit, 3.11.0-12-generic (/dev/sda7) -- recovery mode' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7  520dfeb8-758e-47c0-97de-a0a8cb8b4866
    else
      search --no-floppy --fs-uuid --set=root 520dfeb8-758e-47c0-97de-a0a8cb8b4866
    fi
    echo    'Loading Linux 3.11.0-12-generic ...'
    linux   /boot/vmlinuz-3.11.0-12-generic root=UUID=520dfeb8-758e-47c0-97de-a0a8cb8b4866 ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.11.0-12-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_lupin ###
### END /etc/grub.d/10_lupin ###

### 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_msdos
    insmod ext2
    set root='hd0,msdos7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7  520dfeb8-758e-47c0-97de-a0a8cb8b4866
    else
      search --no-floppy --fs-uuid --set=root 520dfeb8-758e-47c0-97de-a0a8cb8b4866
    fi
    linux16 /boot/memtest86+.bin
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7  520dfeb8-758e-47c0-97de-a0a8cb8b4866
    else
      search --no-floppy --fs-uuid --set=root 520dfeb8-758e-47c0-97de-a0a8cb8b4866
    fi
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os     $menuentry_id_option 'osprober-chain-76C2AD13C2ACD89F' {
    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  76C2AD13C2ACD89F
    else
      search --no-floppy --fs-uuid --set=root 76C2AD13C2ACD89F
    fi
    chainloader +1
}
menuentry 'Ubuntu 13.10 (13.10)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-5832ede3-f357-427e-ac67-b2157b5ba6e1' {
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  5832ede3-f357-427e-ac67-b2157b5ba6e1
    else
      search --no-floppy --fs-uuid --set=root 5832ede3-f357-427e-ac67-b2157b5ba6e1
    fi
    linux /boot/vmlinuz-3.11.0-15-generic root=UUID=5832ede3-f357-427e-ac67-b2157b5ba6e1 ro acpi_backlight=vendor dell_laptop.backlight=0 quiet splash $vt_handoff
    initrd /boot/initrd.img-3.11.0-15-generic
}

/\/\/\/\/\/\/ THERE WAS ANOTHER SUBMENU THING FOR UBUNTU ADVANCED OPTIONS HERE, ALSO OMITTED /\/\/\/\/\/\/\/\

### 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.
### 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 ###
--------------------------------------------------------------------------------

=============================== sda7/etc/fstab: ================================

--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda7 during installation
UUID=520dfeb8-758e-47c0-97de-a0a8cb8b4866 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
UUID=24a1b8d2-d3a0-4b3f-b48e-9a3f5bab16c2 none            swap    sw              0       0
--------------------------------------------------------------------------------

我不确定这个分区设置是否好,因为我无法创建额外的主分区(最多 4 个),但我想既然 Ubuntu 可以从扩展分区内启动,那么 Linux Mint 也应该可以,所以我将 Linux Mint 添加到与 Ubuntu 位于同一扩展分区(在/dev/sda5)的分区中,但在它自己的逻辑分区中/dev/sda7

文件中/boot/grub/grub.cfg有几个menuentry单元。如果从 Grub2 菜单启动 Linux Mint 的正确方法是为 Linux Mint 添加菜单项块,那么我想知道该怎么做。如果有更好的方法让每个操作系统都有一个在启动时启动的选项,也请告诉我!

我看到了一个类似的问题这里但情况似乎有点不同,因为该用户的同一个扩展分区内没有包含两个操作系统分区,而且我不想只是在黑暗中射击并可能意外破坏一些重要的东西。

如果需要我未在此处提供的更多信息,我会密切关注,因此请立即告诉我,我会尽力为您提供所需的任何信息。

非常感谢您的帮助!

答案1

您可以尝试update-grub看看它是否能检测到 Linux Mint。这应该会检查安装了哪些操作系统。

或者,您可以尝试从 Live USB(或 LiveCD)启动并grub-install /dev/sda在安装硬盘的情况下运行。这将重新安装 GRUB 并再次检查其他操作系统。

相关内容