基于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
启动映像文件由
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
复制 RedHat和CentOS 的内核和启动映像文件。
[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” 博客,谢绝转载!