ubuntu修改grub.cfg(ubuntu修复grub引导)
各位老铁们好,相信很多人对ubuntu修改grub.cfg都不是特别的了解,因此呢,今天就来为大家分享下关于ubuntu修改grub.cfg以及ubuntu修复grub引导的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
linux下怎么修改grub.cfg
一、grub2的启动配置文件grub.cfg
grub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst。
如果你是多系统,有Ubuntu和windows,那么用下面的命令,可以使grub2得到所以可以启动的系统。
sudo update-grub
实际就是让系统自己生成合适的grub.cfg文件。
这个grub.cfg文件是只读属性,so如果你要修改它,需要权限。
sudo chmod+w/boot/grub/grub.cfg
然后可以编辑grub.cfg了。
sudo gedit/boot/grub/grub.cfg
二、默认系统和等待时间
1、set default=0
这是说从第一项启动。每个启动项都是以menuentry开始,menuentry后面“xxx”是启动项名称,然后{xxx}是启动代码。
### BEGIN/etc/grub.d/10_linux###menuentry“Ubuntu, Linux 2.6.31-14-generic”{recordfail=1if [-n${have_grubenv} ]; then save_env recordfail; fiset quiet=1insmod ext2set root=(hd0,6)search–no-floppy–fs-uuid–set 040508ff-fec7-4c66-ba64-a09f8abe8059linux/boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splashinitrd/boot/initrd.img-2.6.31-14-generic}menuentry“Ubuntu, Linux 2.6.31-14-generic(recovery mode)”{recordfail=1if [-n${have_grubenv} ]; then save_env recordfail; fiinsmod ext2set root=(hd0,6)search–no-floppy–fs-uuid–set 040508ff-fec7-4c66-ba64-a09f8abe8059linux/boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro singleinitrd/boot/initrd.img-2.6.31-14-generic}### END/etc/grub.d/10_linux###### 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+###### BEGIN/etc/grub.d/30_os-prober###menuentry“Microsoft Windows XP Home Edition(on/dev/sda1)”{insmod ntfsset root=(hd0,1)search–no-floppy–fs-uuid–set 5c108a1c1089fd70drivemap-s(hd0)${root}chainloader+1}if keystatus; thenif keystatus–shift; thenset timeout=-1elseset timeout=10fielseif sleep$verbose–interruptible 3; thenset timeout=10fifi### END/etc/grub.d/30_os-prober###### BEGIN/etc/grub.d/10_linux###
menuentry“Ubuntu, Linux 2.6.31-14-generic”{
recordfail=1
if [-n${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,6)
search–no-floppy–fs-uuid–set 040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splash
initrd/boot/initrd.img-2.6.31-14-generic
}
menuentry“Ubuntu, Linux 2.6.31-14-generic(recovery mode)”{
recordfail=1
if [-n${have_grubenv} ]; then save_env recordfail; fi
insmod ext2
set root=(hd0,6)
search–no-floppy–fs-uuid–set 040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro single
initrd/boot/initrd.img-2.6.31-14-generic
}
### END/etc/grub.d/10_linux###
### 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+###
### BEGIN/etc/grub.d/30_os-prober###
menuentry“Microsoft Windows XP Home Edition(on/dev/sda1)”{
insmod ntfs
set root=(hd0,1)
search–no-floppy–fs-uuid–set 5c108a1c1089fd70
drivemap-s(hd0)${root}
chainloader+1
}
if keystatus; then
if keystatus–shift; then
set timeout=-1
else
set timeout=10
fi
else
if sleep$verbose–interruptible 3; then
set timeout=10
fi
fi
### END/etc/grub.d/30_os-prober###
我的第五个启动项是menuentry“Microsoft Windows XP Home Edition(on/dev/sda1)”,我要它默认是以xp启动,所以修改为set default=”4″。(hd0,1)表示第一块硬盘的第一个分区,我的Linux在(hd0,6)。
当然,你也可以把你需要默认启动的系统放到最前面,那么就还是set default=0
2、set timeout=10
if [${recordfail}= 1 ]; then
set timeout=-1
else
set timeout=10
fi
这里停留在grub选择系统界面的时间就是10秒,即set timeout=10。
有时候我并不想等待这么久,我直接启动xp,需要Ubuntu时才按几下Shift键进入grub选择系统界面。可以添加如下代码:
if keystatus; then
if keystatus–shift; then
set timeout=-1
else
set timeout=10
fi
else
if sleep$verbose–interruptible 3; then
set timeout=10
fi
fi
如何修改GRUB
要修改grub,请注意以下几个重要档案:
1./boot/grub/grub.cfg
此档案中包含了GRUB选单资讯。
注意他的开头,说明了这是由/etc/grub.d与/etc/default/grub所生成的,不要自己编辑。这个档案还是唯读属性,就是要避免你直接去编辑。
若是你修改了这个档案,只要更新核心,或是以指令更新grub选单,之前的修改就会被覆盖掉。所以除非不得已,请不要去动这个档案。要修改,请继续往下看。
2./etc/default/grub
此档案为使用者修改grub设定的主要档案,真的改烂了请不要急,在/usr/share/grub/default/里还有一份,复制回来即可。
要修改这个档案,请输入
sudo gedit/etc/default/grub
3./etc/grub.d目录
此目录放置档案,会在sudo update-grub时,合并到/boot/grub/grub.cfg中。
注意这些档案名称结构,前面都有数字。数字越小的,在合并时放在越前面。常有人问到,grub menu要怎麼更改选项的顺序?就是更改数字的大小。
此外请你在这目录下输入ls-l,看一下各档案的属性,有没有看到都有x属性(可执行)?变动x属性,可以决定这个选项要不要出现在选单内。
以下介绍/etc/default/grub所使用的参数,我只介绍大家比较会去修改到的。
1. GRUB_DEFAULT-设定预设选单选项。有以下几种作法。
GRUB_DEFAULT=0以位置来设定预设选单选项。第一笔选单选项为 0,第二笔为 1,以此类推。
GRUB_DEFAULT="xxxx"在此例中,选单中的位置不会有影响。例如:GRUB_DEFAULT="Ubuntu, Linux 3.11.0-13-generic"。注意要完整全称。
GRUB_DEFAULT=saved由储存预设的作业系统开机。可以用grub-reboot和grub-set-default指令来设定预设作业系统。预设作业系统不会由来自选单中的互动式选择而被设定。
sudo grub-set-default 0以位置来设定预设选单选项。第一笔选单选项为 0,第二笔为 1,以此类推。
sudo grub-set-default"xxxx"以选单名称来设定
sudo grub-reboot 0以位置来设定下次重启开机选项。第一笔选单选项为 0,第二笔为 1,以此类推。
sudo grub-reboot"xxxx"以选单名称来重启开机
2. GRUB_HIDDEN_TIMEOUT-此设定用来决定GRUB选单会有多长时间不被显示。
GRUB_HIDDEN_TIMEOUT=0在单一作业系统电脑中,会立刻以预设作业系统开机。在只有一个作业系统状况下,这是预设的设定。假如还是要显示选单,请在这行前加上#注销掉,并确认 GRUB_TIMEOUT设定为正整数。
GRUB_HIDDEN_TIMEOUT=X x为秒数,空白画面几秒后,系统将会依照预设开机,不会出现选单。当萤幕是空白时,使用者可以按下任何键以显示选单。
3. GRUB_HIDDEN_TIMEOUT_QUIET-在空白画面时,是否显示倒数计时器
GRUB_HIDDEN_TIMEOUT_QUIET=true'不'显示计时器
GRUB_HIDDEN_TIMEOUT_QUIET=fault显示计时器
4. GRUB_TIMEOUT-选单显示多久之后自动以预设作业系统开机
GRUB_TIMEOUT=10 10秒后以预设系统开机
GRUB_TIMEOUT=-1持续显示选单,直到使用者选择
5. GRUB_GFXMODE-设定grub选单显示的解析度。一般是注解掉。
GRUB_GFXMODE=640x480以640x480模式显示。
除非开机时选单显示就有问题,不然不要启用这个参数,据说会影响进入grub选单的时间。真的要启用,后面的数值请依照你显卡可以支援的模式填入,如1280x1024x16,800x600x24,640x480
6. GRUB_DISABLE_LINUX_RECOVERY-救援模式要不要显示?
你在选单中是不是都有看到救援模式(recovery mode)?假如你的电脑一向稳定,而且你不太会去动到系统,可以考虑去除#注解
GRUB_DISABLE_LINUX_RECOVERY=true'不'显示救援模式
7. GRUB_DISABLE_OS_PROBER-对其他分割区作业系统的检查
大家应该都知道sudo update-grub可以找到在其他分割区的作业系统,制成选单。但有时我就是不想要他显示到选单内,那怎麼办?那注销掉这一行就可以不检查其他分割区有没有作业系统。
GRUB_DISABLE_OS_PROBER=true'不'检查其他作业系统
8. GRUB_BACKGROUND-背景影像所在。这个参数,需要自行加入。
GRUB_BACKGROUND=以/usr/share/background/xxx.jpg当作选单背景。可以.png,.jpg,或.tga等格式
如何打开ubuntu11.10中的grub.cfg
在Ubuntu 11.10中,grub2的配置文件位于/boot/grub/grub.cfg,而grub1.x版的配置文件则是/boot/grub/menu.lst。如果你想要修改grub.cfg,首先需要切换到root用户权限。
进入root用户的方法是使用命令“sudo su”,这适合有一定经验的用户。如果你是新手,可以使用“nano/boot/grub/grub.cfg”这个命令来直接编辑文件。
值得注意的是,每次安装或更新与启动相关的软件包(例如内核),系统会根据/etc/grub.d/目录下的文件重新生成grub.cfg。这意味着,如果你每次都手动修改grub.cfg,可能会导致配置文件丢失或被覆盖。因此,建议花些时间学习如何正确编辑/etc/grub.d/下的文件,以便一次性完成所有必要的配置。
如果你希望在不频繁修改的情况下保持grub.cfg的完整性,可以通过编辑/etc/grub.d/目录中的脚本文件来实现。这些脚本负责生成grub.cfg,因此修改它们可以避免频繁手动调整配置文件。
总而言之,了解如何正确编辑grub.cfg对于保持系统的稳定性和高效性至关重要。通过研究/etc/grub.d/中的文件,你可以避免频繁手动修改配置文件,从而节省时间和精力。