码迷,mamicode.com
首页 > 其他好文 > 详细

GRUB应用

时间:2016-01-09 18:44:52      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:grub   grub应用   

                           GRUB应用

GRUB:grand uniform bootloader:统一引导加载器,找到操作系统所在的磁盘,并把内核加载到内存,将控制器转交给内核的程序

GRUB 0.X

 GRUB 1.X:就是通常所说的GRUB2

功能:就是MBR中的前 446 个字节,是BooTLoader的一种,提供一个菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压展开,把系统控制权移交给内核,主要是由device.mapmenulststage1,stage2,以及一系列的stage1_5组成。

 

 

技术分享

device.map:存放的是内核文件的根分区

menu.lis:是grub.conf的链接文件,设置了可以选择的内核菜单,存放于stage2

stage:用于grub引导程序过大,所以分2段引导,第一段存放在MBR中,第二段存放于内核文件系统中,第一段引导完成后可以找到第二段,但是,第二段是存放于内核文件系统中的。当stage1运行完成时还没有格式化文件系统,此时要运行stage2需要借助于stage1_5 stage1_5通常位于 stage1 字段后的 63 个扇区。由于stage2 在内存中存放可以使用的文件系统不确定,所以这就是有多个 stage1_5 的原因了。

GRUB配置文件:/boot/grub/grub.conf  链接文件到--->/etc/grub.conf

  1default=#:默认启动的菜单项,菜单项titile编号从0开始,操作系统个数,

  2,配置timeout=5,默认等待用户选择的时长;

 2,splashimge=(hd#,#)/path/to/xpm_pic_file 操作系统选择默认背景图片(xpm.gz格式)

  3,hiddenmenu:隐藏;只能看到进度条,看不不到加载的每条内容

       a可选:  password [--md5] string:设置密码,菜单编辑认证;

  4,title CentOS (2.6.32-358.el6.x86_64)    # 标题名,用户可自定义 

    root (hd0,0)    # 指定 grub 的根位置 

    # 指定 kernel 文件的位置,还要指出root(系统启动后)的位置,挂载方式 ro,这项很关键。 

    # 加载后会启动 init 进程。 

    kernel/vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DMLANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto rd_LVM_LV=vg0/root KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto quiet rhgb quiet 

    # 在内核启动过程中装载根文件系统时有用 

    initrd/initramfs-2.6.32-358.el6.x86_64.img                       

 b,可选:  password [--md5] string:启动选定的内核或操作系统时认证;

 

initramfs文件说明:initramfs-2.6.32-358.el6.x86_64.img :

  initramfs 是以 gzip 压缩的 cpio 格式的文件。内核启动时将他作为一个临时的根文件系统。 

  grub stage2 initrd加载到内存里,然后将其中的内容释放到内存中, 

  内核便去执行init脚本,这时内核将控制权交给了init文件处理。 

  init 它也主要是加载各种存储介质相关的设备驱动程序。当所需的驱动程序加载完后, 

  会创建一个根设备,然后将根文件系统rootfs以只读的方式挂载。 

  这一步结束后,释放未使用的内存,转换到真正的根文件系统上面去,同时运行/sbin/init程序, 

  执行系统的1号进程。此后系统的控制权就全权交给/sbin/init进程了。

   技术分享

initramfs的制作:

可以使用 dircut 命令,用法如下: 

只有在 initramfs文件损毁的时候会使用到 

  dracut /mnt/initramfs-`uname-r`.img `uname -r` 

制作完成后查看命令:
            du -sh/mnt/initramfs-2.6.32-358.el6.x86_64.img

  du -sh /boot/initramfs-2.6.32-358.el6.x86_64.img

GRUB的功能:

    1)提供菜单,并提供交互式接口

               

e: 进入编辑模式

技术分享

 

2)选择要启动的内核或系统

    可以通过 grub 向内核传递参数修改root 密码,使用 e 选项,让内核进入单用户模式即可通过命令修改密码。

3)为编辑功能提供保护机制。

grub-md5-crypt  

Password:  

Retype password:  

$1$Mp7Rp1$l2wzOILNUqpUhAR7zXvQb0 

# 上面是生成的加密字符串 

# 然后将信息加入到 grub.conf 文件中,格式如下: 

password --md5 $1$Mp7Rp1$l2wzOILNUqpUhAR7zXvQb0 

# 当然加入 grub.conf 文件的位置不同,加密效果也不一样。 

具体加密位置见GRUB配置文件a,b两个可选加密位置。

 

GRUB安装方法:

  gurb-install命令安装grub

   grub-install[--root-directory=/path/to/somewhere] DEVICE

           mkdir /mnt/boot

           mount /dev/sdb1 /mnt/boot

           grub-install --root-directory=/mnt /dev/sdb

技术分享

 

VMware 虚拟机下grub制作:

 第一步:准备好块新磁盘,分2 个区

      技术分享

 第二步:模拟启动时的boot目录,和根目录,并挂载。如下

 技术分享

 第三步:制作 grub,并生成 grub 的配置文件

制作grub

  技术分享

 

 

 拷贝内核文件和initramfs 文件到 /mnt/boot 目录下,并生成 grub.conf 文件

技术分享

 第四步: 生成根文件系统

技术分享

 第五步:拷贝使用命令和库到对应根目录下

技术分享

技术分享

技术分享


注意:文件复制完成后,修改对应/boot/grub/gurb.conf文件中root=sda2

技术分享

 将刚才的磁盘镜像作为另一个虚拟机的启动盘。


技术分享

技术分享


本文出自 “前进的轨迹” 博客,请务必保留此出处http://lisoy79.blog.51cto.com/10836537/1733269

GRUB应用

标签:grub   grub应用   

原文地址:http://lisoy79.blog.51cto.com/10836537/1733269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!