设为首页 收藏本站
查看: 464|回复: 0

[经验分享] Linux操作系统启动管理器-grub

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 14:49:23 | 显示全部楼层 |阅读模式
一、GRUB简介
    GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

=========================================================================================

二、GRUB的组成
grub分为三个部分

    第一部分被放在MBR中前446字节里(MBR共512字节,中间54字节存放磁盘分区信息,最后2字节判断MBR是否损坏),主板启动时首先会读取MBR里的内容,所以grub是系统内核启动之前就启动的。

    第二部分放在MBR之后的扇区中,存放的是文件系统的驱动程序,可以在系统内启动分区没挂载的情况下读取磁盘内里的指定内容

    第三部分就是存在磁盘分区中的内容,里面是grub的配置信息,内核文件,这里就是gurb的根分区

==============================================================================


三、GRUB的功能

1、提供菜单,并提供交互式接口(e: 进入编辑模式 在内核后添加single,后按b就可以进入单用户模式、c:进入命令行接口模式)

2、选择要启动的内核或系统(允许传递引导参数给内核,选择界面可隐藏)

3、为编辑功能提供保护机制(选择运行指定的内核得先输入密码、使用e命令得先输入密码)

=============================================================================  


四、 grub的两种形式(使用虚拟机演示)

1、图形模式
     系统启动之前开始出现倒数秒数的时候,按esc可以进入grub界面(一般是隐藏的,会启动默认的系统)选择我们想要启动的不同系统。我这里只有一个系统,所以只有一项可以选
wKiom1XpCenxwyxWAAEomjK1Y-w723.jpg
按e进入编辑模式

wKioL1XpDFHijgokAAGtxQZM1nk781.jpg
按上下选择要编辑的项,按e对其编辑,按enter键保存编辑,按o新添一行,d删除此行,b启动系统
2、命令行模式   

  系统启动前倒数秒数的时候按esc进入图形界面,之后按c键会进入命令行模式
wKioL1XpDOXy8tS0AAEQPs5vn2E733.jpg
wKiom1XpEGPDgnYBAAG16mprjOI435.jpg
grub的命令行接口 :
help:获得帮助列表  
root  (hd#,#) 设置哪儿块磁盘为根         
kernel /path/to/kernel_file :设置本次启动时用到的内核文件  vmlinuz(z表示压缩的意思);额外还可以添加许多内核支持使用的cmdline参数
initrd /path/to/initrd_file : 设定为选定的内核提供额外文件的ramdisk;要和内核版本一样
boot:引导启动选定的内核
==========================================================================================

五、GRUB的配置文件: /boot/grub/grub.conf
配置项:支持命令行补全(tab)
default=#: //设定默认启动的菜单项
timeout=#:  //指定菜单项等待选项选择的时长
splashimage=(hd#,#)/path/to/xpm_pic_file :   //指明菜单背景图片所在路径(gimp 640*680)
hiddenmenu :     //隐藏菜单
password [--md5] string :   //菜单编辑认证
title TITLE :           //定义菜单项“标题”
          root (hd#,#): //grub查找stage2及kernel文件所在设备分区;为grub的“根”
        kernel /path/to/vmlinuz_file [parameters]:  //启动内核并设置额外参数
        initrd /path/to/initramfs_file:   //内核匹配的ramfs文件
          password [--md5] string :    //启动选定的内核或操作系统时进行认证 【grub-md5-crypt 生成密码】
=========================================================================================

六、安装GRUB命令

使用grub-install命令

    # grub-install [--root-directory=DIR] DEVICE

     --root-directory=指定的路径必须是内核及initrd文件所在的分区的挂载点的父目录,且此挂载点必须叫boot

========================================================================================

七、实例,安装GRUB至令一个磁盘,并使用这个磁盘启动一个带bash的linux的系统
1、给虚拟机新建1个20G的磁盘,过程图解:

wKiom1XpE8vi8x2TAAHYpeGPkUs795.jpg
wKioL1XpFfCTAiaVAAEfvSQ0bco852.jpg
wKiom1XpE8ySORt9AAFex52Y1-g864.jpg
wKioL1XpFfCyKD3LAAGdWr91wzY523.jpg
wKiom1XpE8zA7rL_AAE3xk2MVu4445.jpg
wKioL1XpFfGSzYqeAAFTp1jsuYw655.jpg

2、启动虚拟机,并给新的磁盘分3个区
/dev/sdb1(/boot):100M  文件系统使用ext4
/dev/sdb2(swap):2G
/dev/sdb3(/):5G  文件系统使用ext4
1
[iyunv@pyhon ~]# fdisk /dev/sdb         //给磁盘分区,分区过程如下图所示(红框标识)



wKioL1XpGOqzh1BEAAUr6LtBchU964.jpg
wKiom1XpFzSSIBwAAAGe84VVArM591.jpg //让内核读取磁盘分区
1
2
3
[iyunv@pyhon ~]# mke2fs -t ext4 /dev/sdb1      //格式化分区,文件系统为ext4
[iyunv@pyhon ~]# mke2fs -t ext4 /dev/sdb3
[iyunv@pyhon ~]# mkswap /dev/sdb2



至此磁盘分区准备完成!!

3、创建/boot目录,挂载/dev/sdb1,具体操作过程如下
1
2
3
[iyunv@pyhon ~]# mkdir /mnt/boot
[iyunv@pyhon ~]# mount /dev/sdb1 /mnt/boot/
[iyunv@pyhon ~]# grub-install --root-directory=/mnt /dev/sdb



wKioL1XpHMjyVaDIAAEeqhw9XuY480.jpg
wKiom1XpGuLyrS-WAAMV6WoBdg4945.jpg
1
2
[iyunv@pyhon ~]# cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz
[iyunv@pyhon ~]# cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img



wKiom1XpJLqz6TURAACfl7QDa9U811.jpg

4、创建/sysroot目录,挂载/dev/sdb3,具体操作过程如下
1
2
3
4
[iyunv@pyhon ~]# mkdir /mnt/sysroot
[iyunv@pyhon ~]# mount /dev/sdb3 /mnt/sysroot/
[iyunv@pyhon ~]# cd /mnt/sysroot/
[iyunv@pyhon sysroot]# mkdir -pv bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var



wKiom1XpHSnxfTy4AAHqZxU0WuY528.jpg
1
2
[iyunv@pyhon sysroot]# cp /bin/bash /mnt/sysroot/bin/
[iyunv@pyhon sysroot]# ldd /bin/bash



wKioL1XpIDvzABRnAADYyexS6ZI569.jpg
1
2
3
4
[iyunv@pyhon sysroot]# cp /lib64/libtinfo.so.5 /mnt/sysroot/lib64/   
[iyunv@pyhon sysroot]# cp /lib64/libdl.so.2 /mnt/sysroot/lib64/
[iyunv@pyhon sysroot]# cp /lib64/libc.so.6 /mnt/sysroot/lib64/
[iyunv@pyhon sysroot]# cp /lib64/ld-linux-x86-64.so.2 /mnt/sysroot/lib64/




将ls及依赖的库文件复制到/mnt/sysroot目录下面对应的目录中,测试如下
wKiom1XpIGGxDCSfAAWU7MpErmo652.jpg

5、修改/mnt/boot/grub/grub.conf文件,并关闭此虚拟机

wKioL1XpKtfiNSO9AAC5cslv8fg282.jpg
1
2
3
4
[iyunv@pyhon ~]# sync
[iyunv@pyhon ~]# sync
[iyunv@pyhon ~]# sleep 10
[iyunv@pyhon ~]# shutdown -h now




6、将磁盘拆下来放到一个新的虚拟机上,测试如下
wKioL1XpKmOg4sskAADa5DHfiRQ492.jpg
wKiom1XpKD_jQdI6AAFVfagSNho953.jpg
wKioL1XpKmTixTvxAAGblQM6Rgg684.jpg
wKioL1XpKmTiGIRiAAGVyHd0Vc8081.jpg
wKiom1XpKECRTYaCAAKHz9yuUuE347.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110221-1-1.html 上篇帖子: linux常用进程管理工具及查看 下篇帖子: Linux Directory commands: mkdir, rmdir, tree dirname,basename 操作系统 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表