标签:
一:Cobbler与PXE的区别:
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,需要网卡的硬件支持,工作于C/S的网络模式,支持客户端通过网络从服务器下载映像,并支持客户端机器通过网络启动操作系统,在启动过程中,客户端需要从服务器分配IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer protocol)协议从服务器下载一个启动软件包到本机内存中执行,由这个启动软件包完成客户端的基本软件设置,从而引导预先安装在服务器中的终端操作系统,PXE可以引导多种操作系统,如:centos、redhat、windows 7等。
Cobbler{[?kɑ:bl?(r)]}翻译为中文是补鞋匠,但是在linux方面则是一个免费的用于系统安装部署的开源软件,cobbler是对PXE技术的二次基于python的开发,提供了CLI(命令行)和Web的管理方式,另外还提供了API(应用程序编程接口)接口,方便二次开发使用,相比PXE,cobbler支持多系统同时引导,而PXE只能一次引导一个系统的安装,cobbler通常与开源软件puppet、saltstack配合使用,进行操作系统的批量安装与部署优化,从而实现大批量linux系统的无人值守安装与服务部署,大大提升运维的工作效率。
流程:
1.客户端根据本地BIOS设置的的启动顺序,如果是从网卡启动就发出先基于RARP反向地址解析协议(Reverse Address Resolution Protocol)的协议报文,报文中包含自己的MAC地址,但是没有IP地址。
2.DHCP服务器收到请求后,返回给客户端IP地址、掩码、网关,另外还包含一个基于TFTP协议的文件服务器地址和要或获取的文件名称
3.找TFTP服务器获取文件
4.将下载的文件放在内存中运行
5.将系统的引导交给文件执行,这个过程相当于从硬盘当中加载的bootloader过程
6.加载内核vmlinux和initrd.img,本步骤的具体过程如下:
(1) bootloader就是grub,它把 initrd.img 初始化成一个设备 /dev/intrd,然后bootloader 把内核以及/dev/initrd的内容加载到内存。
(2) 在内核初始化过程中,内核把 /dev/initrd 设备的内容解压缩并拷贝到 /dev/ram0 设备上。
(3) 内核以可读写的方式把 /dev/ram0 设备挂载为原始的根文件系统。
(4) 如果 /dev/ram0 被指定为真正的根文件系统,那么内核不会执行(5)、(6)、(7)的操作,因为这下操作是为了帮内核加载最终的根文件系统做的工作。
(5) 执行 initrd 上的 /linuxrc 文件,linuxrc 通常是一个脚本文件,负责加载内核访问根文件系统必须的驱动, 以及加载根文件系统。
(6) /linuxrc 执行完毕,真正的根文件系统被挂载。
(7) 如果真正的根文件系统存在 /initrd 目录,那么 /dev/ram0 将从 / 移动到 /initrd。否则如果 /initrd 目录不存在, /dev/ram0 将被卸载。
(8) 在真正的根文件系统上进行正常启动过程 ,执行 /sbin/init。
标签:
原文地址:http://www.cnblogs.com/zhang-shijie/p/5518765.html