标签:linux
Grub基础、工作流程、grub配置文件、grub功能、grub内置命令行接口
grub安装、grub修复
双系统安装(先Windows后Linux,以免windows NTloader会覆盖Linux loader)
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
配置格式
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)关机
2)添加新的磁盘
3)启动虚拟机
4)进入命令行
5)查看磁盘
6)分区
7)格式化
8)挂载
9)安装grub
10)复制bash程序及其相关的库
11) 给出配置文件
12)同步
13)关机
# shutdown -h now
13)查看第二个磁盘的名字
13)、新建虚拟机
14)启动新建的虚拟机
15)启动OK
六、grub的修复
1、在命令行中: grub 只是stage1(MBR 512)被破坏时,才能修复.
2、开机失效: rescue模式
1、在命令行中: grub
1)备份mbr
[root@localhost ~]# dd if=/dev/sda of=/root/mbr.bak bs=512 count=1
2)破坏mbr的stage1
[root@localhost ~]# dd of=/dev/sda if=/dev/zero bs=446 count=1
3)用grub命令行修复
1)、进入grub命令行
[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)、设置引导设备位置
grub> root (hd0,0) root (hd0,0) Filesystem type is ext2fs, partition type 0x83
3)、给设备安装grub
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)重启验证
grub> quit quit [root@localhost ~]# reboot [root@localhost ~]#
2、开机失效: rescue模式
1)备份mbr
[root@localhost ~]# dd if=/dev/sda of=/root/mbr.bak bs=512 count=1
2)破坏mbr的stage1
[root@localhost ~]# dd of=/dev/sda if=/dev/zero bs=446 count=1
3)重启
4)rescue模式救援
1)、挂载光盘 关机 --> 编辑虚拟主机 --> CD/DVD(IDE) --> 使用ISO镜像文件 --> 浏览选择DVD光盘
2)、开机进入界面 开启虚拟机
保证光盘连接
3)、选择黄色标记的行或ESC,输入 linux rescue 后回车
4)、选择语言
OK
5)、键盘类型
OK
6)、是否需要启动网络
NO
7)、临时将/挂载在/mnt/sysimage中
Continue
8)、告知已经找到磁盘,需要使用root,运行chroot /mnt/sysimage即可
OK
9)、
10)、选择第一个
11)、打印一个shell提示符
12)、切换至原root根目录
13)、修复
14)、重启测试
双系统安装
1、新建一个虚拟机
2、添加U盘安装windows
3、安装Linux
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1960959
标签:linux
原文地址:http://sonlich.blog.51cto.com/12825953/1960959