Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows 7系統教程 >> 關於Windows7系統教程 >> win7 ubuntu 12.04 xp雙盤3系統grub配置

win7 ubuntu 12.04 xp雙盤3系統grub配置

日期:2017/1/23 18:53:07      編輯:關於Windows7系統教程

盤1: ubuntu12.04 win7

盤2: xp

sudo update-grub 的結果只有win7 和 ubuntu,點擊win7進入系統,看到了win7和xp,win7可以啟動,但是xp不能。於是在網上搜索找到了一個別人的xp和ubuntu共存的grub文件。

發現我的少了一句話,drivemap -s (hd0) ${root},於是加上就ok了。

即在/boot/grub/grub.cfg中添加如下內容即可

menuentry "Windows xp" --class windows --class os {

insmod ntfs

set root="(hd0,1)"

search --no-floppy --fs-uuid --set=root 4C844B34844B2036

drivemap -s (hd0) ${root}

chainloader +1

}

set root=(hd0,1),代表第0塊磁盤的第一個分區,其中硬盤號是從0開始,分區號是從1開始。我的xp是在第0個分區。我的xp和ubuntu不再同一個磁盤,grub中ubuntu顯示在hd1所以xp必然在hd0,而系統在c:盤,所以是第一個分區

整個的grub文件如下:

#

# 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 [ "${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 {

insmod vbe

insmod vga

insmod video_bochs

insmod video_cirrus

}

insmod part_msdos

insmod ext2

set root="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

if loadfont /usr/share/grub/unicode.pf2 ; then

set gfxmode=auto

load_video

insmod gfxterm

insmod part_msdos

insmod ext2

set root="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

set locale_dir=($root)/boot/grub/locale

set lang=zh_CN

insmod gettext

fi

terminal_output gfxterm

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/light-gray

if background_color 44,0,30; 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

if [ "$linux_gfx_mode" != "text" ]; then load_video; fi

menuentry "Ubuntu,Linux 3.2.0-23-generic-pae" --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

gfxmode $linux_gfx_mode

insmod gzio

insmod part_msdos

insmod ext2

set root="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=2636856c-62cc-4195-8995-148eb8cfb30c ro quiet splash $vt_handoff

initrd /boot/initrd.img-3.2.0-23-generic-pae

}

menuentry "Ubuntu,Linux 3.2.0-23-generic-pae (恢復模式)" --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

insmod gzio

insmod part_msdos

insmod ext2

set root="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

echo "載入 Linux 3.2.0-23-generic-pae …"

linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=2636856c-62cc-4195-8995-148eb8cfb30c ro recovery nomodeset

echo "載入初始化內存盤…"

initrd /boot/initrd.img-3.2.0-23-generic-pae

}

### 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="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

linux16 /boot/memtest86+.bin

}

menuentry "Memory test (memtest86+, serial console 115200)" {

insmod part_msdos

insmod ext2

set root="(hd1,msdos6)"

search --no-floppy --fs-uuid --set=root 2636856c-62cc-4195-8995-148eb8cfb30c

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/sda1)" --class windows --class os {

insmod part_msdos

insmod ntfs

set root="(hd0,msdos1)"

search --no-floppy --fs-uuid --set=root 4C844B34844B2036

chainloader +1

}

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

menuentry "Windows xp" --class windows --class os {

insmod ntfs

set root="(hd0,1)"

search --no-floppy --fs-uuid --set=root 4C844B34844B2036

drivemap -s (hd0) ${root}

chainloader +1

}

### 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 $prefix/custom.cfg ]; then

source $prefix/custom.cfg;

fi

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

Copyright © Windows教程網 All Rights Reserved