centos7引导win7,修改引导顺序。 centos7添加win7引导

一,引导win7:
1.使用root身份(必须)打开 /boot/grub2/grub.cfg
2.找到 ### BEGIN /etc/grub.d/30_os-prober###
在后面添加
menuentry "Windows 7" {
insmod ntfs
setroot=(hd0,2)
chainloader +1
}

说明:set root=(hd0,2) 其中 hd0 表示硬盘,2表示C盘,我的win7装在C盘,它是sda2
3.保存重启
原处:http://www.lnoo.net/portal.php?mod=view&aid=59

二,修改引导顺序:
# grub2-set-default "Windows 7"

验证默认启动项:

# grub2-editenv list

输出:

saved_entry=Windows 7

原处:http://my.oschina.net/renguijiayi/blog/290345

三,原理:
在早期的Ubuntu中,使用Grub作为系统的启动引导程序,想修改系统启动项非常简单,只要用gedit打开系统菜单设定文件(sudo gedit /boot/grub/menu.lst ),修改该文件中到内容即可,但是到了Grub2中,不能采用这种方式修改系统启动项了。Grub 2特性Grub 2(GRand Unified Bootloader, version 2)是Grub的第二版。Grub2对Grub的接口进行了完整到重写,基于PUPA(详细介绍)项目到研究,Grub 2更模块化并且更方便扩展,Grub2的一些提升如下:具有图形化界面,支持主题模块化加载夸平台的兼容性支持脚本自定义的启动项目定义修改分区命名Grub 2结构Grub 2包含下面几个部分:/boot/grub/grub.cfg 文件/etc/grub.d/ 文件夹/etc/default/grub 文件下面开始一个个介绍。 grub.cfg类似Grub中的/boot/grub/menu.lst。里面的格式于menu.lst差不多,但是现在不允许你通过直接修改该文件到方式来修改启动项,因为该文件是在执行"update-grub"或者update-grub2"之后,根据上面说到2、3两项动态生成到,也就是说,如果你修改了这个文件当下次这两个命令被执行了(比如说更新内核后),你修改到内容就会背覆盖。官方文件只 www.2cto.com说/boot/grub/grub.cfg不要手工修改,这个文件是运行update-grub自动生成的。要修改配置文件的只要打开/boot/grub/grub.cfg文件,找到想修改的地方,然后根据注释找到相应的/etc/default/grub或/etc/grub.d/ (folder)进行修改。grub.cfg文件中主要包含两个部分,一部分是各个启动项的定义,第二部分是启动界面的设置。你可以直接用gedit打开该文件看其中的内容。既然grub.cfg不能修改,那也没什么好详细说的了,稍微研究下就能看懂里面是怎么写的。下面就介绍一下Grub 2的另外两个部分。 Grub2的另外两部分内容其实就分别对应于grub.cfg中的两部分内容。 首先 /etc/grub.d/文件夹中定义各个启动项,其中的文件代表了一个或多个启动项,命名规范都是"两个数字_名称",前面的两位数字确定这个或这多个启动项在启动界面的位置,默认的"00_"是预留给"00_header"的,"10_是预留给当前系统内核的,20_是预留给第三方程序的,除了这些你都可以使用,增加自己的,比如05_ ,15_,数字越小越前面。这里的文件好像是代码,我还没研究透,不会自己写,只会改。当执行前面说的"update-grub"或者update-grub2"命令之后,这个文件夹中的文件就是用于生成 grub.cfg 中启动项的定义的。 Grub 2的最后一部分是/etc/default/grub文件,该文件主要是启动界面的配置,比如默认的启动项,等待用户选择启动项的时间等。文件内容很简单,就是一些键值对,详细的可配置属性可以参考Grub2的Wiki中"grub(/etc/default/grub)"这一节。当执行前面说的"update-grub"或者update-grub2"命令之后,这个文件的内容就用于生成 grub.cfg 中启动界面的设置。/etc/default/grub文件详细修改方法sudo gedit /etc/default/grub 系统安装完成后,用户就会发现/boot/grub/grub.cfg文件只有root权限可读,如果要直接修改grub.cfg文件,要先修改其权限。好不容易把grub.cfg修改好了,系统内核或grub升级时,会自动执行update-grub,grub.cfg文件就会被打回原形,如何保证修改后的配置文件能一直保留下来呢?www.2cto.com 其实不用修改grub.cfg,只要把个性化配置写入/etc/default/目录下的grub和/etc/gurb.d目录下的脚本文件,以后不管升级内核或者是升级grub所执行的update-grub,都会按要求创建个性化的grub.cfg。1、首先看下 /etc/default/grub,先从应用程序-附件里打开终端,输入sudo gedit /etc/default/grub看看打开的文件可作什么修改:# If you change this file, run 'update-grub' afterwards toupdate# /boot/grub/grub.cfg.GRUB_DEFAULT=0-------->设置默认启动项,按menuentry顺序。比如要默认从第四个菜单项启动,数字改为3,若改为saved,则默认为上次启动项。GRUB_HIDDEN_TIMEOUT=0 默认为0,单系统时启动菜单自动隐藏,要取消自动隐藏菜单,改为大于0再sudoupdate-grub。(注意:单系统下/etc/grub.d/30_os-prober可能没引用这里的变量,如果修改这里不能显示菜单,还要修改/etc/grub.d/30_os-prober,具体看下面修改部份)GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="3"----------->设置进入默认启动项的等候时间,默认值10秒,按自己需要修改GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echoDebian`GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"----------->添加内核启动参数,这个为默认GRUB_CMDLINE_LINUX="noresume"--------->手动添加内核启动参数,比如acpi=off noapic等可在这里添加,加 text 参数启动进入字符模式。# Uncomment to disable graphical terminal (grub-pc only)#GRUB_TERMINAL=console---------->设置是否使用图形介面。去除前面#,仅使用控制台终端,不使用图形介面www.2cto.com # The resolution used on graphical terminal# note that you can use only modes which your graphic cardsupports 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 menuentrys#GRUB_DISABLE_LINUX_RECOVERY="true"----------->设定是否创建修复模式菜单项/etc/grub.d文件夹详细修改方法
再看下 /etc/grub.d文件夹下的什么东东:00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober40_custom README前面这五个脚本对应grub.cfg上的各个部分,怎样修改这些脚本文件才能保证不会破坏update-grub的运行,又能让grub.cfg符合你的意愿呢?其实很简单,只要找到cat << EOF************************EOF这类语句,EOF中间的文本会直接写入grub.cfg中相应位置,所以个性化的语句添加在这地方就可以了。00_header 可供修改的有两地方cat << EOF www.2cto.comload_envset default=${GRUB_DEFAULT} <----- 这里根据/etc/default/grub中default变量设定,不用修改if [ /${prev_saved_entry} ]; thensaved_entry=/${prev_saved_entry}save_env saved_entryprev_saved_entry=save_env prev_saved_entryfiinsmod jpeg <---------这地方加入要加载的模块,如图片支持,或系统格式支持 insmod ntfs和 insmod fat 等insmod png <---------EOF另一个在最后cat << EOFset timeout=${GRUB_TIMEOUT} <------- timeout 根据上面/etc/default/grub中的timeout 变量设定,这里不用改background_image (hd0,7)/boot/images/012.jpg<----------这里背景图片的绝对路径(似乎没有作用,相见"实例")EOF05_debian_theme 修改背景颜色cat << EOF www.2cto.comset menu_color_normal=white/black <--------set menu_color_highlight=yellow/black <-------前面字体颜色可自定,后面背景一定要设为black,不然背景色会挡住背景图片。备注:修改前为setmenu_color_highlight=black/light-grayEOF10_linux这部分是自动搜索当前系统,建立当前系统的启动菜单,包括系统头,内核等信息,不要随便修改,要使用个性菜单名,比如中文菜单,可修改这里,其余地方不要做修改:cat << EOFmenuentry "启动 $1" { <---------在 双引号 " " 和 变量 $1这间加入个性文字,或直接把 变量$1 改为固定字符比如 Ubuntu KarmicEOFif [ "x$3" = "xquiet" ]; thencat << EOFset quiet=1EOF20_memtest86+ 添加内存测试启动项,可做修改的地方:cat << EOFmenuentry "Memory test (memtest86+)" {<------可以修改为中文菜单如menuentry "内存测试"{ ,双引号必须是英文字符linux16 $MEMTESTPATH}# 下面第二个菜单项可删除menuentry "Memory test (memtest86+)"linux16 $MEMTESTPATH *********} www.2cto.com EOF30_os-prober 查找其他分区中存在的系统并建立菜单项,依次为 windows >> linux>> macos,这里不必修改。或根据自己的系统修改menuentry "${LONGNAME} (on ${DEVICE})"<-------把引号中的变量改为固定,如 windows xp ,vista 或 linux , Fedora之类的菜单项。40_custom自定义启动项,按菜单标准格式添加即可,update-grub后会自动添加到grub.cfg上,如:menuentry "启动 Veket"{set root=(hd0,8)linux /veket/vmlinuz root=/dev/ram0 PMEDIA=hdinitrd /veket/initrd.gz}menuentry "启动 CDLinux"{set root=(hd0,8)linux /CDlinux/bzImage root=/dev/ram0 vga=791CDL_LANG=zh_CN.UTF-8initrd /CDlinux/initrd}menuentry "启动 Grub4Dos"{set root=(hd0,8)linux /grub.exe}把各项修改后保存,然后sudo update-grubcat /boot/grub/grub.cfg看看配置文件是不是和你想的一样了。不一样??? 再改,再 sudo update-grub www.2cto.com实例:要修改默认启动项,可以使用下面的方法:1.修改 /etc/grub.d/中启动项的顺序,将你想要默认启动的项顺序设置为较小的值。优点是修改不会被update-grub命令覆盖掉,好像没啥缺电,只有另外的程序修改为比你的值更小了才会成为默认启动。2. 修改 /etc/default/grub 中默认的启动项,设置该文件中 GRUB_DEFAULT为你想要的值,这个值是生成的 grub.cfg中各个启动项的从0开始的下标。该方法优点是修改不会被update-grub命令覆盖,缺点是当启动项的顺序变化之后,下标也就变了。。。调整启动画面分辨率第一步:打开终端,修改/etc/default/grub文件$ sudo gedit /etc/default/grub取消#GRUB_GFXMODE=640×480这一行前面的注释符号,并将后面的数字修改为一个合适的值,不需要太高,比如1024x768。这个值同时会影响grub启动菜单和控制台里文字的分辨率。注意:启动菜单和启动界面分辨率相同,如果此处分辨率设置过高的话,启动菜单会很难看,似乎修改分辨率不会影响启动速度,第二步:修改/etc/grub.d/00_header文件$ sudo gedit /etc/grub.d/00_header按下ctrl+F,查找关键字"setgfxmode=${GRUB_GFXMODE}"(去掉双引号),然后在这行下面添加新行,内容是:"setgfxpayload=keep" (去掉双引号)第三步:更新grub$ sudo update-grub好了,重启试试,不出意外的话你会看到plymouth的启动画面确实更漂亮了给grub2菜单添加图片1.在etc/grub.d文件夹中找到00_header 文件,打开后在save_env prev_saved_entryfi下添加一句 www.2cto.cominsmod png2.在etc/grub.d/05_debian_theme中改为set menu_color_normal=white/blackset menu_color_highlight=yellow/black(前面字体颜色可自定,后面背景一定要设为black,不然背景色会挡住背景图片。前面还有语句的详细)3.根据图片位置可判断系统grub默认图片文件夹位置,在相同位置放上一张同名图片文件即可。图中文件名为moreblue-orbit-grub.png备注:一.修改/boot/grub/grub.cfg 文件的方法(可以当作修改/etc/grub.d/文件夹和/etc/default/grub 文件的参考)grub.cfg 默认为只读,要修改前先设为可写sudo chmod +w /boot/grub/grub.cfgset default=0#默认为0insmod jpg#添加jpg支持,如要使用png或tga文件做背景,加上 insmod png或insmod tga(添加图片好像不管用)insmod ext2#除了用作启动的分区外,其他分区格式可在menu底下再添加set root=(hd0,7)#设定root分区search -no-floppy -fs-uuid -setf255285a-5ad4-4eb8-93f5-4f767190d3b3#设定uuid=****的分区为root,和上句重复,可删除# 以下为终端配置if loadfont /usr/share/grub/unicode.pf2 ; then#设置终端字体,unicode.pf2支持中文显示set gfxmode=640×480 www.2cto.com#设置分辨率,默认为640×480,可用800×600,1024×768,建议跟你想设定的图片大小一致insmod gfxterm#插入模块 gfxterm,支持中文显 示,它还支持 24 位图像insmod vbe#插入 vbe 模块,GRUB 2引入很多模块的东西,要使用它,需要在这里加入if terminal_output gfxterm ; then true ; else# For backward compatibility with versions of terminal.modthat don't# understand terminal_outputterminal gfxterm#设置 GRUB 2 终端为 gfxtermfifiset timeout=10background_image (hd0,7)/boot/images/1.jpg (添加图片好像不管用)#设置背景图片### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/05_debian_theme ###set menu_color_normal=white/blackset menu_color_highlight=cyan/black#这两行为 Debian 下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡住了,你需要修改 blue 为black,这样背景就会出现### END /etc/grub.d/05_debian_theme #### 10_linux 为自动添加的当前root分区linux引导项### BEGIN /etc/grub.d/10_linux ####菜单项,要包括 menuentry 双引号" " 和大括号 { }才完整,否则不显示菜单menuentry "Ubuntu, Linux 2.6.31-9-386″ {insmod ext2 www.2cto.comset root=(hd0,7)search -no-floppy -fs-uuid -setf255285a-5ad4-4eb8-93f5-4f767190d3b3#这句与set root=(hd0,7)重复,可删除linux /boot/vmlinuz-2.6.31-9-386root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3 ro quitesplash#不喜欢看到一长串的, roo=UUID=***可用root=/dev/sda7代替initrd /boot/initrd.img-2.6.31-9-386}### END /etc/grub.d/10_linux ###### BEGIN /etc/grub.d/20_memtest86+ ###menuentry "Memory test (memtest86+)" {linux16 /boot/memtest86+.bin}### END /etc/grub.d/20_memtest86+ #### 自动添加存在于其他分区的系统引导项### BEGIN /etc/grub.d/30_os-prober ####windows 启动菜单menuentry "Windows Vista (loader) (on /dev/sda1)" {insmod ntfs#windows格式为ntfs,或为fat32改为 insmod fatset root=(hd0,1)search -no-floppy -fs-uuid -set ece067d2e067a196#可删除#grub2比较先进的地方就是如果发现windows启动是通过ntldr 引导的,定为2000/xp/2003,会在这加上drivemap -s (hd0) ${root},作用相当于grub的map,可正常启动非第一硬盘的xp/2003系统。chainloader +1}# 查找到其他分区上的linux系统并自动添加menuentry "Ubuntu karmic (development branch) (9.10) (on/dev/sda3)" {insmod ext2set root=(hd0,3)search -no-floppy -fs-uuid -set4d893970-0685-44ed-86b3-1de45b2db84alinux /boot/vmlinuz-2.6.31-9-generic root=/dev/sda3initrd /boot/initrd.img-2.6.31-9-generic} www.2cto.com #若存在macos会自动在这里添加。### END /etc/grub.d/30_os-prober #### 以下为手动添加的菜单项### BEGIN /etc/grub.d/40_custom ###menuentry "CDLinux"{set root=(hd0,8)linux /CDlinux/bzImage root=/dev/ram0 vga=791CDL_LANG=zh_CN.UTF-8initrd /CDlinux/initrd}### END /etc/grub.d/40_custom #### 手动添加时,硬盘编号从0开始(hd0),主分区编号从1开始(hd0,1),逻辑分区从5开始(hd0,5)二、grub2终端部分命令介绍在出现选择菜单时,按C进入终端命令行模式,按E进入当前菜单项编辑模式(和grub一样),编辑中按Ctrl +C退出,按Ctrl + X 以编辑内容启动。1. help查看命令用法,显示所有可用命令help searchsearch 命令用法2. ls列出当前的所有设备。如 (hd0) (hd0,1) (hd0,5) (hd1) (hd1,1) (hd1,2).......ls -l详细列出当前的所有设备。对于分区,会显示其label及uuid。ls /列出当前设为root的分区下的文件ls (hd1,1)/列出(hd1,1)分区下文件3. searchsearch -f /ntldr列出根目录里包含ntldr文件的分区,返回为分区号search -l LINUX www.2cto.com搜索label是LINUX的分区。search -set -f /ntldr搜索根目录包含ntldr文件的分区并设为root,注意如果多外分区含有ntldr文件,set 失去作用。4. loopbackloopback命令可用于建立回放设备,如loopback lo0 (hd1,1)/abc.iso可以使用lo0设备来访问abc.iso里的内容,比如说,可以从abc.iso里的软盘映像中启动loopback lo0 (hd1,1)/aa.isolinux (lo0)/memdiskinitrd (lo0)/abc.img要删除某一回放设备,可以使用-d参数:loopback -d lo05. set使用set可以设置变量的值set root=set timeout=需要调用变量的值时,使用${AA},如set root=(hd1,1)则${root}=(hd1,1)6. pager分页显示。set pager=1满页时暂停,按space继续set pager=0取消分页7. linuxlinux取代grub中的kernel三、 www.2cto.com 单linux系统或硬盘安装时iso放在C盘,umount /isodevice引起的误认为单系统不能出现菜单项的几种处理方法。1. 开机自检后时按几下shift键,可调出菜单项2. sudo update-grub重建grub.cfg,会发现新的系统而改写grub.cfg,一般能出现菜单项。3.如第二种方法不能解决,直接修改grub.cfg把在### BEGIN /etc/grub.d/30_os-prober 中的这一段if keystatus; thenif keystatus -shift; thenset timeout=-1elseset timeout=0fielseif sleep$verbose -interruptible 3 ; thenset timeout=0fifi删除或修改三处set timeout=<大于0>四、双硬盘双系统 Grub Loading时间过长的解决方案grub2的boot.img设定root的uuid从第一分区开始搜索分区的/boot/grub下的模块并加载,如果linux分区处于第二硬盘甚至第三硬盘,会导致搜索时间过长而,出现菜单时间会长达10多秒。对双(多)硬盘的情况建议把grub安装在ubuntu所在硬盘的mbr上,/boot分区或 / 分区尽量靠前,并设该硬盘为启动盘,会大大缩短启动时间。五、grub2几种修复方法 www.2cto.com1. 双系统重装windows造成grub2被改写的修复方法一 grub4dos0.4.4在Windows启动项上加上grub4dos启动(不多说了,看置顶贴),重启选择进入grub,在命令行下输入(/boot单独分区的去掉/boot)代码:grub>find -set-root /boot/grub/core.imggrub>kernel /boot/grub/core.imggrub>boot进入grub2菜单,进入系统后再执行代码:sudo grub-install /dev/sd?方法二 进入Livecd 后修复(感谢billbear)引用:sudo -imount 你的根分区 /mntmount 你的/boot 分区 /mnt/boot #如果有的话#挂载你其他的分区,如果有的话# 重建grub到sda的mbrgrub-install -root-directory=/mnt /dev/sda2. 由于root分区uuid改变造成的不能正常启动,只能进入grub rescue模式的修复代码: www.2cto.com grub rescue>setgrub rescue>prefix=(hd?,?)/grubgrub rescue>root=hd?,?grub rescue>set root=hd?,?grub rescue>set prefix=(hd?,?)/boot/grubgrub rescue>setgrub rescue>root=hd?,?grub rescue>prefix=(hd?,?)/boot/grubgrub rescue>insmod /boot/grub/normal.modgrub rescue>normal这时就可以调出 /boot/grub/grub.cfg,修改相应uuid,改到命令行下grub>insmod /boot/grub/linux.modgrub>set root=hd?,?grub>linux /boot/vmlinuz-*** root=/dev/sd??grub>initrd /boot/initrg.img-****进入系统hd?,? 是grub文件所在分区 sda? 是/分区。3. grub模块和配置文件grub.cfg受损无法启动时修复Livcd启动进入试用引用:sudo -imount 你的根分区 /mntmount 你的/boot 分区 /mnt/boot #如果有的话# 挂载你其他的分区,如果有的话# 重建grub到sda的mbrgrub-install -root-directory=/mnt /dev/sda# 重建grub.cfg www.2cto.commount -bind /proc /mnt/procmount -bind /dev /mnt/devmount -bind /sys /mnt/syschroot /mnt update-grubumount /mnt/sysumount /mnt/devumount /mnt/proc六、 另一些补充说明1. chainloadergrub2将支持 chainloader /file 的用法。目前支持的文件只有 grub2 的 boot.img 和 grub4dos 的grldr 和grub.exe。希望正式版能支持 ntldr bootmgr peldr 等文件。2. drivemapdrivemap 兼容 grub 的 map,主要用于只能从 (hd0) 引导启动的系统如 win2000 xp2003,可以象 map 用法一样如:menuentry "Windows XP" {insmod ntfsdrivemap (hd0) (hd1)drivemap (hd1) (hd0)set root=(hd1,1)chainloader +1}实际上 drivemap 有了更方便的用法:menuentry "Windows XP" {insmod ntfs www.2cto.comset root=(hd1,1)drivemap -s (hd0) ${root}chainloader +1}3. grub2 引导软盘img镜像启动比如要加载(hd1,1)根目录下的 a.img 镜像,先把 memdisk 从 memdisk.gz中解压出来,用法是:linux (hd1,1)/memdisk #镜像文件超过2.88M要加上 c=* h=* s=*initrd (hd1,1)/a.imgboot
centos7引导win7,修改引导顺序。 centos7添加win7引导
原处: http://www.2cto.com/os/201209/157159.html

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/165161.html

更多阅读

lol布隆怎么加点 布隆加点顺序 布隆怎么加点

lol布隆怎么加点 布隆加点顺序——简介lol布隆应该快要登陆国服了,这个英雄目前来看胜率非常的高,作为一个超级坦克辅助,让lol布隆非常的受欢迎,说一下lol布隆怎么加点 布隆加点顺序。lol布隆怎么加点 布隆加点顺序——lol布隆怎么加点

怎么修改qq密码 qq找回密码中心

QQ怎么修改密码?修改密码需要验证密保的。这里就演示下知道密保情况下怎么修改QQ密码。希望能大家带来帮助哈!怎么修改qq密码——工具/原料QQ密保怎么修改qq密码——步骤/方法怎么修改qq密码 1、打开开始菜单!然后进入到安全中心首页

lol武器大师出装顺序 武器大师出装s6

lol武器大师出装顺序——简介lol里武器大师一直是我比较喜欢的一个上单英雄,有着非常强的单挑能力,有突进和控制。发育好的武器大师搭配合理的出装,在后期可以1v3。说一下lol武器大师出装顺序。lol武器大师出装顺序——lol武器大师出

鼠标指针怎样修改 精 魔兽世界修改鼠标指针

大家肯定看到别人电脑上的鼠标指针都非常漂亮,我现在就分享给大家如何快速修改鼠标指针。鼠标指针怎样修改 精——工具/原料一个鼠标指针的压缩包Windows XP系统鼠标指针怎样修改 精——指针选择选项的步骤鼠标指针怎样修改 精 1

如何修改wifi密码 精 手机如何修改wifi密码

如何修改wifi密码 精——简介随着移动设备使用数量的越来越多,人们对无线网络的需求也与日俱增。很多用户在家和在办公室都想让自己的iPhone、iPad等智能终端,通过WIFI网络连接到互联网中。下面的步骤将教会你如何修改wifi密码。如

声明:《centos7引导win7,修改引导顺序。 centos7添加win7引导》为网友老佉褦陪分享!如侵犯到您的合法权益请联系我们删除