简介
GNU GRUB(简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
启动选项
如果您安装了Linux Deepin和Windows7系统组成双系统.那么您的Grub启动选项应该为如下:
LinuxDeepin GNU/Linux Advabced options for LinuxDeepin GNU/Linux memtest86 ##此项可能不存在 Windows 7 (loader) (on /dev/sd**) ## /dev/sd**对应你Windows系统所在的分区简单解读:
- LinuxDeepin GNU/Linux:LinuxDeepin系统的启动项
- Advabced options for LinuxDeepin GNU/Linux :Linux Deepin系统的高级选项,进入此处可以选择启动的内核版本.
- memtest86:内存测试,可以进入此模式运行行一些很耗系统资源的程序,测试系统在高负载的情况下主机是否运行稳定.
- Windows 7 (loader) (on /dev/sd**):windows7系统的启动项
配置
文件配置
在早期的Ubuntu版本中,使用grub1作为默认的启动引导程序,如果想要修改系统启动菜单,直接编辑/boot/grub/menu.lst即可。
从9.10开始,Ubuntu使用grub2作为默认启动引导程序,相对于grub的第一个版本,grub2改动很大。 grub2的新特性主要有:支持图形化界面,支持主题,模块化加载,跨平台兼容等,总而言之,功能的加强也使得grub2的配置变得更加复杂了。
grub2主要有三部分组成:
/boot/grub/grub.cfg #系统引导时读取的文件之一,由其他文件生成的,一般不在这里修改
/etc/default/grub #grub的默认配置文件,可以修改一些常见的参数
/etc/grub.d #这个文件夹下面是一些生成grub.cfg文件的可执行脚本,可以修改
打开gru.cfg文件终端执行:
sudo gedit /etc/default/grub
*显示为以下信息,已加上中文注释
# If you change this file, run 'update-grub' afterwards to update(如果你修改了这个文件,运行“update-grub”更新grub) # /boot/grub/grub.cfg. (文件路径而已) # For full documentation of the options in this file, see:(在此文件中的选项的完整文档,请参阅: #info -f grub -n 'Simple configuration' (GRUB的简单的配置) GRUB_DEFAULT=0 (设置默认启动项,按menuentry顺序如果要默认从第四个菜单项启动,数字改为3,若改为 saved,则默认为上次启动项。) GRUB_HIDDEN_TIMEOUT=0 (前面有#注释将会显示引导菜单,没有#注释将会不显示引导菜单) GRUB_HIDDEN_TIMEOUT_QUIET=true (黑屏,并且不显示GRUB_HIDDEN_TIMEOUT过程中的倒计时) GRUB_TIMEOUT="10" (设置进入默认启动项的等候时间,默认值10秒,按自己需要修改,单位为秒改改为零和负值为无限等待操作) GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` (获得发行版名称(比如Ubuntu, Debian) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" (选择启动的环境,“quiet splash”为图像界面,“text”为文本界面。) GRUB_CMDLINE_LINUX="noresume" (手动添加内核启动参数,比如 acpi=off noapic 等可在这里添加。) # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" (目前未知) # 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=640x480 (设定图形介面分辨率,如不使用默认。把前面#去掉,把分辨率改为800x600或1024x768) # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true (取消注释以阻止GRUB将传递参数 "root=UUID=xxx" 传递给 Linux内核) # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true" (设定是否创建修复模式菜单项,前面有#注释(建立修复模式).前面没有#注释(不建立修复模式)) # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" (当GRUB菜单出现时发出鸣音提醒,户无法看到屏幕特别有用,默认关闭,在此处不能设置开启)
修改后grub配置后需要更新才可以生效,终端执行:
sudo update-grub
图形软件
- Grub Customizer:是一款GRUB2的图形化管理程序。
- Super-boot-manager:是一个可以用来管理Burg、Grub2、Plymouth的一站式工具。
常见问题
此处为常见问题,方便查询.
修改等待时间
终端输入:
sudo gedit /etc/default/grub
修改文件中的:GRUB_TIMEOUT=10 (默认是为10秒的)
修改为:GRUB_TIMEOUT=X (X表示你要设置的秒数,设置为0为一直等待操作) 修改后保存。终端输入:
sudo update-grub
重启生效。
修改默认启动系统
终端输入:
sudo gedit /etc/default/grub
修改文件中的GRUB_DEFAULT=0
GRUB_DEFAULT=0 (0默认启动第1项,如果你的win是第5项,把这个0改为4) 保存文件后终端输入:
sudo update-grub
重启生效。
图文教程:点此查看
修改默认分辨率
终端输入:
sudo gedit /etc/default/grub
修改文件中的 #GRUB_GFXMODE=640x480
把前面#去掉,把分辨率改为800x600或1024x768(或者修改为你屏幕的分辨率,但前提是分辨率为常见分辨率) 保存文件后终端输入:
sudo update-grub
重启生效
修复损坏的grub引导
- 方法一
建议事先备份sda 的grub:
dd if=/dev/sda of=./mbr.bak bs=512 count=1
这样子是把你现有的分区跟引导信息保存下来了。找个linux的live进入linux,然后把刚才的mbr.bak还原回去。
dd if=./mbr.bak of=/dev/sda bs=446 count=1
- 方法二
点此查看:修复MBR,恢复系统引导
降级为Grub legacy
注意:目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。
- 目前 GRUB Legacy 已经停止开发了,只是出于一个修复漏洞的状态,不再增加新的功能了,所有的开发都转移到 GURB 2 之上了。
- GRUB 2 是源自于一个名为 PUPA 的项目,目的是建立下一代的 boot loader。GRUB 2 几乎是从零开始开始开发的,它和 GRUB Legacy 不同的地方有很多,例如支持 scripts、国际化语言、动态加载模块、带有 resuce 模式等等,这些都是 GRUB Legacy 所没有的。
1.备份 备份主要的 Grub2 目录及文件。
sudo cp /etc/default/grub /etc/default/grub.old sudo cp -R /etc/grub.d /etc/grub.d.old sudo cp -R /boot/grub /boot/grub.old
2.移除 Grub2
sudo apt-get purge grub2 grub-pc
此时,系统在另一启动装载程序前将无法启动。 当这些软件包被移除后,许多文件还会残留在“/boot/grub”目录下。
- 安装 Grub Legacy
sudo apt-get install grub
Grub 安装后,用户仍需通过运行以下命令来创建 menu.lst 和 stage1/stage2 文件:
sudo update-grub
这一步可以生成 menu.lst 文件。
sudo grub-install /dev/sdX
选择正确的设备(sda、sdb、sdc),通常为你的 Linux Deepin 操作系统所在的磁盘。
在 /boot/grub 目录下创建 stage1 和 stage2 文件并写入 MBR。
运行这一命令来阻止其自动升级:
echo "grub hold" | sudo dpkg --set-selections
重新启动。