-- 作者:卷积内核
-- 发布时间:3/5/2010 8:07:00 AM
-- 深入使用PXE网络环境----网络分区管理、网络磁盘备份与镜像、网络启动紧急恢复rescue模式
如何通过网络实现对磁盘分区的管理,如何通过网络实现本地磁盘镜像的备份与还原,以及如何通过网络启动Redhat/Centos的紧急恢复rescue模式。 一、[B]PXE[/B]是什么 在开始之前还是简单描述下什么是PXE PXE(Pre-boot Execution Environment),这个是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。 一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux。但是,这种安装方法在以下的几种情况下就不能适用: 1.光驱:很多公司为了节省成本,计算机一般都不带光驱,这样就无法通过本地安装Linux; 2.另外,在一些场合,如机房中,有大量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这个就是为什么需要使用PXE的原因。 PXE网络安装必需的4个要素 1. 客户机的网卡必须为PXE网卡主流的服务都是支持的 2. 网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机,参考之前几期的独辟蹊径的系列文章 3. 所安装的操作系统必须支持网络安装,即必须提供自己的bootstrap,不同环境中采用的不同bootstrap 4. 必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机, PXE的安装过程大致可以描述为以下几个步骤: 1. 客户机从自己的PXE网卡启动,向本网络中的DHCP服务器获取BOOTP IP 2. DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上) 3. 客户机向本网络中的TFTP服务器索取bootstrap文件 4. 客户机取得bootstrap文件后之执行该文件 5. 根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统 6. 进入安装画面,此时可以通过选择FTP,HTTP,NFS方式之一进行安装 二、Parted Magic、Clonezilla开源项目介绍 下面为大家介绍一下实现网络磁盘分区管理的开源项目Parted Magic,网络实现磁盘备份还原的开源项目Clonezilla。 Parted Magic([URL=http://partedmagic.com/]http://partedmagic.com/[/URL])是一张容量约为 30 MB 的 Live CD,你不仅可以通过光盘来使用它,而且也能够在优盘中应用。此工具盘的主要用途是为硬盘完成分区工作。它预装的分区工具包括 GParted 和 Parted,其中 GParted 是一个图形化的分区工具,很容易使用,称之为分区魔术师最为合适。 在 Parted Magic 中除了一些分区工具之外,还包括了partimage、testdisk、dd、 ddrescue 等工具,可用于备份或还原系统,基至急救出现故障的系统。当前,支持广泛的文件系统,如 ext2、ext3、ext4、fat16、fat32、hfs、hfs+、jfs、linux-swap、ntfs、ocfs2、reiserfs、reiser4、xfs、zfs 等等。无论是 Linux,还是 Windows,都有 Parted Magic 的用武之地。 Clonezilla([URL=http://www.clonezilla.org/]http://www.clonezilla.org/[/URL]) 是一个很好的系统克隆工具,它可以说是吸取了 Norton Ghost 和 Partition Image 的优点。即不仅支持对整个系统进行克隆,而且也可以克隆单个的分区,这种灵活性可能更能适应备份者的需要。 大量部署操作系统的时候(不管是微软Windows或是Linux),用 Norton Ghost® 制作成印象挡再复制到每台客户端是现行最常使用的方法。然而适合用来做大量复制的 Symantec Ghost Corporate Edition® 需要不少的费用,而且计算机越多,费用越高。此外,因为它不是自由软件,所以灵活度不高,不能自己客制化修改。若是使用 Norton Ghost® 又必须一台台的做,颇为旷时费日。 Clonezilla提供一个完整的环境,这是一个整合的系统,包含还原程序以及操作系统。搭配网络开机功能。 Clonezilla 的功能: 在 GNU/Linux 端所支持的文件系统包括:ext2、ext3、reiserfs、xfs、jfs;同时,Clonezilla 也支持 M$ Windows 上的 FAT、NTFS 文件系统。这意味着,你既可以使用 Clonezilla 克隆 GNU/Linux 系统,也能够对 M$ Windows 系统进行克隆。 Clonezilla 支持使用 PXEBoot 来进行 Multicast 克隆。这对于需要克隆大量系统的用户极为有用。 CloneZilla 包括一个 Live 版,让你无需对其安装即可克隆系统。 三、简单的Parted Magic、[B]Clonezilla PXE[/B]网络启动引导配置 3.1、配置Parted Magic的PXE启动的过程如下 下载pmagic-pxe-4.5.zip到root文件夹 wget [URL=http://jaist.dl.sourceforge.net/project/partedmagic/partedmagic/Parted%20Magic%204.5/pmagic-pxe-4.5.zip]http://jaist.dl.sourceforge.net/ ... /pmagic-pxe-4.5.zip[/URL] 到/root文件夹,将pmagic-pxe-4.5.zip解压到tmp文件夹 unzip pmagic-pxe-4.5.zip -d /tmp 然后执行将[B]pmagic pxe[/B]启动脚本信息复制到/tftpboot目录下面 cd /tftpboot/ mv /tmp/pmagic-pxe-4.5/pmagic/ . 编辑[B]pmagic pxe[/B]启动内容和引导信息 vi /tftpboot/pxelinux.cfg/default 增加如下内容 label pmagic kernel /pmagic/bzImage append initrd=/pmagic/initramfs load_ramdisk=1 prompt_ramdisk=0 rw sleep=10 3.2 配置Clonezilla的PXE启动的过程如下 下载clonezilla-live-1.2.2-30.zip到root文件夹 wget [URL=http://nchc.dl.sourceforge.net/project/clonezilla/clonezilla_live_testing/clonezilla-live-1.2.2-30.zip]http://nchc.dl.sourceforge.net/p ... a-live-1.2.2-30.zip[/URL] 在tftpboot文件夹下建立Clonezilla引导内核加载文件夹 cd /tftpboot mkdir clonezilla 解压clonezilla-live-1.2.2-30.zip并将pxe启动引导文件复制到/tftpboot/clonezilla文件夹下 unzip clonezilla-live-1.2.2-30.zip -d /tmp/a [root@bdr clonezilla]# mv /tmp/a/live/vmlinuz1 . [root@bdr clonezilla]# mv /tmp/a/live/initrd1.img . [root@bdr clonezilla]# mv /tmp/a/live/filesystem.squashfs . 编辑Clonezilla的pxe启动引导文件 vi /tftpboot/pxelinux.cfg/default 增加如下内容 label clonezilla kernel clonezilla/vmlinuz1 append initrd=clonezilla/initrd1.img boot=live union=aufs noswap noprompt vga=788 ocs_live_keymap=NONE ocs_lang=en_US.UTF-8 fetch=tftp://172.16.1.9/clonezilla/filesystem.squashfs 3.3 配置通过网络启动rescue模式的方式 编辑rescue的pxe启动引导文件 vi /tftpboot/pxelinux.cfg/default 增加如下内容 label rescue kernel /vmlinuz append ks=nfs:172.16.1.9:/rh53x64/ks_rescue_i386.cfg initrd=/initrd.img ramdisk_size=10000 text rescue 编辑rescue需要的kickstart文件 vi /rh53x64/ks_rescue_i386.cfg lang en_US.UTF-8 langsupport --default=en_US.UTF-8 en_US.UTF-8 keyboard us mouse none nfs --server=172.16.1.9 --dir=/32rhel network --bootproto=dhcp
|