1. 程式人生 > >windows和linux雙系統修改啟動項順序

windows和linux雙系統修改啟動項順序

在windows下安裝ubuntu雙系統,啟動時預設選擇ubuntu,至少有三種方法可以修改啟動順序。

1. 修改/boot/grub/grub.cfg

sudo vim /boot/grub/grub.cfg (如果對vim不太熟悉,可以試試sudo gedit /etc/default/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

...

menuentry 'Ubuntu,Linux 3.0.0-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos8)'
    search --no-floppy --fs-uuid --set=root 6eaff320-f96f-4e63-91d3-9b45bb387d1d
    linux    /boot/vmlinuz-3.0.0-28-generic root=UUID=6eaff320-f96f-4e63-91d3-9b45bb387d1d ro   quiet splash vt.handoff=7
    initrd    /boot/initrd.img-3.0.0-28-generic
}

...

我們修改的是set default="0"。在開機畫面中有啟動項列表,如

Ubuntu,Linux 3.0.0-28-generic

Ubuntu,Linux 3.0.0-28-generic (恢復模式)

Previous Linux versions

Memory test (memtest86+)

Memory test (memtest86+, serial console 115200)

Windows 7 (loader) (on /dev/sda1)

從0計數,windows是5,所以修改為set default="5". 儲存退出,其它任何東西都不要修改。下次啟動就預設windows。

注:windows一般是第5個,如果你用了很久的ubuntu,會有核心更新,一般會形成上面的啟動列表。

2. 仍然修改/boot/grub/grub.cfg。

第一個方法修改的是預設序號,類似的,我們可以把windows移到第0個位置。具體的就是把

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 A2DE6972DE693FA1
    chainloader +1
}

剪下到第一個menuentry之前,即

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

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 A2DE6972DE693FA1
    chainloader +1
}
menuentry 'Ubuntu,Linux 3.0.0-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos8)'
    search --no-floppy --fs-uuid --set=root 6eaff320-f96f-4e63-91d3-9b45bb387d1d
    linux    /boot/vmlinuz-3.0.0-28-generic root=UUID=6eaff320-f96f-4e63-91d3-9b45bb387d1d ro   quiet splash vt.handoff=7
    initrd    /boot/initrd.img-3.0.0-28-generic
}

儲存退出。

注:不要剪下錯了,錯了的話我也不知道會有什麼後果,可能沒事。

3. 修改/etc/default/grub, 然後update-grub。

sudo vim /etc/default/grub  

主要內容為

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

將GRUB_DEFAULT=0改成GRUB_DEFAULT=5, 儲存退出然後執行sudo update-grub。

注:1) 前兩種方法只是暫時的,如果更新核心就會還原回去,從註釋中我們也看到,不要我們修改grub.cfg檔案

2) 第三種方法比較好,修改了預設啟動項,之後即使更新核心,也會預設從5啟動;

3) 這裡的方法是對GRUB2而言,從ubuntu11.04開始,GRUB升級,不在使用原先的/boot/grub/menu.lst,老版本修改可以查詢網路更多內容。

4)以上都是在ubuntu下修改,前提是你安裝的是純正的雙系統,而不是wubi,如果是後者,需要到windows下修改。