安装完ubuntu后修复windows xp /7启动项

   以前也是在windows环境下安装桌面版ubuntu,偶尔会遇到没有ubuntu启动项的情况,但是最近这一次,既然是windows的启动项丢失,网上很多关于修复ubuntu启动项的资料很多,我就不多罗嗦,直接进入正题!
  之所以启动项里没有winows的启动项里,是因为grub的配置文件里没有对应的windows启动项参数!
   方法1:很简单,自动修复,直接一条命令:
     sudo update-grub  (适合新手)

   方法2 :当然可以手动修改grub.cfg文件
    终端下输入命令 查看分区情况  :
           sudo  fdisk -l 
  这是我的硬盘对应的分区情况
  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3824    30716248+   7  HPFS/NTFS
/dev/sda2            3825       35908   257714699+   f  W95 Ext’d (LBA)
/dev/sda3           35909       38398    19999744   83  Linux
/dev/sda4           38398       38914     4140032   82  Linux swap / Solaris
/dev/sda5            3825       15297    92156841    7  HPFS/NTFS
/dev/sda6           15298       26770    92156841    7  HPFS/NTFS
/dev/sda7           26771       35908    73400953+   7  HPFS/NTFS

终端下输入命令   :
    sudo  gedit  /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 [ “${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 part_msdos
insmod ext2
set root='(hd0,msdos3)’
search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640×480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos3)’
search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
set locale_dir=($root)/boot/grub/locale
set lang=zh
insmod gettext
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
### END /etc/grub.d/05_debian_theme ###

手动添加如下红色部分:我的windows安装目录对应sda1,对应蓝色部分
### BEGIN /etc/grub.d/06_os-prober, ###
menuentry “Windows 7 (loader) (on /dev/sda1)” {
   insmod part_msdos
   insmod ntfs
   set root='(hd0,msdos1)’
   search –no-floppy –fs-uuid –set F42C0B6C2C0B28E6
   chainloader +1
}
### END /etc/grub.d/06_os-prober, ###

### BEGIN /etc/grub.d/10_linux ###
menuentry ‘Ubuntu, with Linux 2.6.35-30-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
   recordfail
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   linux    /boot/vmlinuz-2.6.35-30-generic root=UUID=815d9d77-3645-4ae7-8099-9ffb004a7275 ro   quiet splash
   initrd    /boot/initrd.img-2.6.35-30-generic
}
menuentry ‘Ubuntu, with Linux 2.6.35-30-generic (recovery mode)’ –class ubuntu –class gnu-linux –class gnu –class os {
   recordfail
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   echo    ‘Loading Linux 2.6.35-30-generic …’
   linux    /boot/vmlinuz-2.6.35-30-generic root=UUID=815d9d77-3645-4ae7-8099-9ffb004a7275 ro single
   echo    ‘Loading initial ramdisk …’
   initrd    /boot/initrd.img-2.6.35-30-generic
}
menuentry ‘Ubuntu, with Linux 2.6.35-22-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
   recordfail
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   linux    /boot/vmlinuz-2.6.35-22-generic root=UUID=815d9d77-3645-4ae7-8099-9ffb004a7275 ro   quiet splash
   initrd    /boot/initrd.img-2.6.35-22-generic
}
menuentry ‘Ubuntu, with Linux 2.6.35-22-generic (recovery mode)’ –class ubuntu –class gnu-linux –class gnu –class os {
   recordfail
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   echo    ‘Loading Linux 2.6.35-22-generic …’
   linux    /boot/vmlinuz-2.6.35-22-generic root=UUID=815d9d77-3645-4ae7-8099-9ffb004a7275 ro single
   echo    ‘Loading initial ramdisk …’
   initrd    /boot/initrd.img-2.6.35-22-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,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   linux16    /boot/memtest86+.bin
}
menuentry “Memory test (memtest86+, serial console 115200)” {
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos3)’
   search –no-floppy –fs-uuid –set 815d9d77-3645-4ae7-8099-9ffb004a7275
   linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

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

 

分享到: