基于PXE方式的Linux系统维护工具箱

基于PXE方式的Linux系统维护工具箱

    在安装 RedHat Linux 系统的过程中,我们知道可以通过 PXE 方式进行安装,从而解决了无光驱或无安装介质(光盘)来安装操作系统。但是当系统由于某种原因导致系统崩溃的问题,在这个时候首先要想到的是试图修复,而不是直接重装操作系统。因为在大多数的情况下,我们都可以通过系统维护工具来完成修复。本文主要介绍如何制作基于 PXE 方式的系统维护工具箱。
     一、系统维护工具简介
    作为一个网络管理员,我们会有许多的服务器密码,如果你没有有效的管理方法;最常见的就是你去维护一台服务器的时候忘记了管理员( root )密码,甚至没有管理员密码。对于这种情况,我们的解决方法是单用户维护模式下进行恢复口令。由于篇幅问题这里不详细介绍单用户模式的使用。
   注意: 使用单用户模式有一个前提,就是您的系统引导器( grub )能正常工作,否则要进行系统维护就要使用修复模式。
    单用户模式下可以进行正常的系统维护(系统能够正常启动),而修复( rescue )模式,也可以称为救援模式,可以对不能从硬盘独立启动的 Linux 系统进行手工修复。
    什么是救援模式?
    救援模式是 Red Hat Enterprise Linux 的安装程序 Anaconda 所提供的一项功能,即利用安装用启动介质上的启动加载器进行开机,并执行启动介质上的 Linux 内核来启动计算机,从而取代硬盘中错误或故障的启动加载器或 Linux 内核,避开 init 服务执行前所有发生的错误。如此一来,通过救援模式,可用来解决 init 服务前所有的错误。
    一般情况下,可以使用 RedHat Linux 安装光盘启动救援模式,首先需要确认你的计算机 BIOS 中的首选启动项设置 CDROM ,接着使用第一张安装 CD DVD 盘引导系统,过程类似安装过程,注意,在“ boot: ”提示符下输入“ linux rescue ”,就可以进入救援模式,最后按照提示配置即可。
      Linux 系统备份工具 Clonezilla 介绍
      Clonezilla 是由台湾国网中心( NCHC 的�志�n等人在一些开源项目基础上所开发的一款很优秀的系统克隆工具,它基于 Partimage ,吸取了 Norton Ghost Partition Image 的优点。不仅支持对整个系统进行克隆,而且也可以克隆单个的分区,这种灵活性可能更能适应备份者的需要。支持 GNU/Linux 的文件系统 ext2 ext3 reiserfs xfs jfs Windows FAT FAT32 NTFS 文件系统。 Clonezilla 支持使用 PXEBoot 来进行 Multicast 克隆。这对于需要克隆大量系统的用户极为有用。
      Clonezilla( 再生龙 ) 特点 :
Ø  自由软体, 国网中心所开发。
Ø  可还原再生多种作业系统,包含 Linux (ext2, ext3, reiserfs, xfs, jfs), 微软 Windows (fat, ntfs)
Ø  支持 GNU/Linux 下的 LVM2 ( 尚未支援 LVM1)
Ø  支持群播 (Multicast) 。配合 PXE 网络开机,搭配 DRBL Clonezilla 可以使用多播 (multicast) 的方式,适合用来大备份与还原。硬件设备功能足够时 ( 用户端支持 Wake on LAN PXE) ,可以远端操作,人不需到现场。
Ø  不同于 Partimage 或是 ntfsclone 只能处理分区, Clonezilla 包含其他程序的撰写与整合,因此可以备份与复制分区或是整块硬盘。
Ø  不同於 G4U 或是 G4L Clonezilla 环境中,支持的文件系统 (ext2, ext3, reiserfs, xfs, jfs, fat, ntfs) ,只备份有存资料的硬盘空间,因此可以节省备份时间与硬盘空间。其他不支持的文件系统 Clonezilla 采用 dd 的方式处理。
Ø  通过本实验室开发的另外一套自由软件 drbl-winroll 可以指定还原后微软 Windows 的主机名称、工作组,还可写入随机的 SID
Ø  有单机版免安装的还原系统 Clonezilla Live 可以使用。
    关于 Clonezilla 的更多信息请参考 http://www.clonezilla.org/
二、系统维护工具箱的制作
首先,介绍一下本工具箱包含的功能:
1)        希望能够无人值守安装 Red Hat AS 5.3 CentOS5.3
2)        救援模式和 Clonezilla 工具的使用
   工具箱的菜单规划
   基于上述功能,我将本工具箱的菜单规划为以下目录
    n Boot local hard drive
    n Operating System install Menu
           u Return to Main Menu
           u RHEL  5.3  i386
           u CentOS 5.3  i386
    n Setup ToolBox Menu
           u Return to Main Menu
           u RHEL5 Rescue Mode
           u Clonezilla Live
   配置基于 PXE 方式的工具箱
编辑本工具主要有以下步骤:
     配置 DHCP ,用于给客户端提供 IP 地址及其它信息
     配置 TFTP 服务器,用于提供客户端 PXE 引导所必须的文件
       PXE 原理以及第 1-2 步骤配置请参考《 Linux Kickstart 无人值守安装上 》一文进行配置。
     安装配置 NFS 服务器
创建共享目录,分别将相关光盘内容拷贝到相应的共享目录中:
[root@qiuri Server]#mkdir /mnt/RHEL5.3
[root@qiuri Server]#mkdir /mnt/CentOS5.3
安装NFS并将共享目录发布出去,并重启服务使配置生效。
[root@qiuri Server]# vi /etc/exports
/mnt/RHEL5.3 *(ro,sync)
/mnt/CentOS5.3 *(ro,sync)
[root@qiuri Server]# service portmap restart
[root@qiuri Server]# service nfs start
 
     PXE 引导配置( bootstrap
       PXE 启动映像文件由 syslinux 软件包提供, RedHat Enterprise Linux 光盘中已提供,如果没有此软件包可以到 syslinux 主页: http://syslinux.zytor.com/ 下载 rpm 来安装。
   注意:如果未安装,使用 yum -y install syslinux 进行安装。
    我们只要安装了 syslinux ,就会生成一个 pxelinux.0 ,将 pxelinux.0 和启动所需的文件 复制到 '''/tftpboot'''
创建共享目录,分别将相关光盘内容拷贝到相应的共享目录中:
[root@qiuri Server]# rpm -ql syslinux |grep "pxelinux.0"
/usr/lib/syslinux/pxelinux.0
[root@qiuri Server]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@qiuri Server]#cp /usr/lib/syslinux/memdisk /tftpboot
[root@qiuri Server]#cp /usr/lib/syslinux/mboot.c32 /tftpboot
[root@qiuri Server]#cp /usr/lib/syslinux/chain.c32 /tftpboot
[root@qiuri Server]#cp /usr/lib/syslinux/menu.c32 /tftpboot
    ⑤  配置网络启动的内核文件
    创建内核及启动映像文件存放目录:
[root@qiuri Server]#mkdir -p /tftpboot/images/RHEL5.3
[root@qiuri Server]# mkdir -p /tftpboot/images/CentOS5.3
复制 RedHatCentOS 的内核和启动映像文件。
[root@qiuri Server]#cd /tftpboot/images/RHEL5.3/
[root@qiuri  RHEL5.3]#cp /mnt/RHEL5.3/images/pxeboot/{vmlinuz,initrd.img} .
[root@qiuri  RHEL5.3]#cd ../CentOS5.3/
[root@qiuri  CentOS5.3]# cp /mnt/ CentOS5.3/images/pxeboot/{vmlinuz,initrd.img} .
      ⑥     编辑 PXE 菜单
      1)  创建 PXE 菜单目录

[root@qiuri Server]# mkdir /tftpboot/pxelinux.cfg
2) 编辑PXE主菜单
[root@ qiuri Server]# vi /tftpboot/pxelinux.cfg/default
 
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
 
MENU TITLE Main Menu
MENU INCLUDE pxelinux.cfg/graphics.conf
MENU AUTOBOOT Starting Local System in 300 seconds
 
LABEL local
        MENU LABEL ^Boot local hard drive
        LOCALBOOT 0
 
LABEL os install
        MENU LABEL ^Operating System install Menu
        KERNEL menu.c32
        APPEND pxelinux.cfg/install
 
LABEL tools
        MENU LABEL ^Setup ToolBox Menu
        KERNEL menu.c32
        APPEND pxelinux.cfg/tools
    编辑菜单图形:

[root@qiuri ~]# vi /tftpboot/pxelinux.cfg/graphics.conf
 
menu color tabmsg 37;40         #80ffffff #00000000
menu color hotsel 30;47         #40000000 #20ffffff
menu color sel 30;47            #40000000 #20ffffff
menu color scrollbar 30;47      #40000000 #20ffffff
 
MENU WIDTH 80
MENU MARGIN 22
MENU ROWS 6
MENU TABMSGROW 15
MENU CMDLINEROW 15
MENU ENDROW 24
MENU TIMEOUTROW 13
MENU VSHIFT 6
 
#MENU MASTER PASSWD yourpassword
#MENU PASSPROMPT Enter Password:
#MENU PASSWORDROW 12
#MENU PASSWORDMARGIN 26
 
NOESCAPE 0
ALLOWOPTIONS 0
~
"/tftpboot/pxelinux.cfg/graphics.conf"
    3)  编辑 PXE 子菜单
编辑无人值守系统安装菜单:
[root@qiuri ~]# vi /tftpboot/pxelinux.cfg/install
MENU TITLE Operating System install Menu
 
LABEL Main Menu
        MENU LABEL ^Return to Main Menu
        KERNEL menu.c32
        APPEND pxelinux.cfg/default
LABEL RHEL 5.3
        MENU LABEL RHEL   5.3 ^i386
        KERNEL images/RHEL5.3/vmlinuz
        APPEND ks=nfs:192.168.18.1:/mnt/RHEL5.3/ks.cfg initrd=images/RHEL5.3/initrd.img
LABEL CentOS 5.3
        MENU LABEL CentOS 5.3 ^i386
        KERNEL images/CentOS5.3/vmlinuz
        APPEND ks=nfs:192.168.18.1:/mnt/CentOS5.3/ks.cfg initrd=images/CentOS5.3/initrd.img
    编辑工具菜单:
[root@qiuri ~]# vi /tftpboot/pxelinux.cfg/tools
 
MENU TITLE Setup ToolBox Menu
 
LABEL Main Menu
        MENU LABEL ^Return to Main Menu
        KERNEL menu.c32
        APPEND pxelinux.cfg/default
LABEL rescue
        MENU LABEL RHEL5 Rescue Mode
        kernel images/RHEL5.3/vmlinuz
append ks=nfs:192.168.18.1:/mnt/RHEL5.3/rescue.cfg initrd=images/RHEL5.3/initrd.img text rescue
     配置 Kickstart 应答文件
详细配置请参考 Linux Kickstart无人值守安装下》 中的“配置 Kickstart 安装”进行配置
     配置工具箱
       1 )配置救援模式的 Kickstart 应答文件:

[root@qiuri ~]# vi /mnt/RHEL5.3/rescue.cfg
 
lang zh_CN.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
mouse none
nfs --server=192.168.18.1 --dir=/mnt/RHEL5.3
network --bootproto=dhcp
    2 )配置 Clonezilla live PXE 启动
    配置 PXE 启动文件

[root@qiuri ~]# mkdir -p /tftpboot/images/clonezilla
[root@qiuri ~]# unzip -j clonezilla-live-20090727-jaunty.zip \
> live/vmlinuz1 live/initrd1.img \
> -d /tftpboot/images/clonezilla/
Archive:  clonezilla-live-20090727-jaunty.zip
 extracting: /tftpboot/images/clonezilla/initrd1.img 
 extracting: /tftpboot/images/clonezilla/vmlinuz1 
[root@qiuri ~]# ls /tftpboot/images/clonezilla/
initrd1.img  vmlinuz1
[root@qiuri ~]# unzip -j clonezilla-live-20090727-jaunty.zip \
> live/filesystem.squashfs live/memtest \
> -d /tftpboot/
Archive:  clonezilla-live-20090727-jaunty.zip
 extracting: /tftpboot/filesystem.squashfs 
 extracting: /tftpboot/memtest      
[root@qiuri ~]# unzip -j clonezilla-live-20090727-jaunty.zip \
> live/freedos.img \
> -d /tftpboot/images/
Archive:  clonezilla-live-20090727-jaunty.zip
 extracting: /tftpboot/images/freedos.img 
[root@qiuri ~]#
   在 /tftpboot/pxelinux.cfg/tools 中添加:

LABEL Clonezilla
        MENU LABEL ^Clonezilla Live
        KERNEL images/clonezilla/vmlinuz1
        APPEND initrd=images/clonezilla/initrd1.img boot=live union=aufs noswap noprompt vga=788 ocs_live_keymap=NONE ocs_lang=zh_CN.UTF-8 fetch=tftp://192.168.18.1/filesystem.squashfs
 
 
    三、配置后的功能验证
    最后,我们在客户端上将 BIOS 设置为网卡启动,成功通过网卡启动后看到下图界面:
 

   验证无人值守安装 Linux
   我们选择“ Operating System install Menu ”菜单,将进入其子菜单中,如下图所示:
 
   例如:我们进行无人值守安装 RHEL5.3 ,选择“ RHEL 5.3 i386 ”菜单即可。以下的步骤和我们在无人值守安装过程中一样。
    验证基于 PXE 的救援模式
我们只需要在主菜单中选择“ Setup ToolBox Menu ”菜单,即可进入其子菜单,之后选择“ RHEL5 Rescue Mode ”如下图所示:
 
    稍后,几秒钟即可看到如下界面:
 
    到该界面,熟悉救援模式的朋友,就知道如何去做了,如果不了解的朋友,根据提示也可以成功进入救援模式。
    验证 Clonezilla 工具
    如果我们选择主菜单中“ Setup ToolBox Menu ”菜单,即可进入其子菜单,之后选择“ Clonezilla Live ”如下图所示:
 
    程序下载文件
 
    成功进入Clonezilla工具界面:
 
   关于该备份工具的使用,如果你使用过 Ghost 的话,按照软件的中文说明,即可完成使用。如果不熟悉的话可以参考网上相关文章,这里不做介绍。

本文出自 “学习吧!Linux” 博客,谢绝转载!

你可能感兴趣的:(linux系统,救援模式)