Linux系统引导grub分析


一、Windows与Linux的引导
    操作系统的启动过程基本如下:
    BIOS----->Bootloader------>Kernel------>init------->service----->login----bash

    Windows的引导原理如下:
    一个块硬盘中分C、D两个盘,C盘(第一块分区)中讲集成一块PBR的引导区域,硬盘中仍然独立存在MBR的引导区域。Windows实现的是通过MBR引导跳转到C盘中的PBR引导,从而引导Windows的操作系统。
    Linux的引导原理:
    Linux一般通过grub进行引导,grub存在于/boot分区内,grub可以实现啊选择引导。
    如果是双系统,可以先装Windows建立Windows的引导机制,然后安装Linux,设置Linux的grub阻断Windows的自动跳转引导PBR,使其选择引导Windows的PBR和Linux的init。
二、Linux中的grub分析
     与grub相关的重要文件:
     /boot/grub/grub.conf(menu.lst)
     /boot/grub/stage1    (512字节固定)
                      stage1_5_ext3
                      stage2
      stage1和stage1_5出现问题:grub-install /dev/sda   修复
      stage2出现问题需要用关盘启动来重新安装,三部曲:
      cdrom
      Linux rescue
      chroot /mnt/sysimage
      grub.conf找不到:重新建立grub.conf
     
      vim /boot/grub/grub.conf
      引导中最重要的三段命令:
        root (hd0,0)      到第一个硬盘的第一个分区(boot分区)
        kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/  告诉kernel /boot下的vmlinuz是内核
                                                                                     ro代表只读,并且root根目录是/ 也可以写成/dev/sda2
                                                                                     起到承上启下的作用
        initrd /initrd-2.6.18-194.el5.img    将跟kernel相关的驱动放在initrd下
      根分区和驱动没有指定正确都无法引导
      e2label /dev/sda2 可以查看卷标,root=/LABEL=/ 中 /就是卷标,也就是根目录的意思
      在grub中可以加密码,也就是我们在安装系统的时候提示的grub的密码,可以在grub.conf中进行设置,写入哪一行
      就在哪一行执行时提示密码来进行对系统的保护,格式为:
      password --md5  *****
      如果不加md5 则密码是以明文的形式显示出来的
     获取MD5密码的内容如下
     [root@localhost grub]# grub-md5-crypt
Password:
Retype password:
$1$IToNN0$NCtPJK7BsNO8F1ClymTm5/
     将生成的加密密码复制过去即可
     kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/  后可以加入很多命令
如1 则表示单用户模式  有1-6个模式
如果root忘记密码我们可以在grub的选择界面按下 e 选择到这一行 e 在末尾修改添加1  回车 按b 执行
如果添加  init=/bin/bash 则不加载任何服务 纯启动bash

相关内容