+++++++grub应用及双系统共存

简介:

Grub基础、工作流程、grub配置文件、grub功能、grub内置命令行接口

grub安装、grub修复、

双系统安装(先Windows后Linux,以免windows NTloader会覆盖Linux loader)

splashimage修改请见上篇


GRUB Grand Uniform Bootloader

    CentOS5,6 grub1 0系,设备或分区编号从0开始

    CentOS7 grub2 1系,设备或分区编号从1开始


CentOS5,6 grub应用:


一、grub的工作流程

stage1 mbr中    

stage1.5 mbr之后的扇区,存储stage2所在分区的驱动

stage2 提供菜单,加载内核和ramdisk至内存,移交控制权


二、grub配置文件

通常boot(stage2)在一个普通的分区上:

boot为一个独立的分区, /可以为普通分区或lvm访问boot通过挂载在根中实现

内核: kernel /vmlinuz, initrd /initramfs


boot和根在同一个分区,/必须为普通分区

内核: kernel /boot/vmlinuz, initrd /boot/initramfs

    

配置路径

/etc/grub.conf -> ../boot/grub/grub.conf

/boot/grub/menu.lst -> ./grub.conf


配置格式

1
2
3
4
5
6
7
8
9
10
default=0             ## 默认启动菜单 
timeout=5             ## 等待用户选择菜单的超时时长
splashimage=(hd0,0) /meiling .xpm.gz      # 菜单的背景图片 640X480 14位索引色
hiddenmenu                  ## 是否隐藏菜单
password --md5 STRING            ## 菜单加密功能,STRING由grub-md5-crypt 或 openssl passwd -1 -salt STRING 生成
title CentOS 6 (2.6.32-696.el6.i686)    ## 定义菜单项的标题
     root (hd0,0)             ## 引导设备位置 左0: 第一个磁盘设备,右0:第一个分区
     kernel  /vmlinuz-2 .6.32-696.el6.i686 ro root= /dev/mapper/myvg-lv_root  rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=myvg /lv_swap   KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet rd_NO_DM rd_LVM_LV=myvg /lv_root  rhgb quiet
     initrd  /initramfs-2 .6.32-696.el6.i686.img
     password --md5 STRING

注意: root,kernel,initd格式的缩进    


三、grub的功能

提供菜单 : tile TITLE

加载用户选择的kernel及ramdisk : kernel path parameters , initrd path

为菜单提供保护机制(kernel和菜单编辑认证) : password --md5 STRING


四、grub的内置命令行接口

root (hd#,#)  指定引导设备在哪个设备的哪个分区上。#从0开始,表示1. 


kernel /vmlinuz PARAMETERS

  当stage1.5找到stage2时,内核只识别stage2所在的分区,此分区为/,所以分区的vmlinuz路径为,/vmlinuz

PARAMETERS:

  ro              以只读方式挂载root=PATH指明的路径的根

  root=<路径>        指明root的位置

  quiet            静默模式

  selinux=0        不启动selinux

  init=/path/to/somefile 开机后,init程序为哪个。默认为/sbin/init  

  1,s,S,single       单用户模式

  <更多参数: google: kernel command line parameters>

  

initrd /initramfs 指定initramfs的路径


五、grub的安装

安装grub: grub-install命令 重新安装grub stage1,1.5,2


grub-install命令

grub-install --root-directory=DIR DEIVCE

    --root-directory=DIR 指向boot目录的上一级目录

    DEVICE 给哪个设备安装grub


1)关机

wKiom1mlOCTTrM5MAAAvEuq7njE882.png


2)添加新的磁盘

wKioL1mlOTPieKtTAAHaLdxl3NE999.png

wKiom1mlOUbARDaHAAB87CROfhU030.png

wKioL1mlOTTTXmg1AACC3jbbPAA793.png

wKiom1mlOUeD5DghAABpUAJnNxQ463.png

wKioL1mlOTXDl8GxAADeELrB6SY972.png


3)启动虚拟机

wKiom1mlOheAloQ3AAAwuvEXbJo385.png


4)进入命令行

wKiom1mlOuvTKB9zAAAJ__w8zd8001.png


5)查看磁盘

wKiom1mlO0azNe3gAAArtnOK_6E856.png


6)分区

wKioL1mlO9zCkpqkAAACkkUiBxk551.png

wKioL1mlO9zTXXjfAAAPYcC2KPA156.png

wKiom1mlO--REyqqAAAhRpXcluo600.png

wKioL1mlO92h8cSpAAAPfm7bFcE274.png

wKiom1mlPILihMEiAAAKk4Qz2wg575.png


7)格式化

wKioL1mlPG-geALhAAAXQN0NTk8229.png

wKioL1mlPG-gzRGTAAAt0GEdEaw348.png

wKiom1mlPILhcEMjAAAvau8GH3A751.png

wKioL1mlPHDxV3iMAAAJgB06m34128.png


8)挂载

wKioL1mlPSGC8BwXAAADLTPmZt8032.png

wKiom1mlPTTxrTNbAAAK9RXOzwM962.png


9)安装grub

wKiom1mlPcDxJZtuAAAVVdxtRN0293.png

wKioL1mlPa3QVyv7AAANxzz2H80365.png


10)复制bash程序及其相关的库

wKiom1mlPwmh9OSJAAADopUz7SE732.png

wKioL1mlPvaTjfVRAAAMz6FSmlI178.png

wKiom1mlQI-CYkARAAACia7apQk245.png

wKioL1mlQHzSkDt4AAAUFSMP7CE076.png

wKioL1mlRZmCwE9KAAAPcxhUfn4969.png

wKioL1mlSHmyoUP0AAAF4aHtTu0124.png

wKioL1mlSQvT7zziAAAnrobENww666.png

11) 给出配置文件

wKioL1mlRgzBDz7jAAAT8cTjKTg357.png

wKiom1mlRk_Dv5GBAAAOMYO0bZs797.png


12)同步

wKioL1mlQO7xc0WAAAAFsyUuAMg952.png


13)关机

# shutdown -h now


13)查看第二个磁盘的名字

wKiom1mlQYry3kNqAACxXH-h5yI045.png

wKioL1mlQXewcp4IAAAZMF4mRwo257.png


13)、新建虚拟机

wKiom1mlQniwZDQjAABMgCwlyZA401.png

wKioL1mlQmaCzg__AABtZ2q6LJk280.png

wKioL1mlQmaDRyyDAABVTmZXceg695.png


14)启动新建的虚拟机

wKiom1mlRrfhzCvRAAHh8fstQEo674.png


15)启动OK

wKioL1mlSfnCYOQ-AAAdtskm-dc267.png



六、grub的修复

1、在命令行中: grub 只是stage1(MBR 512)被破坏时,才能修复. 

2、开机失效: rescue模式


1、在命令行中: grub

1)备份mbr

1
[root@localhost ~]# dd  if =/dev/sda of=/root/mbr.bak bs= 512  count= 1


2)破坏mbr的stage1

1
[root@localhost ~]# dd of=/dev/sda  if =/dev/zero bs= 446  count= 1


3)用grub命令行修复 

1)、进入grub命令行

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# grub
Probing devices to guess BIOS drives. This may take a long time.
 
 
     GNU GRUB  version  0.97   (640K lower / 3072K upper memory)
 
  [ Minimal BASH-like line editing  is  supported.  For the first word, TAB
    lists possible command completions.  Anywhere  else  TAB lists the possible
    completions of a device/filename.]
grub>


2)、设置引导设备位置

1
2
3
grub> root (hd0, 0 )
root (hd0, 0 )
  Filesystem type  is  ext2fs, partition type  0x83


3)、给设备安装grub

1
2
3
4
5
6
7
8
9
10
grub> setup (hd0)
setup (hd0)
  Checking  if  "/boot/grub/stage1"  exists... no
  Checking  if  "/grub/stage1"  exists... yes
  Checking  if  "/grub/stage2"  exists... yes
  Checking  if  "/grub/e2fs_stage1_5"  exists... yes
  Running  "embed /grub/e2fs_stage1_5 (hd0)" ...   27  sectors are embedded.
succeeded
  Running  "install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf" ... succeeded
Done.


4)重启验证

1
2
3
4
grub> quit  
quit
[root@localhost ~]# reboot
[root@localhost ~]#

wKiom1mlLvbT93BaAAGdxIJec1U556.png


2、开机失效: rescue模式

1)备份mbr

1
[root@localhost ~]# dd  if =/dev/sda of=/root/mbr.bak bs= 512  count= 1


2)破坏mbr的stage1

1
[root@localhost ~]# dd of=/dev/sda  if =/dev/zero bs= 446  count= 1


3)重启

wKiom1mlMBXgCxwZAAAkxL8nOwg878.png


4)rescue模式救援

1)、挂载光盘 关机 --> 编辑虚拟主机 --> CD/DVD(IDE) --> 使用ISO镜像文件 --> 浏览选择DVD光盘


2)、开机进入界面 开启虚拟机 

wKiom1mlMNHTV0r0AAARINf7Vc4421.png

保证光盘连接



3)、选择黄色标记的行ESC,输入 linux rescue 后回车

wKiom1mlMZTydOavAAAHbovcsTU779.png

wKiom1mlMrKDBqyqAAbZxFUkE0Q440.png


4)、选择语言

wKioL1mlMzPwUAfHAABDYKKTu-I694.png

OK


5)、键盘类型

wKioL1mlM3CT2rCIAAA-7lIuA-s249.png

OK

wKiom1mlM7WiWXAVAAAJtLnaUWg110.png


6)、是否需要启动网络

wKiom1mlM9Ow3WrXAAAwuTXm_Gg017.png

NO 


7)、临时将/挂载在/mnt/sysimage中

wKiom1mlNB3h4cXXAABD0yaV8D4765.png

Continue

wKioL1mlNEPy49LOAAAOYRokHrE443.png


8)、告知已经找到磁盘,需要使用root,运行chroot /mnt/sysimage即可

wKioL1mlNIbxHaF5AAAmS_KoFig067.png

OK


9)、

wKiom1mlNOvwrqJXAAASNHblzrY151.png


10)、选择第一个

wKioL1mlNP7hx-1uAAAdjLWrkJ8444.png


11)、打印一个shell提示符

wKioL1mlNSqQ47vWAAAEWEzMeOU744.png


12)、切换至原root根目录

wKiom1mlNXug9MOvAAAI8_YHcXQ415.png


13)、修复

wKioL1mlNgSzhmo-AABdi0oxsNw871.png

14)、重启测试

wKiom1mlNnigpTOPAAATDz03FnU440.png


wKiom1mlLvbT93BaAAGdxIJec1U556.png




七、双系统安装

1、新建一个虚拟机

2、添加U盘安装windows

3、安装LInux系统

    语言、键盘、主机名、时区、root的密码

    分区、bootloader及默认启动项、程序包选择


安装Windows系统

wKioL1mmG3HyrOZKAALQJPalvJo130.pngwKioL1mmG4ODxiFZAAUv3yCtrvk932.png

3、安装Linux

选择Linux系统安装光盘

wKioL1mmHgjDAvYvAAF3t-sHUQ0545.png

wKiom1mmHhygsQzfAABDSnkCA1g685.png

进入后ESC,选择CDROM

wKioL1mmHBfiXlQ8AAALvWVonN4742.png


选择安装Linux

wKioL1mmHE-RiYTmAAcW_g9u6RQ364.png


路过

wKioL1mmHIShaL7mAAAYaXlIkcA848.png

wKioL1mmHkKxR7bwAAAFPIWcbxs907.png


wKioL1mmHsPgIib5AAJcC7Qo9FE616.png


设定安装时的语言

wKioL1mmHsPzoUMxAAB2XB1-nPQ237.png


设定键盘语言

wKiom1mmHtfxuOAiAABkM2vf9pg092.png


选择基本存在设备

wKiom1mmHtiBqz4gAAC4VD0fRz0430.png


设定主机名

wKioL1mmH2yid4vyAABWORALJnQ569.png


设定时区

wKiom1mmH4HBHrzAAAIBHLeoaAA994.png


设定ROOT密码

wKioL1mmH23Cnwf3AAB3p0KBWIc691.png

wKiom1mmH4Gi3m_fAAA0u1On544146.png

自定义分区

wKioL1mmH23RgtLgAAEZ6pvv45k025.png



自定中,不要编辑/dev/sda1,(XP系统盘)


默认引导设定

wKiom1mmIhniRzqYAADDUAktkY8537.png


选择自定义最小化安装

wKioL1mmIgXBJpswAADjuQPJdkY640.png


安装过程 

wKiom1mmIlDDDuP6AAKyIcWtNHM242.png

wKioL1mmJtuxvVOuAAKhxdtYYhs183.png

wKiom1mmK66BN0ZeAADoEOdj4lA730.png

wKioL1mmK5rzs9N4AAAbMl0Roj0795.png



起动CentOS

wKiom1mmLMOSAShAAAKZhe7-5LI848.png

wKioL1mmLK_xLwAkAAAeCqithuI687.png

wKiom1mmLMODAMyBAAAHg6OCfLY077.png

wKiom1mmLMOx-v01AACPRfiJ5jE108.png

wKioL1mmLLDCzQFNAABuJdX6VVc432.png

wKiom1mmLMSR7uzgAAAkn_4BXDQ492.png

wKioL1mmLLDRCVgvAAENjgTRxLk896.png


账号: root

密码: 键入之前设定的密码


wKioL1mmLULi5oeCAABkRWExcTE582.png


wKioL1mmLYnQ2_9iAAa6oRXnQ74642.png-wh_50

wKiom1mmMBHhlf4zAAAx583-ov4205.png


重启测试Windows

  • wKiom1mmLw7gV9XFAAbYbH-ic5s406.png-wh_50










本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1960959,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
Linux Windows
【Linux】grub命令行引导进入windows系统
【8月更文挑战第20天】在Linux中通过GRUB命令行引导Windows的方法包括:1) 进入GRUB命令行模式,启动时按`c`键;2) 使用`ls`查找含Windows引导文件的分区,如`bootmgr`或`ntldr`;3) 设置根设备`root=(hd0,msdos3)`与链加载器`chainloader +1`;4) 输入`boot`命令启动Windows。请注意实际步骤可能因系统配置而异。
412 2
|
Ubuntu 开发工具 Windows
修改GRUB中Ubuntu和Windows双系统的启动顺序
修改GRUB中Ubuntu和Windows双系统的启动顺序
805 0
修改GRUB中Ubuntu和Windows双系统的启动顺序
|
Linux Windows
双系统删除Linux进入Grub无法启动Windows的解决方案
双系统删除Linux进入Grub无法启动Windows的解决方案
|
Linux Windows
16.12 Linux多系统并存的GRUB配置文件
其实每个系统都是用 title 字段来表示的,如果在服务器中又多了一个 Windows 系统,那么在 GRUB 的配置文件中只不过就是多了一个 title 字段而已。不过要注意,我们一般建议先安装 Windows 系统,后安装 Linux 系统。
246 0
16.12 Linux多系统并存的GRUB配置文件
|
编解码 Linux 开发工具
Linux好玩的:给GRUB2引导程序给个背景吧
在默认情况下Centos/RedHat系列的Linux操作系统都没有配置grub背景,当做服务器使用的话可能会无所谓,如果自己使用的话,总是想着让它看起来美丽一些
Linux好玩的:给GRUB2引导程序给个背景吧