如何远程安装Linux操作系统
一、基本原理:
PXE(Pre-boot Execution
Environment)是由Intel设计的协议,他能使计算机通过网络启动。协议分为client和server两端,PXE
client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE
client将放置在远端
二、步骤:
有了前面的背景知识,接下来就能正式操作了,下面按照顺序给出了操作步骤:
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-cportcode 2 = unsigned integer 16;
option PXE.mtftp-sportcode 3 = unsigned integer 16;
option PXE.mtftp-tmoutcode 4 = unsigned integer 8;
option PXE.mtftp-delaycode 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.22;filename
""指定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:imagesbootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程式在
内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:dosutilsrawrite
E:imagesbootnet.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的网络安装界面。
2024-08-19 广告
2014-12-31 · 知道合伙人数码行家
知道合伙人数码行家
向TA提问 私信TA
如果只是使用nfs远程安装的话 就可以 不用安装 kickstart了
首先 在 使用dhcp配置一个 地址池 并且 写下 bootp; booting; filename "pxelinux.0";
然后使用tftp共享出去pexlinux.0文件 以及所默认的.cfg文件
最后 就是使用nfs共享出 镜像包 即可
我只是说了一个大概 但是 按照这个 思路就可以做出来了