如果grub启动项里面多出了某些不想要的启动项,想删除它,可以直接修改/boot/grub/grub.cfg文件。单它是只读文件,不让修改。
chmod +w /boot/grub/grub.cfg去掉只读属性,就可以用gedit修改了,不过得用sudo来运行gedit,以获取足够的权限。
官方不建议直接修改grub.cfg,
他们给出的步骤是先修改 /etc/default/grub; sudo gedit grub
这个文件比较直观。
切回去/boot/grub/目录。
修改/boot/grub/grub.cfg的属性: sudo chmod 777 grub.cfg
用grub-mkconfig生成新的grub.cfg: sudo grub-mkconfig>grub.cfg
把grub.cfg属性改回只读; sudo chmod 444 grub.cfg
每次升级内核就把你修改的设置改回来 你还的修改grub.cfg
上述方法麻烦但有效
grub.cfg是根据/etc/grub.d下的文件和/etc/default/grub自动生成
主要修改/etc/grub.d下的文件和/etc/default/grub

由于ubuntu9.10使用了grub2,因此再用grub系统不能修复系统引导程序,而且系统引导文件由原来的 menu.lst变成了grub.cfg(放在/boot/grub目录下),这个目录及其中的文件都是只读的,在修改前必须首先修改其用户权限,具体修 复方法如下:
1、用ubuntu9.10的Live CD光盘启动系统;
2、打开终端,输入终端命令: sudo fdisk -l此时可以看到显示出来的整个硬盘上所有分区的列表,请记录下来根分区 / 和/boot分区安装的位置(笔者的根分区位于/dev/sda7,/boot没有单独分区),下面就以笔者的分区举例说明,请大家根据自己的磁盘分区情 况进行修改;
3、在终端输入命令:  sudo -i  (取得root特权)
mount  /dev/sda7  /mnt
mount  /dev/sda6  /mnt/boot (如果/boot没有单独分区则不要执行这个命令)
grub-install  --root-directory=/mnt/  /dev/sda  (注意此命令中root前面是两个减号横杠)
4、执行完以上步骤和命令,重新启动系统,这时您会看到熟悉的、久违了的原来的双系统启动菜单,呵呵,是不是很高兴?但是不要高兴的太早,否则您选择windows的启动菜单试试,是不是出错而启动不起来?OK,继续跟我做进一步的修复。
5、回到我们的启动菜单,既然不能引导windows,那么我们就引导Ubuntu系统;
6、输入终端命令: sudo –i
chmod  +w  /boot/grub/grub.cfg (修改grub.cfg文件的操作权限)
gedit  /boot/grub/grub.cfg  (编辑grub.cfg文件)
将其中的windows引导相关的部分进行修改:
(绿色字体部分为原内容)                                  
menuentry “Microsoft Windows XP Professional” {
set root=(hd0,1)
search –no-floppy –fs-uuid –set 4a807ca0807c93e3
drivemap -s (hd0) $root
chainloader +1 }
修改成:
menuentry “Microsoft Windows XP Professional” { set root=(hd0,1) chainloader +1 }    
7、修改好以后,存盘,关闭终端窗口,重新启动系统,修复成功!

grub2基础教程(节选)
1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可 以选择不写入硬盘mbr而是写入linux分区的引导扇区。启动时根据mbr所提供信息找到启动分区后,加载分区内的grub核心文件core.img和 配置文件grub.cfg,进入选择菜单画面,在菜单画面,按上下箭号选择需要系统菜单项,按Enter进入选项。

按e进入己选择菜单的编辑状态,在编辑状态下,由上下左右箭号来移动光标,enter键换行,ctrl+x以编辑的内容启动,ctrl+c进命令行状态,按Esc退出,回到菜单项。
在需要使用额外的内核参数启动时,比如要加上acpi=off时,把光标移动到linux这一行最后,在splash后加上一空格再输入acpi=off,然后按ctrl+x启动。

按c进入命令行状态,按Tab键可查看所有可用的命令。

在命令行状态,可以根据需要加载或移除相应模块,也可用来启动在菜单没有显现的的系统。
比如,在第一硬盘的第一分区上装有windows xp系统,但在菜单上没显示出来,我们可以命令行状态下输入命令启动:
grub>set root=(hd0,1)
grub>chainloader +1
grub>boot
又比如启动第二硬盘第一逻辑分区上的ubuntu系统:
grub>set root=(hd1,5)
grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5
grub>initrd /boot/initrd.img-xxx-xxx
grub>boot
其中内核vmlinuz和initrd.img的版本号可用按Tab键自动查看。
2、下面介绍下在grub2中一些常用的命令
1)help
查看命令用法,如
help search:查看search命令详细用法
2)set
设置变量值,如
set default=0
set timeout=5
set root=(hd0,3)等等
需要调用变量AA的值时,使用${AA},如set root=(hd1,1),则${root}=(hd1,1)
3)default
定义默认引导的操作系统。0 表示第一个操作系统,1表示第2个,依此类推
4)timeout
定义在时间内用户没有按下键盘上的某个按键,自动引导default指定的操作系统。
5)root
指定用于启动系统的分区。
6)insmod和rmmod
加载或移除某模块,如
insmod jpeg
insmod png
insmod ntfs
rmmod png

7)drivemap
drivemap兼容grub的map,主要用于只能从第一硬盘(hd0)引导启动的系统如 win2000 xp 2003,比如要添加第二硬盘第一分区上的xp系统:
menuentry "Windows XP" {
set root=(hd1,1)
drivemap -s (hd0) ${root}
chainloader +1
}
8)ls
列出当前的所有设备。如(hd0),(hd0,1),(hd0,5),(hd1),(hd1,1),(hd1,2)等
ls -l
详细列出当前的所有设备。对于分区,会显示其label及uuid。
ls /
列出当前设为root的分区下的文件
ls (hd1,1)/
列出(hd1,1)分区根目录的文件
9)search
search -f /ntldr
列出根目录里包含ntldr文件的分区,返回为分区号
search -l LINUX
搜索label是LINUX的分区。
search --set -f /ntldr
搜索根目录包含ntldr文件的分区并设为root,注意如果多个分区含有ntldr文件,
set失去作用。
10)loopback
loopback命令可用于建立回放设备,如
loopback lo0 (hd1,1)/abc.iso
可以使用lo0设备来访问abc.iso里的内容,比如说,可以从abc.iso里的软盘映像中启动
loopback lo0 (hd1,1)/aa.iso
linux (lo0)/memdisk
initrd (lo0)/abc.img
要删除某一回放设备,可以使用-d参数:
loopback -d lo0
11)pager
分页显示。
set pager=1
显示满一页时暂停,按space继续
set pager=0
取消分页显示
12)linux
用linux命令取代grub中的kernel命令
13)chainloader
调用另一个启动器,如
chainloader (hd0,1)+1
调用第一硬盘第一分区引导扇区内的启动器,可以是windows或linux的启动器
三、grub2配置文件详解
grub2改用grub.cfg为配置文件,配置文件包含以下基本内容:(红色为解释部分)
### BEGIN /etc/grub.d/00_header ###
load_env
#加载变量,如果在grubenv保存变量,则启动时装载
set default="0"
#设置默认引导项,默认值为0
insmod ext2
#插入文件系统支持的模块,除了用作启动的分区外,其他分区格式可在menuentry底下再添加
set root=(hd0,8)
# 指定系统root分区,也就是 / 分区
search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b
#指定uuid=2d61e5f9-1d2a-4167-a6f1-b991ba00878b的分区为root分区,如果前面的分区号(hd0,8)的#uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起作用。
if loadfont /usr/share/grub/unicode.pf2 ; then
#设置终端字体,unicode.pf2支持中文字符显示
set gfxmode=640x480
#设置显示分辨率,默认为640x480,可用800x600,1024x768,建议跟你想设定的图片大小一致
insmod gfxterm
#插入终端模块gfxterm,支持中文字符显示和支持24位图像
insmod vbe
#插入vbe模块,GRUB2引入模块化机制,要使用它,需要在这里加入
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
#设定grub2终端为gfxterm
fi
fi
set timeout=10
#设定默认启动前等待时间,默认为10秒
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###set menu_color_normal=white/black
#设定菜单字体及背景颜色
set menu_color_highlight=black/blue
#设定选择项字体及背景颜色
#如果使用默认,背景将完全被蓝色挡住了,需要修改blue为black,背景图片才能显示
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
#10_linux为系统自动添加的当前root分区linux引导项
#每个菜单项要包括menuentry双引号" "和大括号{ }才完整,否则不显示菜单
menuentry "Ubuntu, Linux 2.6.31-10-generic" {
set quiet=1
insmod ext2
set root=(hd0,8)
search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b
#这句与set root=(hd0,8)效果一样,可删除其一,二者不一致以这句为准
linux /boot/vmlinuz-2.6.31-10-generic root=UUID=2d61e5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash
#不喜欢看到一长串的, roo=UUID=***可用root=/dev/sda8(/分区的分区号)代替
initrd /boot/initrd.img-2.6.31-10-generic
}

### END /etc/grub.d/10_linux ###
#20_memtest86+为系统自动添加的内存测试菜单项
### BEGIN /etc/grub.d/20_memtest86+ ###menuentry "Memory test (memtest86+)" {linux16 /boot/memtest86+.bin}menuentry "Memory test (memtest86+, serial console 115200)" {linux16 /boot/memtest86+.bin console=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###
#30_os-prober或30_others为系统自动查找并添加其他系统菜单项,按windows,linux,macos顺序
#查找并添加,支持windows 7识别
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_otheros ###
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
search --no-floppy --fs-uuid --set e852-230b
drivemap -s (hd0) $root
#对以ntldr引导的系统如win2000,xp,win2003,因其引导机制只能从第一硬盘启动,系统会自动添加#映射命令,对vista和win7就没有这句命令
chainloader +1}### END /etc/grub.d/30_otheros ###
#40_custom为自定义的启动项,如启动cdlinux
### BEGIN /etc/grub.d/40_custom ###
menuentry "CDLinux"{
set root=(hd0,8)
linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
}
### END /etc/grub.d/40_custom ###

实例:
menuentry "CentOS-base, (2.6.18-164.el5)" {
insmod ext2
set root=(hd0,3)
linux /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-164.el5.img
}

menuentry "Ubuntu, Linux 2.6.31-14-generic-pae" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 91d7cb26-bd24-4bbf-9423-c81bb9be0a06
linux    /boot/vmlinuz-2.6.31-14-generic-pae root=UUID=91d7cb26-bd24-4bbf-9423-c81bb9be0a06 ro   quiet splash
initrd    /boot/initrd.img-2.6.31-14-generic-pae
}

Grub2启动项的修改和相关操作命令相关推荐

  1. 安装win7和Centos后,默认启动项的修改.

    双系统启动项的修改 因为以前有vmware虚拟机的缘故,所以说我个人的操作系统还是以win7为主,如需其他系统,则在虚拟机里安装测试,可是有些东西毕竟是虚拟机里不能测试模拟的,所以在此我准备在我机子上 ...

  2. 双系统如何在Centos7中添加GRUB2启动项

    GRUB2是Centos7的默认引导加载程序.它可以轻松地加载所有的Linux发行版和其他操作系统.它提供一个菜单显示所有的操作系统.GRUB2具有高级特性以及一些基本特性,使其在所有Linux上都有 ...

  3. 计算机启动如何改变默认硬盘,如何把硬盘设置为第一启动项怎么修改的

    如何把硬盘设置为第一启动项怎么修改的 解决方案: 在启动电脑的`时候按住(Award BIOS:按"Del"键,AMI BIOS:按"Del"或"ES ...

  4. 「linux」win+linux 双系统 默认启动项 的修改

    修改/etc/default/grub文件,其中的GRUB_DEFAULT表示默认启动项: sudo gedit /etc/default/grub 注意:启动项是从0开始计数. 要使修改生效需要运行 ...

  5. linux如何编辑启动项,Ubuntu 11.04 启动项的修改

    1.启动画面分辨率: sudo gedit /etc/default/grub修改 GRUB_GFXMODE=640x480 sudo gedit /boot/grub/grub.cfg 修改 set ...

  6. Fedora修复grub2启动项grub rescue

    前提: Fedora22系统,/boot单独分区(/dev/sda6),其他以LVM 分区存在着. 解决方案: 在grub rescue界面上只有少数命令可以用. 1.查看分区 grub rescue ...

  7. windows下设置开机启动项并修改启动顺序

    设置开机启动项: 打开"运行",输入"regedit",进入"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Window ...

  8. 服务器bios下修改启动项,怎么修改bios启动项

    网络越来越发达,重装系统只要一个软件就能搞定,但是系统本身就进不去那重装软件就无效了,这里分享如何更改笔记本或者台式机的bios启动项,虽然更改的按键不同,但原理总是一样的. 怎么修改bios启动项 ...

  9. windows7启动项的修改

    2019独角兽企业重金招聘Python工程师标准>>> 在 Windows 7 中,微软引入了一种全新的 boot loader 架构, Windows Boot Manager ( ...

最新文章

  1. 陈天桥雒芊芊脑机接口中心等团队研究登顶刊:超声波“读心”
  2. 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
  3. 【Leetcode】14、Longest Common Prefix
  4. vue导入swiper_vue项目中导入swiper插件的方法
  5. 洛谷P2114 [NOI2014]起床困难综合症
  6. 你还敢用鼠标吗?黑客在百米之外控制你的鼠标
  7. Linux移植笔记--arm64上的Linux系统移植
  8. html3d电子相册,3d电子相册制作软件哪个好, 自带翻页电子相册模板,电子相册生成flash等多种格式...
  9. 怎么写专利更容易通过?
  10. 几何公差之什么是基准要素?基准要素有哪些类型?
  11. JAVA WEB学习笔记(一)
  12. 软件开发都需要哪些岗位参与?
  13. mybatis小结(1)
  14. 任正非、董明珠、曹德旺,中国实业三大网红!他们有个共同点:坚决不做一件事!
  15. win7电脑提升开机速度方法
  16. 长江实业全新超甲级商业地标 长江集团中心二期设计理念以人为本
  17. 《 最新中国高校毕业生薪资报告 》
  18. JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
  19. 深度学习与视频分析简介
  20. 三年级信息技术用计算机打字教案,信息技术教案三年级(下册)

热门文章

  1. 【ACL2021】ChineseBERT:香侬科技提出融合字形与拼音信息的中文预训练模型
  2. 判断IE浏览器版本(IE10+)
  3. 制作动态相册的python知识点_动感网页相册 python编写简单文件夹内图片浏览工具...
  4. 数据库的一些操作(Sql)
  5. Vite、Pinia 新一代项目工程化
  6. IgH EtherCAT master编译安装时出错
  7. 为什么零售企业需要越来越强调全渠道会员营销体系?
  8. 三个自定义图标设置,让你的iPhone可爱亿点点!
  9. 数据结构与算法python版 MOOC 第九周
  10. metronic php 后台,发一个自己写的通用后台(Yii2+metronic_v4.5.6)