windows+linux修改系统启动项+fedora+ubuntu+deepin
Tofloor
poster avatar
MMHMM
Moderator
2015-11-25 05:07
Author
本帖最后由 MMDMM 于 2015-11-24 21:38 编辑

{:4_118:}{:4_118:}{:4_118:}

fedora:
本机:fedora20
1.打开终端模拟器;
2.切换到root,输入:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
su root  
然后键入密码,密码输入时是不可见的,只管输入就是了;
3.查找windows的menuentry:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
#cat /boot/grub2/grub.cfg | grep Windows  

  显示:(不同系统显示不同,为的电脑只装了fedora20 和 为windows 8)
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
menuentry 'Windows 8 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-E0201C9E201C7E2A' {  
4.设置默认启动为windows,可以直接复制上方的对应文字:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
# grub2-set-default  'Windows 8 (loader) (on /dev/sda1)'          
5.验证启动项:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
# grub2-editenv  list  

  显示:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
saved_entry=Windows 8 (loder) (on /dev/sda1)  

6.最后更新下grub:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
# grub2-mkconfig -o /boot/grub2/grub.cfg   


  
就成功了。




ubuntu和deepin:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
sudo gedit /boot/grub/grub.cfg  

也可能是:  
sudo gedit /boot/grub2/grub.cfg


如果输入密码后还是无权限(或者打开无法保存),就进入root用户。
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
su root  



输入密码时候不可见。只管输入就好;
内容:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
#  
# DO NOT EDIT THIS FILE  
#  
# It is automatically generated by grub2-mkconfig using templates  
# from /etc/grub.d and settings from /etc/default/grub  
#  
。。。
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

#  
# DO NOT EDIT THIS FILE  
#  
# It is automatically generated by grub2-mkconfig using templates  
# from /etc/grub.d and settings from /etc/default/grub  
#  



[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
GRUB_DEFAULT=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. 你回想下 你开机的时候显示有多少行启动项,
一般有:
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
Ubuntu, with Linux 2.6.35-28-generic  
Ubuntu, with Linux 2.6.35-28-generic (recovery mode)  
Windows 8 (loader) (on /dev/sda1)  

从0开始数。如上,如果要设置win8为默认。 则将GRUB_DEFAULT=0 改为GRUB_DEFAULT=2  
如果有更多的启动项,自己数数;然后就可以保存退出了;
最后输入命令
[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
sudo update-grub  

deepin下测试不进行最后一步也能成功。


自行测试。请勿乱该,以免丢失启动项,或者使得系统无法启动,概不负责;

{:4_98:}{:4_98:}{:4_98:}

Reply Favorite View the author
All Replies
MattD
deepin
2015-11-25 05:16
#1
无脑复制粘贴……
Reply View the author
MMHMM
Moderator
2015-11-25 05:18
#2
本帖最后由 MMDMM 于 2015-11-24 21:45 编辑

{:4_98:}{:4_98:}{:4_98:}
如何修改GRUB
最近很多人问到开机的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等格式



还有其他参数,若有兴趣请参照
https://help.ubuntu.com/community/Grub2/Setup#Editing_grub.cfg_directly
(话说,想要进阶高手,会点英文找资料会比较容易)


以下介绍/etc/grub.d目录下的档案。这些档案内都有很清楚的注解,但都是英文的,不过不需要很强的英文能力。难的是你必须要有撰写修改scripts的能力。基本上,这些档案大多都不需要去修改。


1. 00_header - 设定初始显示项目
前一段介绍了/etc/default/grub的设定,就是由这一部份来负责,所以你不需要更动这个档案。


2. 05_debian_theme - 布景主题
设定开机影像、文字颜色、高亮度选项及布景主题。在没有开机影像的情况下,此档案会设定一个单色的布景主题来显示初始选单画面。在之前/etc/default/grub已经介绍过GRUB_BACKGROUND参数,若有设定,则在00_header就已经先载入了,所以优先性高於在此设定。
个人有点小看法,开机越快越好,在这个选单背景下功夫,不如想办法加快流程。而且这个步骤停留时间不长,实在吸引不了什麼目光...


3. 10_linux - 指定目前使用中的Linux作业系统核心位置
用来建立这些linux不同核心显示在选单中的名称。若您不想要所有的旧核心版本全都显示在选单中,请移除旧核心

4. 20_memtest86+ - 搜寻 /boot/memtest86+.bin
memtest86+ 主要是进行记忆体测试。你会常用到吗?假如用不到,不用移除,只要拿掉x属性即可不再出现在选单当中。请输入:
sudo chmod -x /etc/grub.d/20_memtest86+


5. 30_os-prober - 此档案使用 os-prober 来搜寻其他分割区的作业系统。结果将会依据此档案中的内容而放至 grub.cfg 中
此档案被划分成四个段落,代表四种作业系统类型:Windows, Linux, OSX 和 Hurd。假如你要去修改这个档案了,那你必须熟悉scripts的撰写。


6. 40_costom - 用来加入自订选单选项的样板
会在执行 update-grub 时,嵌入至 grub.cfg 中。


既然不怎麼需要作修改,那知道这个目录有什麼用?就像最早简介中所述:更改数字,可以改变顺序,小的在前面,大的在后面;更改x属性,可以决定要不要在选单中出现。

如,你想要windows系统出现在前面,你可以把os-prober的数字改成07,他就会出现在现有的linux前面。
如,你不想要出现memtest86+,就把x属性拿掉。

再一个更复杂的状况,除了现有的ubuntu外,你还有fedora与windows7在其他分割区,而你希望出现的顺序为windows7, fedora, ubuntu,你可以把os-prober的数字改成07,并且把里面关於windows的scripts放在前面。

所有对於/etc/default/grub与/etc/grub.d的更改,必须以下列的指令来生效
sudo update-grub

这个指令会重新做出/boot/grub/grub.cfg,下次开机时,就会呈现出新的选单。



若想了解更多,请参阅以下参考资料:
https://help.ubuntu.com/community/Grub2
https://help.ubuntu.com/community/Grub2/Setup


{:4_98:}{:4_98:}{:4_98:}




Reply View the author
MMHMM
Moderator
2015-11-25 05:20
#3
本帖最后由 MMDMM 于 2015-11-24 21:42 编辑

{:4_98:}{:4_98:}{:4_98:}
grub2的etcdefaultgrub文件详解



# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0 ->设置默认启动项,按menuentry顺序。比如要默认从第四个菜单项启动,数字改为3,若改为 saved,则默认为上次启动项。
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true ->隐藏菜单,grub2不再使用,不管
GRUB_TIMEOUT="3" ->设置进入默认启动项的等候时间,默认值10秒,按自己需要修改

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ->添加内核启动参数,这个为默认
GRUB_CMDLINE_LINUX="noresume" ->手动添加内核启动参数,比如 acpi=off noapic等可在这里添加
# 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命令是否使用UUID,去掉#,使用root=/dev/sdax而不用root=UUDI=xxx
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true" ->设定是否创建修复模式菜单项


    在修改该文件之后,根据文件内容的提示,我们需要执行sudo update-grub。这样就可以生成我们熟悉的/boot/grub/grub.cfg

{:4_98:}{:4_98:}{:4_98:}
Reply View the author
MMHMM
Moderator
2015-11-25 05:23
#4
https://bbs.deepin.org/post/33365
无脑复制粘贴……

{:4_102:}谢谢夸奖,不过不是给你看的,只是分享下,再说可能会有人需要呀!!!
Reply View the author
laoguang
deepin
2015-11-25 05:24
#5
卧槽,我佩服这位仁兄的勇气,都说了don not edit还要自己改(开个玩笑)
我有个装grub4dos的usb,里面是menu。lst,不知如何“翻译”成grub。cfg?
Reply View the author
MMHMM
Moderator
2015-11-25 05:25
#6
https://bbs.deepin.org/post/33365
卧槽,我佩服这位仁兄的勇气,都说了don not edit还要自己改(开个玩笑)
我有个装grub4dos的usb,里面是me ...

自己改又不是不行啊,你不是也改了吗???
Reply View the author
laoguang
deepin
2015-11-25 05:30
#7
https://bbs.deepin.org/post/33365
自己改又不是不行啊,你不是也改了吗???

我哪改了?我是用grub customiser,对了,到底能不能翻译啊?
Reply View the author
MMHMM
Moderator
2015-11-25 05:32
#8
俺不会 嫩自己解决{:4_121:}
Reply View the author
MattD
deepin
2015-11-25 05:33
#9
https://bbs.deepin.org/post/33365
谢谢夸奖,不过不是给你看的,只是分享下,再说可能会有人需要呀!!! ...

对于真正需要的人,一看你这个排版和那些丝毫未加过滤的多余字符,一下子就没兴趣了。
做成百科的这种排版模式会更友好:http://wiki.deepin.org/index.php?title=Grub
Reply View the author
laoguang
deepin
2015-11-25 05:35
#10
本帖最后由 laoguang 于 2015-11-24 21:38 编辑
https://bbs.deepin.org/post/33365
俺不会 嫩自己解决

诶哟。。。心碎了。。。实际上我的usb是konboot,只占21mb,可惜我的usb都是8gb的,又不想加分区,只能委屈了。。。
Reply View the author
laoguang
deepin
2015-11-25 05:36
#11
https://bbs.deepin.org/post/33365
对于真正需要的人,一看你这个排版和那些丝毫未加过滤的多余字符,一下子就没兴趣了。
做成百科的这种排版 ...

好歹人家一片苦心,点个赞嘛!
Reply View the author
MMHMM
Moderator
2015-11-25 05:43
#12
https://bbs.deepin.org/post/33365
好歹人家一片苦心,点个赞嘛!

{:4_102:}A2 一直不粗来  显得  {:4_98:}
Reply View the author
laoguang
deepin
2015-11-25 05:49
#13
https://bbs.deepin.org/post/33365
A2 一直不粗来  显得

快了,也就三四天呗,不用着急,最多五六天。
Reply View the author
198******30
deepin
2015-11-25 18:39
#14
楼主和大伙有必要这样折腾吗?当然学习grub配置的话我不反对,但是如果是单单想修改或者自定义引导项,告诉大家一个神器:grub-customizer,不谢!
Reply View the author
carrjay
deepin
2015-11-25 19:34
#15
赞一个,楼主也是好心!万一有谁需要呢
Reply View the author