远程安装Linux *** 作系统的方法

远程安装Linux *** 作系统的方法,第1张

远程安装Linux *** 作系统的方法

Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的 *** 作系统。下面是我收集的关于远程安装Linux *** 作系统的方法,希望大家认真阅读!

一、引言

一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux。但是,这种安装方法在以下的几种情况下就不能适用:

无软驱和光驱:很多公司为了节省成本,计算机一般都不带光驱或软驱,这样就无法通过本地安装Linux

非标准的软驱和光驱:虽然笔记本都会配置光驱,但是并不一定都是标准的IDE设备,有些是通过USB接口,有些是通过1394接口(例如Samsung的Q10)。在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装Linux

另外,在一些场合,如机房中,有大量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。

笔者在工作过程中,就遇到过第二种情况。一台Samsung的Q10笔记本需要安装Redhat Linux 8.0,但是通过光驱引导后发现,安装程序无法访问光盘。针对这个问题,笔者经过查阅资料和摸索,找到了在Q10上安装Linux的方法。在下面的讨论中,如不做特别声明,都将以Q10为例,介绍如何通过PXE Bootrom来远程安装Linux。

二、基本原理

1) 什么是PXE

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的 *** 作系统通过网络下载到本地运行。

PXE协议的成功运行需要解决以下两个问题:

既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置

通过什么协议下载Linux内核和根文件系统

对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。

至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。

这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。

在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

三、步骤

有了前面的背景知识,接下来就可以正式 *** 作了,下面按照顺序给出了 *** 作步骤:

1) 配置DHCP Server

选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下:

option space PXE

option PXE.mtftp-ip code 1 = ip-address

option PXE.mtftp-cport code 2 = unsigned integer 16

option PXE.mtftp-sport code 3 = unsigned integer 16

option PXE.mtftp-tmout code 4 = unsigned integer 8

option PXE.mtftp-delay code 5 = unsigned integer 8

option PXE.discovery-control code 6 = unsigned integer 8

option PXE.discovery-mcast-addr code 7 = ip-address

class "pxeclients" {

match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"

option vendor-class-identifier "PXEClient"

vendor-option-space PXE

# At least one of the vendor-specific PXE options must be set in

# order for the client boot ROMs to realize that we are a PXE-compliant

# server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM

# that we can't provide multicast TFTP (address 0.0.0.0 means no

# address).

option PXE.mtftp-ip 0.0.0.0

# This is the name of the file the boot ROMs should download.

filename "pxelinux.0"

# This is the name of the server they should get it from.

next-server 192.168.0.1

}

ddns-update-style interim

ignore client-updates

default-lease-time 1200

max-lease-time 9200

option subnet-mask 255.255.255.0

option broadcast-address 192.168.0.255

option routers 192.168.0.254

option domain-name-servers 192.168.0.1,192.168.0.2

option domain-name "mydomain.org"

subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.10 192.168.0.100

}

host q10 {

hardware ethernet 00:00:F0:6B:38:5B

fixed-address 192.168.0.22

}

dhcpd.conf配置文件中几个关键部分说明如下:host q10{…}定义了笔记本Q10网卡的MAC地址与IP地址的'对应关系,表明DHCP Server为Q10分配一个固定的IP:192.168.0.22filename ""指定bootstrap的文件名netx-server指定TFTP Server的地址。其它的配置请读者参考DHCP Server的手册。

2) 配置TFTP server

选用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的内容如下:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -u nobody -s /tftpboot

disable = no

per_source = 11

cps = 100 2

}

这里制定了/tftpboot为TFTP Server的根目录位置。

3) 配置bootstrap

bootstrap文件在dhcpd.conf中被指定为pxelinux.0文件,放置在/tftpboot。Linux内核以及Linux根文件系统也放置在/tftpboot。pxelinux.0在执行过程中,要读配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目录下。由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以要通过不同的配置文件名来区分出不同的PXE Client的需求。比如一个PXE Client由DHCP Server分配的IP地址为192.168.0.22,那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016为IP地址192.168.0.22的十六进制表示)。如果找不到,就按照顺序C0A80016->C0A8001->C0A800->C0A80->C0A8->C0A->C0->C->default查找配置文件。

/tftpboot/pxelinux.cft/C0A80001配置文件的具体内容如下:

DEFAULT install

PROMPT 1

LABEL install

KERNEL vmlinuz

APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384

此配置文件指定了Linux内核以及根文件系统的名称,并给内核传递了一些参数,其中ramdisk_size参数要非常注意,它指定Linux内核启动后建立ramdisk的大小,如果设置太小,Linux的安装过程就可能无法进行。

4) 制作Linux内核/根文件系统

因为需要通过网络安装,所有选择Redhat Linux 8.0安装盘(disk #1)中E:\images\bootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程序在内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:\dosutils\rawrite E:\images\bootnet.img,根据提示制作。制作完毕后,将引导软盘中的vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到Linux Server的/tftpboot下。

5) 启动DHCP Server/TFTP Server

在Linux Server上,运行service dhcpd start和service xinetd restart。

6) 启动Q10

Q10加电后,在出现Samsung公司徽标时,在左下角会提示用户按F12进入网络引导。按F12后,Q10进入网络引导过程。首先通过DHCP Server获得了IP地址,然后下载并执行bootstrap文件pxelinux.0在执行中,读入配置文件/tftpboot/pxelinux.cfg/C0A80016。此时屏幕上出现boot:,敲入install,就进入了Redhat Linux 8.0的网络安装界面,一切OK!

四、结束语

虽然以上的讨论是针对Samsung Q10笔记本,但是工作原理和安装方法对于其它类型的计算机也是适用的,不过要记住,计算机的网卡中必须要有BootROM--PXE Client。同时,PXE协议也可作为无盘Linux技术,用于引导放置在远程的Linux。实际上,只要根据需要,在Pxelinux的配置文件的APPEND选项中,为Linux内核传进需要mount的文件系统的位置参数即可。

1、准备CentOS5

2、安装tftp/dhcp/vsftp

yum -y install tftp-server dhcp vsftpd

3、禁用防火墙或者开通相应的端口

设置/etc/sysconfig/selinux

SELINUX=disabled

重启或执行setenforce 0

service iptables stop

4、配置tftp-server

vi /etc/xinetd.d/tftp

server_args = -s /var/lib/tftpboot 这里如果不修改默认是/tftpboot 会提示

PXE-T01:File not found

PXE-E3B:TFTP Error – file not found

PXE……………..

#设置disable的值由yes变为no

disable = no

/etc/init.d/xinetd restart重启xinetd服务

netstat -nulp检查tftp启动是否成功

udp0 0 0.0.0.0:69 0.0.0.0:*

5、配置dhcp

vi /etc/dhcp/dhcpd.conf或者vi /etc/dhcpd.conf

option domain-name-servers 8.8.8.8, 202.106.0.20

default-lease-time 86400

max-lease-time 604800

authoritative

ddns-update-style ad-hoc

filename “pxelinux.0″

subnet 192.168.209.0 netmask 255.255.255.0 {

range 192.168.209.15 192.168.209.17

next-server 192.168.209.18

option subnet-mask 255.255.255.0

option broadcast-address 192.168.209.255

option routers 192.168.209.18

}

#启动dhcp

/etc/init.d/dhcpd start

#检查dhcp是否启动成功:

netstat -nulp

udp0 0 0.0.0.0:67 0.0.0.0:* 4741/dhcpd

6、默认配置vsftp即可

/etc/init.d/vsftpd start

netstat -ntlp

tcp0 0 0.0.0.0:21 0.0.0.0:* LISTEN 4680/vsftpd

7、设置ftp数据源

mount /dev/cdrom /var/ftp/pub

mount -o loop /opt/CentOS-5.9-x86_64-bin-DVD-1of2.iso /var/ftp/pub

8、PXE Boot loader (PXE引导加载程序)

pxelinux.0是syslinux套件提供的,如果没有请安装

yum install syslinux

用以下命令查看系统是否已安装和存放的目录,

rpm -ql syslinux | grep pxelinux.0

发现pxelinux.0存放在

/usr/share/syslinux/pxelinux.0 或者/usr/lib/syslinux/pxelinux.0

mkdir /var/lib/tftpboot

把pxelinux.0复制到tftpboot

cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

9、copy 需要引导文件

cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot

cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot

cp /var/ftp/pub/isolinux/*.msg /var/lib/tftpboot

mkdir /var/lib/tftpboot/pxelinux.cfg/

cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib//tftpboot/pxelinux.cfg/default

10、设置开机自启动tftp-server/dhcp/vsftp

chkconfig xinetd on

chkconfig dhcpd on

chkconfig vsftpd on

service xinetd start(或者/etc/init.d/xinetd start)

service dhcpd start(或者/etc/init.d/dhcpd start)

service vsftpd start(或者/etc/init.d/vsftpd start)

11、netstat -ntul 检查服务是否正确启动

tcp0 0 0.0.0.0:21 0.0.0.0:* LISTEN

udp0 0 0.0.0.0:67 0.0.0.0:*

udp0 0 0.0.0.0:69 0.0.0.0:*

12、访问ftp://ip/pub 检查ftp是否生效

13、在其他电脑用网卡引导检查是否可以通过PXE安装CentOS/RHEL

14、无人干预安装CentOS/RHEL,这不是必须的:

用system-config-kickstart 配置ks.cfg

15、配置default文件

vi /var/lib//tftpboot/pxelinux.cfg/default

label linux

kernel vmlinuz

append initrd=initrd.img ks=ftp://192.168.209.18/ks.cfg

PXE安装需要用到IP,UDP,DHCP,TFTP,最主要就是要求你所处的网络内有搭建好的用于PXE网络引导的DHCP服务器和TFTP服务器,你得确定你的设备所处的网络满足这些环境需求。

你开机时按F12能看到使用PXE的选项,选择这个选项,然后会有一系列自动 *** 作,见图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7319762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存