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
<code>default=0 </code><code>## 默认启动菜单 </code>
<code>timeout=5 </code><code>## 等待用户选择菜单的超时时长</code>
<code>splashimage=(hd0,0)</code><code>/meiling</code><code>.xpm.gz </code><code># 菜单的背景图片 640X480 14位索引色</code>
<code>hiddenmenu </code><code>## 是否隐藏菜单</code>
<code>password --md5 STRING </code><code>## 菜单加密功能,STRING由grub-md5-crypt 或 openssl passwd -1 -salt STRING 生成</code>
<code>title CentOS 6 (2.6.32-696.el6.i686) </code><code>## 定义菜单项的标题</code>
<code> </code><code>root (hd0,0) </code><code>## 引导设备位置 左0: 第一个磁盘设备,右0:第一个分区</code>
<code> </code><code>kernel </code><code>/vmlinuz-2</code><code>.6.32-696.el6.i686 ro root=</code><code>/dev/mapper/myvg-lv_root</code> <code>rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=myvg</code><code>/lv_swap</code> <code>KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet rd_NO_DM rd_LVM_LV=myvg</code><code>/lv_root</code> <code>rhgb quiet</code>
<code> </code><code>initrd </code><code>/initramfs-2</code><code>.6.32-696.el6.i686.img</code>
<code> </code><code>password --md5 STRING</code>
注意: 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)关机
<a href="https://s4.51cto.com/wyfs02/M00/05/73/wKiom1mlOCTTrM5MAAAvEuq7njE882.png" target="_blank"></a>
2)添加新的磁盘
<a href="https://s2.51cto.com/wyfs02/M02/A4/24/wKioL1mlOTPieKtTAAHaLdxl3NE999.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/05/73/wKiom1mlOUbARDaHAAB87CROfhU030.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/A4/24/wKioL1mlOTTTXmg1AACC3jbbPAA793.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M02/05/73/wKiom1mlOUeD5DghAABpUAJnNxQ463.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M01/A4/24/wKioL1mlOTXDl8GxAADeELrB6SY972.png" target="_blank"></a>
3)启动虚拟机
<a href="https://s5.51cto.com/wyfs02/M00/05/73/wKiom1mlOheAloQ3AAAwuvEXbJo385.png" target="_blank"></a>
4)进入命令行
<a href="https://s4.51cto.com/wyfs02/M02/05/73/wKiom1mlOuvTKB9zAAAJ__w8zd8001.png" target="_blank"></a>
5)查看磁盘
<a href="https://s2.51cto.com/wyfs02/M00/05/73/wKiom1mlO0azNe3gAAArtnOK_6E856.png" target="_blank"></a>
6)分区
<a href="https://s1.51cto.com/wyfs02/M02/A4/24/wKioL1mlO9zCkpqkAAACkkUiBxk551.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/A4/24/wKioL1mlO9zTXXjfAAAPYcC2KPA156.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/05/73/wKiom1mlO--REyqqAAAhRpXcluo600.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/A4/24/wKioL1mlO92h8cSpAAAPfm7bFcE274.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M02/05/73/wKiom1mlPILihMEiAAAKk4Qz2wg575.png" target="_blank"></a>
7)格式化
<a href="https://s5.51cto.com/wyfs02/M02/A4/24/wKioL1mlPG-geALhAAAXQN0NTk8229.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/A4/24/wKioL1mlPG-gzRGTAAAt0GEdEaw348.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/05/73/wKiom1mlPILhcEMjAAAvau8GH3A751.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/A4/24/wKioL1mlPHDxV3iMAAAJgB06m34128.png" target="_blank"></a>
8)挂载
<a href="https://s1.51cto.com/wyfs02/M01/A4/24/wKioL1mlPSGC8BwXAAADLTPmZt8032.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/05/73/wKiom1mlPTTxrTNbAAAK9RXOzwM962.png" target="_blank"></a>
9)安装grub
<a href="https://s4.51cto.com/wyfs02/M00/05/73/wKiom1mlPcDxJZtuAAAVVdxtRN0293.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/A4/24/wKioL1mlPa3QVyv7AAANxzz2H80365.png" target="_blank"></a>
10)复制bash程序及其相关的库
<a href="https://s4.51cto.com/wyfs02/M02/05/73/wKiom1mlPwmh9OSJAAADopUz7SE732.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/A4/24/wKioL1mlPvaTjfVRAAAMz6FSmlI178.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/05/74/wKiom1mlQI-CYkARAAACia7apQk245.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/A4/24/wKioL1mlQHzSkDt4AAAUFSMP7CE076.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M01/A4/24/wKioL1mlRZmCwE9KAAAPcxhUfn4969.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/A4/25/wKioL1mlSHmyoUP0AAAF4aHtTu0124.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/A4/25/wKioL1mlSQvT7zziAAAnrobENww666.png" target="_blank"></a>
11) 给出配置文件
<a href="https://s4.51cto.com/wyfs02/M02/A4/24/wKioL1mlRgzBDz7jAAAT8cTjKTg357.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/05/74/wKiom1mlRk_Dv5GBAAAOMYO0bZs797.png" target="_blank"></a>
12)同步
<a href="https://s2.51cto.com/wyfs02/M00/A4/24/wKioL1mlQO7xc0WAAAAFsyUuAMg952.png" target="_blank"></a>
13)关机
# shutdown -h now
13)查看第二个磁盘的名字
<a href="https://s2.51cto.com/wyfs02/M00/05/74/wKiom1mlQYry3kNqAACxXH-h5yI045.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/A4/24/wKioL1mlQXewcp4IAAAZMF4mRwo257.png" target="_blank"></a>
13)、新建虚拟机
<a href="https://s1.51cto.com/wyfs02/M02/05/74/wKiom1mlQniwZDQjAABMgCwlyZA401.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/A4/24/wKioL1mlQmaCzg__AABtZ2q6LJk280.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M00/A4/24/wKioL1mlQmaDRyyDAABVTmZXceg695.png" target="_blank"></a>
14)启动新建的虚拟机
<a href="https://s3.51cto.com/wyfs02/M02/05/74/wKiom1mlRrfhzCvRAAHh8fstQEo674.png" target="_blank"></a>
15)启动OK
<a href="https://s1.51cto.com/wyfs02/M02/A4/25/wKioL1mlSfnCYOQ-AAAdtskm-dc267.png" target="_blank"></a>
六、grub的修复
1、在命令行中: grub 只是stage1(MBR 512)被破坏时,才能修复.
2、开机失效: rescue模式
1、在命令行中: grub
1)备份mbr
<code>[root@localhost ~]# dd </code><code>if</code><code>=/dev/sda of=/root/mbr.bak bs=</code><code>512</code> <code>count=</code><code>1</code>
2)破坏mbr的stage1
<code>[root@localhost ~]# dd of=/dev/sda </code><code>if</code><code>=/dev/zero bs=</code><code>446</code> <code>count=</code><code>1</code>
3)用grub命令行修复
1)、进入grub命令行
<code>[root@localhost ~]# grub</code>
<code>Probing devices to guess BIOS drives. This may take a long time.</code>
<code> </code><code>GNU GRUB version </code><code>0.97</code> <code>(640K lower / 3072K upper memory)</code>
<code> </code><code>[ Minimal BASH-like line editing </code><code>is</code> <code>supported. For the first word, TAB</code>
<code> </code><code>lists possible command completions. Anywhere </code><code>else</code> <code>TAB lists the possible</code>
<code> </code><code>completions of a device/filename.]</code>
<code>grub></code>
2)、设置引导设备位置
<code>grub> root (hd0,</code><code>0</code><code>)</code>
<code>root (hd0,</code><code>0</code><code>)</code>
<code> </code><code>Filesystem type </code><code>is</code> <code>ext2fs, partition type </code><code>0x83</code>
3)、给设备安装grub
<code>grub> setup (hd0)</code>
<code>setup (hd0)</code>
<code> </code><code>Checking </code><code>if</code> <code>"/boot/grub/stage1"</code> <code>exists... no</code>
<code> </code><code>Checking </code><code>if</code> <code>"/grub/stage1"</code> <code>exists... yes</code>
<code> </code><code>Checking </code><code>if</code> <code>"/grub/stage2"</code> <code>exists... yes</code>
<code> </code><code>Checking </code><code>if</code> <code>"/grub/e2fs_stage1_5"</code> <code>exists... yes</code>
<code> </code><code>Running </code><code>"embed /grub/e2fs_stage1_5 (hd0)"</code><code>... </code><code>27</code> <code>sectors are embedded.</code>
<code>succeeded</code>
<code> </code><code>Running </code><code>"install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf"</code><code>... succeeded</code>
<code>Done.</code>
4)重启验证
<code>grub> quit </code>
<code>quit</code>
<code>[root@localhost ~]# reboot</code>
<code>[root@localhost ~]#</code>
<a href="https://s3.51cto.com/wyfs02/M01/05/72/wKiom1mlLvbT93BaAAGdxIJec1U556.png" target="_blank"></a>
3)重启
4)rescue模式救援
1)、挂载光盘 关机 --> 编辑虚拟主机 --> CD/DVD(IDE) --> 使用ISO镜像文件 --> 浏览选择DVD光盘
2)、开机进入界面 开启虚拟机
<a href="https://s5.51cto.com/wyfs02/M01/05/72/wKiom1mlMNHTV0r0AAARINf7Vc4421.png" target="_blank"></a>
保证光盘连接
3)、选择黄色标记的行或ESC,输入 linux rescue 后回车
<a href="https://s2.51cto.com/wyfs02/M02/05/72/wKiom1mlMZTydOavAAAHbovcsTU779.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/05/72/wKiom1mlMrKDBqyqAAbZxFUkE0Q440.png" target="_blank"></a>
4)、选择语言
<a href="https://s4.51cto.com/wyfs02/M00/A4/23/wKioL1mlMzPwUAfHAABDYKKTu-I694.png" target="_blank"></a>
OK
5)、键盘类型
<a href="https://s3.51cto.com/wyfs02/M01/A4/23/wKioL1mlM3CT2rCIAAA-7lIuA-s249.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M00/05/73/wKiom1mlM7WiWXAVAAAJtLnaUWg110.png" target="_blank"></a>
6)、是否需要启动网络
<a href="https://s3.51cto.com/wyfs02/M01/05/73/wKiom1mlM9Ow3WrXAAAwuTXm_Gg017.png" target="_blank"></a>
NO
7)、临时将/挂载在/mnt/sysimage中
<a href="https://s5.51cto.com/wyfs02/M01/05/73/wKiom1mlNB3h4cXXAABD0yaV8D4765.png" target="_blank"></a>
Continue
<a href="https://s3.51cto.com/wyfs02/M02/A4/23/wKioL1mlNEPy49LOAAAOYRokHrE443.png" target="_blank"></a>
8)、告知已经找到磁盘,需要使用root,运行chroot /mnt/sysimage即可
<a href="https://s2.51cto.com/wyfs02/M00/A4/23/wKioL1mlNIbxHaF5AAAmS_KoFig067.png" target="_blank"></a>
9)、
<a href="https://s3.51cto.com/wyfs02/M02/05/73/wKiom1mlNOvwrqJXAAASNHblzrY151.png" target="_blank"></a>
10)、选择第一个
<a href="https://s1.51cto.com/wyfs02/M02/A4/23/wKioL1mlNP7hx-1uAAAdjLWrkJ8444.png" target="_blank"></a>
11)、打印一个shell提示符
<a href="https://s1.51cto.com/wyfs02/M02/A4/23/wKioL1mlNSqQ47vWAAAEWEzMeOU744.png" target="_blank"></a>
12)、切换至原root根目录
<a href="https://s4.51cto.com/wyfs02/M01/05/73/wKiom1mlNXug9MOvAAAI8_YHcXQ415.png" target="_blank"></a>
13)、修复
<a href="https://s3.51cto.com/wyfs02/M00/A4/23/wKioL1mlNgSzhmo-AABdi0oxsNw871.png" target="_blank"></a>
14)、重启测试
<a href="https://s5.51cto.com/wyfs02/M01/05/73/wKiom1mlNnigpTOPAAATDz03FnU440.png" target="_blank"></a>
七、双系统安装
1、新建一个虚拟机
2、添加U盘安装windows
3、安装LInux系统
语言、键盘、主机名、时区、root的密码
分区、bootloader及默认启动项、程序包选择
安装Windows系统
3、安装Linux
选择Linux系统安装光盘
<a href="https://s2.51cto.com/wyfs02/M02/A4/2C/wKioL1mmG8bjg4rjAADSN0aJu2g769.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/A4/2C/wKioL1mmHgjDAvYvAAF3t-sHUQ0545.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/05/7C/wKiom1mmHhygsQzfAABDSnkCA1g685.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/A4/2C/wKioL1mmHBfiXlQ8AAALvWVonN4742.png" target="_blank"></a>
选择安装Linux
<a href="https://s4.51cto.com/wyfs02/M01/A4/2C/wKioL1mmHE-RiYTmAAcW_g9u6RQ364.png" target="_blank"></a>
路过
<a href="https://s5.51cto.com/wyfs02/M01/A4/2C/wKioL1mmHIShaL7mAAAYaXlIkcA848.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/A4/2C/wKioL1mmHkKxR7bwAAAFPIWcbxs907.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/A4/2C/wKioL1mmHsPgIib5AAJcC7Qo9FE616.png" target="_blank"></a>
设定安装时的语言
<a href="https://s2.51cto.com/wyfs02/M01/A4/2C/wKioL1mmHsPzoUMxAAB2XB1-nPQ237.png" target="_blank"></a>
设定键盘语言
<a href="https://s2.51cto.com/wyfs02/M01/05/7C/wKiom1mmHtfxuOAiAABkM2vf9pg092.png" target="_blank"></a>
选择基本存在设备
<a href="https://s2.51cto.com/wyfs02/M02/05/7C/wKiom1mmHtiBqz4gAAC4VD0fRz0430.png" target="_blank"></a>
设定主机名
<a href="https://s5.51cto.com/wyfs02/M01/A4/2D/wKioL1mmH2yid4vyAABWORALJnQ569.png" target="_blank"></a>
设定时区
<a href="https://s5.51cto.com/wyfs02/M00/05/7C/wKiom1mmH4HBHrzAAAIBHLeoaAA994.png" target="_blank"></a>
设定ROOT密码
<a href="https://s1.51cto.com/wyfs02/M01/A4/2D/wKioL1mmH23Cnwf3AAB3p0KBWIc691.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/05/7C/wKiom1mmH4Gi3m_fAAA0u1On544146.png" target="_blank"></a>
自定义分区
<a href="https://s1.51cto.com/wyfs02/M02/A4/2D/wKioL1mmH23RgtLgAAEZ6pvv45k025.png" target="_blank"></a>
自定中,不要编辑/dev/sda1,(XP系统盘)
默认引导设定
<a href="https://s1.51cto.com/wyfs02/M01/05/7C/wKiom1mmIhniRzqYAADDUAktkY8537.png" target="_blank"></a>
选择自定义最小化安装
<a href="https://s1.51cto.com/wyfs02/M00/A4/2D/wKioL1mmIgXBJpswAADjuQPJdkY640.png" target="_blank"></a>
安装过程
<a href="https://s3.51cto.com/wyfs02/M02/05/7C/wKiom1mmIlDDDuP6AAKyIcWtNHM242.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/A4/2E/wKioL1mmJtuxvVOuAAKhxdtYYhs183.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/05/7E/wKiom1mmK66BN0ZeAADoEOdj4lA730.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/A4/2F/wKioL1mmK5rzs9N4AAAbMl0Roj0795.png" target="_blank"></a>
起动CentOS
<a href="https://s2.51cto.com/wyfs02/M00/05/7E/wKiom1mmLMOSAShAAAKZhe7-5LI848.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/A4/2F/wKioL1mmLK_xLwAkAAAeCqithuI687.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/05/7E/wKiom1mmLMODAMyBAAAHg6OCfLY077.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/05/7E/wKiom1mmLMOx-v01AACPRfiJ5jE108.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/A4/2F/wKioL1mmLLDCzQFNAABuJdX6VVc432.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/05/7E/wKiom1mmLMSR7uzgAAAkn_4BXDQ492.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/A4/2F/wKioL1mmLLDRCVgvAAENjgTRxLk896.png" target="_blank"></a>
账号: root
密码: 键入之前设定的密码
<a href="https://s5.51cto.com/wyfs02/M01/A4/2F/wKioL1mmLULi5oeCAABkRWExcTE582.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/A4/2F/wKioL1mmLYnQ2_9iAAa6oRXnQ74642.png-wh_500x0-wm_3-wmp_4-s_2467253113.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/05/7E/wKiom1mmMBHhlf4zAAAx583-ov4205.png" target="_blank"></a>
重启测试Windows
<a href="https://s1.51cto.com/wyfs02/M02/05/7E/wKiom1mmLw7gV9XFAAbYbH-ic5s406.png-wh_500x0-wm_3-wmp_4-s_2173309879.png" target="_blank"></a>
本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1960959,如需转载请自行联系原作者