无人值守网络安装Linux

来源:互联网 发布:矩阵论教程张绍飞答案 编辑:程序博客网 时间:2024/05/09 01:30

     Linux操作系统的安装方法相信很多人已经非常熟悉了,一般多以从网络中下载iso文件并刻录一张DVD光盘后从光驱安装比较常见,但是,当您有大批相同配置的电脑需要安装Linux,或者您的电脑没有光驱,那么采用这种方法安装就会十分繁琐,为此,如果能够充分利用批量电脑的硬件相似性通过网络安装Linux就要简单的多,本文主要讲解如何通过网络来批量安装Linux操作系统,以满足一般的网吧机器或者学校机房的系统频繁安装维护更新等工作。


主要内容包括下面几个部分

 一、网络PXE启动功能实现
        1、Syslinux编译安装
        2、 配置PXE启动目录结构、菜单、文件
        3、配置tftpd
        4、配置dhcpd
 二、自动分区功能实现
       1、制作特殊格式的软盘镜像方法
       2、img文件下载
       3、修改autocad.exe
 三、自动安装功能实现
       1、RedHat/CentOS
       2、SUSE


 


网络PXE启动功能实现

1、编译syslinux


下载syslinux4.0
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.00.tar.gz


参考: http://syslinux.zytor.com/wiki/index.php/PXELINUX


$pwd
/soft
$tar xzvf syslinux-4.00.tar.gz
$cd syslinux-4.0
$make


2、配置安装目录及启动菜单和文件


具体的分布操作过程如下。


$mkdir /tftpboot
$chown nobody /tftpboot
$chmod 755 /tftpboot

 

$cd tftpboot                               ----PXE启动的远程根目录
$mkdir linux                                ----存放Linux系统PXE安装时启动文件和nfs安装的挂载目录                           
$mkdir pxelinux.cfg                     ----存放启动菜单文件
$mkdir script                               ----存放SUSE,RedHat/CentOS系统的自动安装脚本文件

$mkdir boot                                ----存放启动维护用的镜像文件和自动分区的镜像文件

 

$cd /soft/syslinux-4.0
$cd core/pxelinux.0 /tftpboot
$cd gpx/gpxelinux.0 /tftpboot
$cp gpx/pxelinux.gpxe /tftpboot
$cp com32/menu/*.c32 /tftpboot/pxelinux.cfg
$cp com32/modules/reboot.c32 /tftpboot/pxelinux.cfg
$cp com32/modules/chain.c32 /tftpboot/pxelinux.cfg

原理:
启动文件是gpxelinux.0,gpxelinux.0通过pxelinux.gpxe文件调用gpxelinux.0
Gpxelinux是开源项目


gPXE (formerly Etherboot) is an open-source Preboot Execution Environment (PXE) implementation and bootloader. It can be used to enable computers without built-in PXE support to boot from the network, or to extend an existing PXE implementation with support for additional protocols. While traditional PXE clients use TFTP to transfer data, gPXE adds the ability to retrieve data through other protocols like HTTP, iSCSI and ATA over Ethernet (AoE), and can work with Wi-Fi rather than requiring a wired connection.
具体参见: http://en.wikipedia.org/wiki/GPXE

 

$cd /tftpboot/pxelinux.cfg

 

增加下面几个菜单文件,内容可从下载文件中获取。
$vi default                                     ---------------PXE的启动菜单
$vi linuxsetup.menu                      ---------------Linux系统的安装菜单
$vi system.menu                           ---------------系统维护和自动分区的菜单
$vi windowssetup.menu               ---------------Windows远程安装或克隆的菜单


3、配置tftpd


参照:http://blog.csdn.net/linfengfeiye/archive/2010/07/03/5710650.aspx

 


4、配置dhcpd


主页:https://www.isc.org/software/dhcp/


vi /etc/dhcpd.conf
#-------------------------------------------------
option domain-name "xxxx.xxxx.xxxx.xxxx";
option domain-name-servers 192.168.0.9;
option lpr-servers rcac;
ddns-update-style none;
default-lease-time 14400;
#----------------tftp-----------------------------
ignore client-updates;
allow booting;
allow bootp;
#--------------------------------------------------
subnet 192.168.0.0 netmask 255.255.255.0 {
option broadcast-address 192.168.0.255;
option routers 192.168.0.9;
range dynamic-bootp 192.168.0.115 192.168.0.190;
default-lease-time 14400;
max-lease-time 172800;
next-server 192.168.0.9;
filename "/gpxelinux.0";
}
其中,xxxx.xxxx.xxxx.xxxx 是你的域名,allow booting和allow bootp用来支持启动,next-server 192.168.0.9指出tftp下载启动文件的服务器,filename "/gpxelinux.0";指出pxe启动文件,如果你的tftp用了chroot功能,这个地址是相对于tftp启动根目录的地址,如果没有,就需要写全地址。



二、自动分区功能实现


    如果用KickStart或者AutoYast也是可以实现硬盘分区的,但是这样做不太好,因为硬盘其他分区可能需要安装Windows,如果下一次Linux损坏的时候重新安装Linux的时候又要重新分区,会破坏Windows数据。因此,采用Ghost方法要比较好,可以只在特定的分区安装Linux,下一次更新的时候也不需要动其他分区数据。
    Ghost方法实现自动分区的原理就是利用大批量电脑的硬盘容量基本一致,可以将磁盘分好区,格式化好后制做成硬盘镜像文件保存,利用PXE启动将该文件全自动恢复到其他未分区的硬盘上,从而实现其他硬盘的自动分区,为了能够从网络启动恢复硬盘镜像,需要制作一个可启动软盘镜像,具体的方法如下。

 

1、制作特殊的软件镜像:
    可以用WinImage或者是Ultraiso,WinImage只支持最大2.88M,而Ultraiso 高版本可以支持更大的容量,方法是选择新建->软件镜像->选择大小和启动系统->将所需要文件拷贝到该盘->从文件菜单查看信息获得c、s、h参数->保存镜像文件。我用该方法制作的ima盘在网络启动时总是出现失败,主要原因可能是系统启动文件的选取不对,最终只好采用了可以启动的maxdos作为母盘来改写。
WinImage下载
http://america.winimage.com/download/winima81.exe
WinImage注册机
http://bbs.wuyou.com/attachment.php?aid=55505

ULTRAISO下载
http://p2s.newhua.com/down/uiso9_cn.exe


2、img文件下载
这是我从maxdos母盘来制作的自动分区镜像,里面有ghost 11.0 Dos版和一个硬盘备份文件。

 

http://www.brsbox.com/filebox/down/fc/65339a9b1647d7ec1466527dcc962875


3、修改autoexec.bat
     如果您需要不同的硬盘分区情况,具体做法是,先从自己的机器上用分区工具将硬盘分好区,而且全部格式化好,最好采用fat32格式或者ntfs格式,保证ghost能够识别,然后运用ghost将整个磁盘备份为client.gho文件,并替换镜像文件中的相应文件,改磁盘的autoexec.bat内容如下,如果你有不同的需要,可以参照ghost.exe的详细参数进行改写并覆盖autoexec.bat,注意你的镜像制作和恢复应当用一个版本的ghost,以免出错。

 

Autoexec.bat内容


@ECHO off
ghost.exe -clone,mode=load,src=a:/client.gho,dst=1 -sure -rb

 

ghost.exe的详细参数参见
http://hi.baidu.com/zgeee/blog/item/3917643ed3fbc13a70cf6c9e.html


Ghost 11.0下载
http://9.jsdx1.crsky.com/200701/SymantecGhost-v11.0H.rar

 

    另一个种解决方案是用gdisk的Dos分区工具,可以用gdisk命令在Dos批处理中写好全自动分区脚本后自动执行,命令可以参照下面这个一键分区工具

http://gghost.cn/soft/Gdisk_Onekey.rar



二、自动安装功能实现

 

1、RedHat/CentOS
     该类系统采用KickStart脚本来实现自动安装, Kickstart 自动安装配置文件ks.cfg 是一个普通的文本文件,其中含有安装Linux所需的各项设置,例如语系、分区的配置、root 的密码、等各项安装时所需要的设置值。Red Hat Linux安装程序也根据您在安装过程中所选择的选项建立一个ks.cfg 的参考范例, 该文件会存放在/root下,比如/root/anaconda-ks.cfg文件。要自己定制ks.cfg文件,可以在vmware里先装个centos然后使用kickstart来制作,默认的centos是没有安装kickstart的,可以使用yum来安装, yum install -y system-config-kickstart,这样便可装kickstart装到centos 系统中了,装好后使system-config-kickstart图形配置完后,将配置文件保存,比如此处保存为centos54-client-ks.cfg。
    完成后,将改文件保存在http协议或者ftp协议能够访问到的位置,例如我存放在/tftpboot/scripts下,而在http根目录中建议一个到/tftpboot/scripts的链接文件scripts,这样就可以通过http://yourip/scripts/centos54-client-ks.cfg来访问所需要的安装配置文件了。
    最后,需要修改pxelinux的启动菜单为下面的形式。


label install centos linux 5.4 64bit
MENU PASSWD yourpasswd
#menu default
menu label install centos 5.4 64bit
kernel linux/centos/5.4/x86_64/vmlinuz
append ksdevice=eth0 /
ks=http://yourip/scripts/centos54-client-ks.cfg /
initrd=linux/centos/5.4/x86_64/initrd.img
注意上面的append是一行。

 

详细信息参照下面
CentOS KickStart
http://wiki.centos.org/TipsAndTricks/KickStart


http://www.centos.org/docs/5/html/5.2/Installation_Guide/s1-kickstart2-howuse.html


2、SUSE

    SUSE系统是用autoyast.xml文件作为配置文件进行全自动安装的,一般情况下,如果你安装SUSE时勾选了创建 autoyast的话,在/root目录下会生成一个autoyast.xml文件。
     如果要修改位自己的autoyast.xml需要安装autoyast2软件包,可以用software management 安装该工具,安装完成后,从系统菜单中选择Yast------>Miscellaneous------->Autoinstallation或者从终端中输入 /sbin/yast2 autoyast即可打开配置界面,在该界面可以配置安装过程中的主要参数,然后保存为xml文件,也可以从kickstart文件导入来生产autoyast文件。

我的SUSE Linux安装菜单如下。

label install suse linux 11.2 64bit

MENU PASSWD rcac

MENU LABEL Install SUSE Linux 11.2 64bit

KERNEL linux/suse/opensuse/11.2/x86_64/linux

APPEND initrd=linux/suse/opensuse/11.2/x86_64/initrd vga=0 textmode=1 install=nfs://192.168.2.1/tftpboot/linux/suse/opensuse/11.2/x86_64/cdrom splash=silent showopts autoyast=http://192.168.2.1/scripts/suse112-64-client.xml

 

 

 

详细教程参照下面
AutoYast
http://www.novell.com/coolsolutions/feature/15376.html

 

更详细的AutoYast文档参见系统目录
/usr/share/doc/packages/autoyast2/html/

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果5s手机通话声音小怎么办 华为全网通手机电信卡打不了怎么办 合约机移动违约不返话费我该怎么办 电信手机卡合约套餐要到期了怎么办 苹果6s联通4g网速慢怎么办 营业厅买到的不是全网通手机怎么办 全网通手机联通卡被禁用怎么办 红米5手机关机充电自动开机怎么办 华为平板怎么解锁密码忘了怎么办 华为荣耀手机开锁密码忘记了怎么办 畅玩7x密码忘了怎么办 过了时的手机没有刷机包怎么办? 刷了个刷机包游戏玩不了了怎么办? 华为麦芒5手机外放声音小怎么办 微信显示存储卡已拔出怎么办 储存卡已拔出微信头像不可用怎么办 智能手机的电话卡取不出来了怎么办 换了苹果手机通讯录没了怎么办 手机玻璃膜一角翘起来了怎么办 华为畅玩7x耗电快怎么办 魅蓝5s充电器死机了怎么办 苹果手机乐动力不计步数怎么办 意大利居留按手印时间过了怎么办 酷派t1手机解析包出现问题怎么办 p新买的手机壳有味怎么办 门锁钥匙口竖着钥匙放不进去怎么办 摩拜单车被别人骑走了怎么办 捡到苹果8p手机怎么办才能自己用 用力按压导致玻尿酸变形移位怎么办 华为麦芒5应用锁密码忘了怎么办 华为麦芒6应用锁密码忘了怎么办 华为手机的设置不在桌面了怎么办 华为手机所有应用都不在桌面怎么办 华为麦芒5设置页面不显示怎么办 华为麦芒5主屏页面不显示怎么办 6s p换屏幕原装太贵怎么办 4g手机开不开机黑屏怎么办 华为麦芒5 4g信号差怎么办 华为麦芒手机锁屏密码忘了怎么办 华为麦芒5相机拍相片倒了怎么办 红米5a开不了机怎么办