ITPub博客

首页 > Linux操作系统 > Linux操作系统 > grub mbr initrd boot

grub mbr initrd boot

原创 Linux操作系统 作者:mahe0207 时间:2014-02-10 14:19:18 0 删除 编辑
 系统启动流程:
       加载BIOS硬件信息,取得第一个可启动设备的代号;
       读取第一个启动设备内MBR的引导加载程序boot Loader(即grub, spfdisk等程序);
       加载核心,尝试驱动所有硬件设备
       核心执行init 程序;
       init执行/etc/rc.d/rc.sysinit文件;
       启动核心的外挂模块(/etc/modprobe.conf);
       inti执行运行得各个批处理文件;
       init执行/etc/rc.d/rc.local文件;
       执行/bin/login程序,等待用户登录;
-----------------------------------     

       MBR,全称为Master Boot Record,即硬盘的主引导记录。

       硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
----------------------------------
       每个文件系统 (filesystem, 或者是 partition) 都会保留一块启动磁区 (boot sector) 提供操作系统安装 boot loader , 而通常操作系统默认都会安装一份 loader 到他根目录所在的文件系统的 boot sector 上。
        boot loader 主要的功能如下:
            提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
            加载核心文件:直接指向可启动的程序区段来开始操作系统;
            转交其他 loader:将启动管理功能转交给其他 loader 负责。
        安装多重操作系统时MBR常常会被不同的操作系统的boot loader所覆盖!
        Windows 的 boot loader 默认不具有控制权转交的功能,因此不能使用Windows的loader来加载 Linux的loader!因此,先装 Windows 再装 Linux
------------------------------------
       GUN GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
       当GRUB环境开始载入引导装载程序时,根据配置文件(menu.lst)建立一个要载入的操作系统的菜单列表, 然后显示引导菜单接口。 如果配置文件不能正常读取,那么GRUB将载入命令行接口。
       在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。按[c]键载入一个命令行接口。 添加(加在当前行后面(用[o]键),加在当前行前(用[0]键),编辑(用[e]键),删除(用[d]键)。
在所有的改变都完成后,用[Enter]键来执行这些命令,并引导操作系统。[Esc]键来放弃
命令行接口
      

       root [开机根目录 / 所在的磁盘代号]
       kernel [开机档案的所在地完整档名] [root=/dev/硬盘代号]      
       initrd 主要用于指明安装的文件放在哪个分区和哪个目录中,即在该命令后指定文件的安装目录。

       vmlinuz是可引导的、压缩的内核。
       initrd.img是一个小的映象,包含一个最小的linux系统。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块,然后发现真正的root分区,挂载并执行/sbin/init...。如果没有initrd.img,内核就试图直接挂载root分区。
       initrd:Initrd ramdisk或者""initrd""是指一个临时文件系统,它在启动阶段被 Linux 内核调用。initrd主要用于当“根”文件系统被挂载之前,进行准备工作。
       initrd的最初目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本的启动代码,把对各种各样硬件设备的支持以模块的方式放在initrd中,这样就在启动过程中可以从initrd所mount的根文件系统中装载需要的模块。这样做好处是在保持kernel不变的情况下,通过修改initrd中的内容就可以灵活的支持不同的硬件。在启动完成的最后阶段,根文件系统可以重新mount到其他设备上。

-------------------------------------------------
       每个文件系统 (filesystem, 或者是 partition) 都会保留一块启动磁区 (boot sector) 提供操作系统安装 boot loader , 而通常操作系统默认都会安装一份 loader 到他根目录所在的文件系统的 boot sector 上。
       boot loader 主要的功能如下:
            提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
            加载核心文件:直接指向可启动的程序区段来开始操作系统;
            转交其他 loader:将启动管理功能转交给其他 loader 负责。
        安装多重操作系统时MBR常常会被不同的操作系统的boot loader所覆盖!
        Windows 的 boot loader 默认不具有控制权转交的功能,不能使用Windows的loader来加载 Linux的loader!因此先装 Windows 再装 Linux
-------------------------------------------------
       忘记root密码的处理
            开机时按空格-->长按e--> 修改内核 后边加空格 加1,转到单用户模式下,passwd root,reboot
            sudo su -(以当前用户密码,切换到root)

       忘记grub引导菜单密码
            BIOS里设置光盘启动
            选择F2进入系统修复 输入命令:linux rescue(救援模式)    
            chroot /mnt/sysimage 重设了根分区的话
            less /boot/grub/grub.conf 查看password


           设置grub密码:/boot/grub/grub.conf配置文件 splashimage的下一行添加password=***,若为MD5加密,添加password --md5 ***
           vmware虚拟机进入BIOS方法 bios.bootDelay = "3000"(毫秒为单位)  设置启动画面延时
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29437301/viewspace-1078865/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-11

  • 博文量
    26
  • 访问量
    93875