Grub 2 修改默认引导系统

  • Post author:
  • Post category:其他




总有人装了Ubuntu仍忘不了Windows。我在刚接触linux 的时候也是这样,不过现在好了很多,如果不是必须要用Windows 的时候,我一般都选择进入Ubuntu。为了那些刚使用Ubuntu的人方便进入Windows,也为了以后有人再问我的时候,我可以很轻松明了的回答ta。特意在此记下GRUB2是如何修改默认引导系统的。


在网上Google或Baidu一下,结果会出来很多,我


大致看了一下,绝大部分内容雷同,基本都是让你修改



/boot/grub/grub.cfg

。没错,无论过程怎么样结果都是grub.cfg被修改。但是在这个文件的开头它已经清清楚楚的告诉你:



DO NOT EDIT THIS FILE。grub.cfg不应该手动被修改。




要想知道如何修改GRUB2,首先就应该清楚了解GRUB2是什么东西,是怎么回事。



这里






https://wiki.ubuntu.com/Grub2



有比较详细的介绍。


A more recent version of the information on this page can be found on



https://help.ubuntu.com/community/Grub2



.


为了方便起见,我把如何修改默认引导系统Copy过来,如下:


grub (/etc/default/grub)


This file contains information previously found in the upper section of


/boot/grub/menu.lst


. It contains settings primarily affecting Grub’s menu display. This file can be edited by


root


to make changes to these settings; they will be imported into


grub.cfg


when


"update-grub"


is executed.

<!–<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />–>

# If you change this file, run ‘update-grub’ afterwards to update



# /boot/grub/grub.cfg.



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=””



# Uncomment to disable graphical terminal (grub-pc only)



#GRUB_TERMINAL=console



# The resolution used on graphical terminal



# note that you can use only modes which your graphic card supports via VBE



# you can see them in real GRUB with the command `vbeinfo’



#GRUB_GFXMODE=640×480



# Uncomment if you don’t want GRUB to pass “root=UUID=xxx” parameter to Linux



#GRUB_DISABLE_LINUX_UUID=true



# Uncomment to disable generation of recovery mode menu entrys



#GRUB_DISABLE_LINUX_RECOVERY=”true”



This file contains information formerly contained in the upper section of Grub Legacy’s ”menu.lst” and items contained on the end of the kernel line. The items in this file can be edited by a user with administrator (root) privileges. Grub developers have have placed explanatory comments within the file itself.


  • GRUB_DEFAULT=0


    • Sets the default and pre-selected menu entry. Entries may be numeric or


      saved


    • GRUB_DEFAULT=0


      • Sets the default menu entry by menu position. As with Grub Legacy, the first “menuentry” in grub.cfg is 0, the second is 1, etc.

    • GRUB_DEFAULT=”Windows XP Professional (on /dev/sda1)”


      • Sets the default menu entry by name.

    • GRUB_DEFAULT=saved


      • Sets the default menu entry with either whatever was selected on the last boot (if SAVEDEFAULT=true is set and the entry itself contains savedefault), whatever the last grub-set-default command saved or the first entry if nothing has ever been saved or the saved entry can’t be found. If the menu is displayed during boot, the previously selected option will be highlighted. If no action is taken, this is selection which will be booted at the end of the timeout, or if the menu is hidden.

  • GRUB_TIMEOUT=10


    • No change from Grub Legacy. This is the number of seconds before the default entry is automatically booted.

    • Setting a value of


      -1


      will display the menu until the user makes a selection (no timeout).


  • GRUB_HIDDEN_TIMEOUT=0


    • The hidden timeout option is available to single-OS computers – if multiple OS’s are known to Grub 2, this option is bypassed.


    • On single-OS systems, the menu will be hidden unless a


      #

      symbol is present at the beginning of this line. ( # GRUB_HIDDEN_TIMEOUT=0 )


    • The default setting initially depends on the presence of other operating systems.


      • Another OS Detected: The menu will be displayed. ( The line will begin with a # symbol. )

      • No other OS Detected: This setting is not used, as determined by the

    • For integers greater than 0, the system will pause, but not display the menu, for the entered number of seconds.

    • 0

      The menu will not be displayed. There will be no delay.


      • The user may force displaying the menu as the computer boots by holding down the SHIFT key (single-OS computers only).


        • During boot, the system will check the SHIFT key status. If it cannot determine the key status, a short delay will enable the user to display the menu by pressing the ESC key.

        • If enabled, the splash screen designated in 05_debian_theme will be displayed even if the hidden menu feature is selected.

  • GRUB_HIDDEN_TIMEOUT_QUIET=true


    • true – No countdown is displayed. The screen will be blank.

    • false – A counter will display on a blank screen for the duration of the GRUB_HIDDEN_TIMEOUT value.

  • GRUB_DISTRIBUTOR


    =



    lsb_release -i -s 2> /dev/null || echo Debian


    • Determines the descriptive name in the menu entry. (Ubuntu, Xubuntu, Debian, etc.)

  • GRUB_CMDLINE_LINUX


    • If it exists, this line imports any entries to the end of the


      linux


      command line (Grub Legacy’s “kernel” line) for both normal and recovery modes. This is similar to the “altoptions” line in


      menu.lst


  • GRUB_CMDLINE_LINUX_DEFAULT


    =”quiet splash”


    • This line imports any entries to the end of the ‘linux’ line (Grub Legacy’s “kernel” line). The entries are appended to the end of the normal mode only. This is similar to the “defoptions” line in


      menu.lst

      .

      If you want a black screen with scrolling boot messages, remove “quiet splash”. If you want a grub splash screen with limited messages underneath the Ubuntu logo, use only “splash”. <


      This [only “splash”]will not work in Karmic during boot as the xsplash does not display the messages , but the messages at shutdown will be displayed.


  • #GRUB_TERMINAL


    =console


    • Uncomment to disable graphical terminal (grub-pc only).

  • #GRUB_GFXMODE=640×480


    • Uncomment (remove ‘#’ from beginning of the line) to change (increase) resolution of your boot loader. Use one of classic (4:3 rate):


      • GRUB_GFXMODE=640×480 (is used if isn’t here a proper value)

      • GRUB_GFXMODE=800×600

      • GRUB_GFXMODE=1024×768

      • GRUB_GFXMODE=1600×1200

    • or make experiments with some others nonstandards like widescreen (16:10 ratio in my case), here is list of most of commonly use



      Display resolution



      :


      • GRUB_GFXMODE=640×400

      • GRUB_GFXMODE=800×500

      • GRUB_GFXMODE=1024×640

      • GRUB_GFXMODE=1280×800

      • GRUB_GFXMODE=1680×1050

    • If you don’t know what modes are supported by your graphics card, go to the grub command line and run ‘vbeinfo’. It will list all available modes. (You might need to run ‘insmod vbe’ first if the vbe module isn’t loaded yet)

  • GRUB_GFXPAYLOAD_LINUX=640x480x8


    [grub2 >= 1.98-1 (Lucid)]


    • Use this setting to set the framebuffer resolution (replaces the vga= kernel option). It uses the GFXMODE values with additional color depth. Use ‘vbeinfo’ from the grub command line to list what modes are available to you.

  • #GRUB_DISABLE_LINUX_UUID


    =true


    • Uncomment this line if you don’t want GRUB to pass “root=UUID=xxx” parameter to Linux.

  • GRUB_DISABLE_LINUX_RECOVERY=true


    • Add or uncomment this line to prevent “Recovery” mode kernel options from appearing in the menu.

  • GRUB_DISABLE_OS_PROBER=true


    • Enables/disables the os-prober check of other partitions for operating systems, including Windows, Linux, OSX and Hurd.