查看积分策略说明发表回复
标题   (可选)
内容

Html 代码 可用
Smilies 可用
Discuz!代码 可用
[img] 代码 可用



禁用 URL 识别
禁用 Smilies
禁用 Discuz!代码
使用个人签名
接收新回复邮件通知
清除文本格式
撤销
重做
粗体
斜体
下划线
字体
大小

居左
居中
居右
左浮动
右浮动
排序的列表
未排序列表
减少缩进
增加缩进
插入邮箱链接
插入图片
插入引用
插入代码
插入表格
插入免费信息
插入隐藏内容
fly
flash
qq
ra
rm
wma
wmv
map
点击读取巧嘴娃娃或魔法表情
收缩编辑框扩展编辑框
[完成后可按 Ctrl+Enter 发布]

主题回顾
JarodLee

发表于 2018-12-6 15:45

转自:http://www.cnblogs.com/zhangjianghua/p/5872269.html


什么是PXE?

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。

PXE的工作过程:

1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;

3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;

4. PXE Client 取得pxelinux.0 文件后之执行该文件;

5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

详细工作流程,请参考下面这幅图:

 

PXEPre-boot eXcution Environment

  • 预启动执行环境,在操作系统之前运行
  • 可用于远程安装,构建无盘工作站
  • 规模化:同时装配多台服务器
  • 自动化:安装系统,配置各种服务
  • 远程实现:不需要光盘,U盘等安装介质

服务端

  • DHCP----------------用来分配IP地址,定位引导程序
  • TFTP-----------------提供引导程序下载
  • NFS------------------网络中文件共享

客户端

  • 网卡支持PXE协议
  • 主板支持网络启动

---------------------------------------------------我是分割线--------------------------------------------------------

实验环境:

服务器:笔记本系统Ubuntu14.04          ----------------DHCP--TFTP--NFS--------IP地址:192.168.1.20

交换机:小型TPlink交换机                     ------------------       采用两条直通线,连接服务器和客户端

客户机:旧服务器一台作为测试机              ------------------      进入BIOS,设置网络引导启动

---------------------------------------------------我是分割线--------------------------------------------------------

前提需要配置PXE服务器的网络:{如果Ubuntu中未安装VIM 编辑器,则使用nano进行编辑}

复制代码
nano /etc/network/interfaces

auto
lo
iface lo inet loopback auto eth0 iface eth0 inet none address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameserver 114.114.114.114
复制代码

这将把你的主机的IP设置成为192.168.1.20,保存文件后退出,重启网络。

service networking restart
ifdown eth0
ifup eth0

在此处需要注意的是,Ubuntu系统中两套管理网络连接的方案,network-manager可能会影响DHCP的连接,如果影响,关闭即可:后文中将会详细讲述network-manager。

service network-manager stop

 

第一步:DHCP

1.更新源以便获得最新的软件包,安装软件:isc-dhcp-Server 

sudo apt-get install isc-dhcp-Server

2.编辑 “/etc/default/dhcp3-server” 文件

sudo nano /etc/default/dhcp3-server

  作如下修改:

  INTERFACES="eth0"    (注:你刚才配置的静态IP的那个网卡)

 

3.编辑 “/etc/dhcp3/dhcpd.conf” 文件

复制代码
sudo nano /etc/dhcp/dhcpd.conf
 作如下修改:

  default-lease-time 600;

  max-lease-time 7200;

  subnet 192.168.1.0 netmask 255.255.255.0 {

  range 192.168.1.100 192.168.1.200;

  option subnet-mask 255.255.255.0;

  option routers 192.168.1.20;

  option broadcast-address 192.168.1.255;

  filename "pxelinux.0";

  next-Server 192.168.1.20;

  }
复制代码

4.启动 DHCP 服务

sudo /etc/init.d/isc-dhcp-server start

 

---------------------------------------------------我是分割线--------------------------------------------------------

第二步:TFTP

1.安装软件:tftpd-hpa , tftp-hpa , inetutils-inetd(分别为服务端+客户端+进程管理)

apt-get install tftpd-hpa tftp-hpa inetutils-inetd

2.编辑 “/etc/inetd.conf” 文件

在最后一行添加:
  tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

3.编辑 “/etc/default/tftpd-hpa” 文件

复制代码
sudo nano /etc/default/tftpd-hpa

  作如下修改:

  TFTP_USERNAME="tftp"

  TFTP_DIRECTORY="/var/lib/tftpboot"

  TFTP_ADDRESS="[:0.0.0.0:]:69"

  TFTP_OPTIONS="--secure"

  RUN_DAEMON="yes"

  OPTIONS="-l -s /var/lib/tftpboot"
复制代码

4.使用 xinetd 让 boot 服务在每次系统开机时自动启动,并启动tftpd服务

sudo update-inetd --enable BOOT
   sudo service tftpd-hpa start

5.检查状态。

复制代码
sudonetstat -lu

它将如下所示:

ProtoRecv-Q Send-Q LocalAddressForeignAddressState

udp 00*:tftp *:*

复制代码

---------------------------------------------------我是分割线--------------------------------------------------------

在这里备注一下xinetd服务 (可忽略)

复制代码
service tftp 
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot 【TFTP根目录】
        disable = no
        per_source              = 11
        flags                   = IPv4 }
复制代码

---------------------------------------------------我是分割线--------------------------------------------------------

第三步:配置 PXE 启动文件

现在,你需要将 PXE 引导文件 “pxelinux.0” 放在 TFTP 根目录下。为 TFTP 创建目录结构,并从 “/usr/lib/syslinux/” 复制 syslinux 提供的所有引导程序文件到 “/var/lib/tftpboot/” 下,操作如下:

sudo    mkdir /var/lib/tftpboot
sudo    mkdir /var/lib/tftpboot/pxelinux.cfg
sudo    mkdir -p /var/lib/tftpboot/Centos
sudo    cp /usr/lib/syslinux/vesamenu.c32  /var/lib/tftpboot/
sudo    cp /usr/lib/syslinux/pxelinux.0     /var/lib/tftpboot/

设置 PXELINUX 配置文件

PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导并与 TFTP 服务器关联。默认情况下,当一个 PXE 客户端启动时,它会使用自己的 MAC 地址指定要读取的配置文件,所以我们需要创建一个包含可引导内核列表的默认文件。

编辑 PXE 服务器配置文件,使用有效的安装选项。

编辑 “/var/lib/tftpboot/pxelinux.cfg/default”

复制代码
sudo nano /var/lib/tftpboot/pxelinux.cfg/default

default    ks  #默认启动的是 'label ks' 中标记的启动内核
prompt
1   #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。 timeout 6  #在用户输入之前的超时时间,单位为 1/10 秒 display boot.msg #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/ 目录下。也可以指定位类似 '/install/boot.msg'这样的,路径+文件名。 lable Linux #'label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动'label linux' 下标记的kernel 和initrd.img 文件。
kernel vmlinuz #kernel 参数指定要启动的内核 append initrd
=initrd.img #append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用。 lable text kernel vmlinuz append initrd=initrd.img text lable ks kernel vmlinuz append initrd=initrd.img ks=nfs://192.168.1.20/var/lib/tftpboot/Centos/ks.cfg ksdevice=eth0 #告诉系统,从哪里获取ks.cfg文件 lable local localboot 1 lable memtest86 kernel memtest append


# ksdevice=eth0代表当客户端有多块网卡的时候,要实现自动化需要设置从eth0安装,不指定的话,安装的时候系统会让你选择,那就不叫全自动化了。
复制代码
第二次搭建PXE安装Fusionstack1.8系统Default配置文件(可忽略这一步
复制代码
 1 default vesamenu.c32
 2 timeout 600
 3 display boot.msg      
 4 prompt 1
 5 
 6 label Fusionstack1.8
 7   menu label ^Install Fusionstack 1.8
 8   menu default
 9   kernel vmlinuz
10   append initrd=initrd.img ks=nfs://192.168.1.20/var/lib/tftpboot/ks.cfg
复制代码

 

编辑 “/var/lib/tftpboot/pxelinux.cfg/pxe.conf” 文件

复制代码
sudonano/var/lib/tftpboot/pxelinux.cfg/pxe.conf

作如下修改:
MENU TITLE PXE Server
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
MENU WIDTH 80
MENU ROWS 14
MENU TABMSGROW 24
MENU MARGIN 10
MENU COLOR border 30;44#ffffffff #00000000 std
复制代码

 为 PXE 服务器添加 Centos7 启动镜像,这里我使用的是Centos7光盘,进行挂载使用,也可以到官网进行下载。

mount /dev/cdrom  /mnt
cp -r  /mnt/*  /var/lib/tftpboot/Centos
cp /mnt/casper/initrd.lz  /var/lib/tftpboot/Centos
cp /mnt/casper/vmlinuz  /var/lib/tftpboot/Centos

---------------------------------------------------我是分割线--------------------------------------------------------

第四步:将导出的 ISO 目录配置到 NFS 服务器上

现在,你需要通过 NFS 协议来设置“安装源镜像( Installation Source Mirrors)”。你还可以使用 HTTP 和 FTP 来安装源镜像。在这里,我已经使用 NFS 输出 ISO 内容。

这里采用NFS来做文件共享:apt-get  install  nfs-kernel-Server

 

要配置 NFS 服务器,你需要编辑 “/etc/exports” 文件。

复制代码
sudo    nano  /etc/exports

添加:
/var/lib/tftpboot/Centos *(ro,async,no_root_squash,no_subtree_check)

保存文件并退出。为使更改生效,输出并启动 NFS 服务。
sudo     exportfs -a
sudo    /etc/init.d/nfs-kernel-server start
复制代码

无人值守ks.cfg文件:(文件放在/var/lib/tftpboot/Centos目录下)

复制代码
 1 #version=DEVEL
 2 # System authorization information
 3 auth --enableshadow --passalgo=sha512
 4 #Network information
 5 network --bootproto=dhcp  --device=enp4s0f1 --onboot=yes  --ipv6=auto
 6 # Install OS instead of upgrade  
 7 install
 8 nfs --server=192.168.1.20 --dir=/var/lib/tftpboot/Centos
 9 # Use graphical install
10 graphical
11 # Run the Setup Agent on first boot
12 firstboot --enable
13 # Keyboard layouts
14 keyboard --vckeymap=us --xlayouts='us'
15 # System language
16 lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
17 
18 # Root password
19 # root密码是: rootroot
20 rootpw --iscrypted $6$7gdZF8XhDef10LyT$2uRiP4qFYaBBTgpggKU/BXKgMDJLWN/BriXXgBwyzkjaz9G9YP/xD08I1OJfgBcPMoURsE5inVIoX.J6aERmR0
21 # System services
22 services --disabled="chronyd"
23 # System timezone
24 timezone Asia/Shanghai --isUtc --nontp
25 # System bootloader configuration
26 bootloader --location=mbr --boot-drive=sda
27 autopart --type=lvm
28 # Partition clearing information
29 clearpart --all --initlabel --drives=sdb
30 
31 %packages
32 @^minimal
33 @core
34 
35 %end
复制代码

 

至此,PXE服务器已经准备好了。

第二次搭建PXE安装Fusionstack1.8系统ks.cfg配置文件(可忽略这一步)

复制代码
#version=DEVEL

# System authorization information

auth --enableshadow --passalgo=sha512


install
text
nfs --server=192.168.1.20 --dir=/var/lib/tftpboot/Fusionstack1.8

# Use graphical install

graphical

firstboot --disable

ignoredisk --only-use=sda

# Keyboard layouts

keyboard --vckeymap=us --xlayouts='us'

# System language

lang en_US.UTF-8



# Network information

network  --bootproto=dhcp --device=enp4s0f0 --ipv6=auto

network  --bootproto=dhcp --device=enp4s0f1 --onboot=off --ipv6=auto

network  --bootproto=dhcp --device=ens11f0 --onboot=off --ipv6=auto

network  --bootproto=dhcp --device=ens11f1 --onboot=off --ipv6=auto

network  --hostname=localhost.localdomain



# Root password

rootpw --iscrypted $6$P2gG5V06$s2.JLSWy/eSeKW12PPLa2fDN.QkkyOaXuaNwH3PDOwqDB0HqPsdReGjGbt7D5bjI2v8QR2hmj6SGXwiwebPrO/

# SELinux configuration

selinux --enforcing

# System services

services --disabled="chronyd"

# System timezone

timezone Asia/Shanghai --isUtc --nontp

# System bootloader configuration

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information

clearpart --all --initlabel --drives=sda



%post --nochroot



#!/bin/bash

set -x -v

exec 1>/mnt/sysimage/root/kickstart-stage1.log 2>&1



mkdir -p /mnt/sysimage/opt/zstack-dvd/



echo "==> copying files from media to install drive..."

cp -r /run/install/repo/* /mnt/sysimage/opt/zstack-dvd/



%end



%post

 

#!/bin/sh

set -x -v

exec 1>/root/kickstart-stage2.log 2>&1

ls -l /opt/zstack-dvd/

 

%end



%post



#!/bin/sh

set -x -v

exec 1>/root/kickstart-stage3.log 2>&1

#mkdir -p /root/centos-repo

#mv /etc/yum.repos.d/CentOS*.repo /root/centos-repo/

cp /opt/zstack-dvd/repo/* /etc/yum.repos.d/

cp /opt/zstack-dvd/scripts/* /usr/local/bin/

ls -l /etc/yum.repos.d/



sed -i "s/SELINUX\=enforcing/SELINUX\=disabled/g" /etc/selinux/config

sed -i "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config



echo virtual-host > /etc/tuned/active_profile



chkconfig NetworkManager off

chkconfig firewalld off

chkconfig iptables on



%end



%packages

@^minimal

@core

bash-completion

bridge-utils

gcc

iptables

iptables-services

kexec-tools

kexec-tools

net-tools

pciutils

python-devel

sysstat

vim

wget



%end



%addon com_redhat_kdump --enable --reserve-mb='auto'



%end
复制代码

 

---------------------------------------------------我是分割线--------------------------------------------------------

 在做测试的时候,排错思路:tail -f /var/log/syslog 应该随时查看系统日志进行纠错

DHCP连接时报文:

Sep  9 13:04:48 zhang-ThinkPad-Edge-E431 dhcpd: DHCPDISCOVER from 90:e6:ba:1f:c5:ef via eth0
Sep  9 13:04:48 zhang-ThinkPad-Edge-E431 dhcpd: DHCPOFFER on 192.168.1.102 to 90:e6:ba:1f:c5:ef via eth0
Sep  9 13:04:59 zhang-ThinkPad-Edge-E431 dhcpd: Wrote 3 leases to leases file.
Sep  9 13:04:59 zhang-ThinkPad-Edge-E431 dhcpd: DHCPREQUEST for 192.168.1.102 (192.168.1.20) from 90:e6:ba:1f:c5:ef via eth0
Sep  9 13:04:59 zhang-ThinkPad-Edge-E431 dhcpd: DHCPACK on 192.168.1.102 to 90:e6:ba:1f:c5:ef via eth0

TFTP连接时报文:

复制代码
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6966]: tftpd: trying to get file: pxelinux.0
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6966]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6968]: tftpd: trying to get file: pxelinux.cfg/8c6b4dc2-837a-da11-b45d-b37d29a9f83d
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6968]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6970]: tftpd: trying to get file: pxelinux.cfg/01-90-e6-ba-1f-c5-ef
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6970]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6972]: tftpd: trying to get file: pxelinux.cfg/C0A80166
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6972]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6974]: tftpd: trying to get file: pxelinux.cfg/C0A8016
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6974]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6976]: tftpd: trying to get file: pxelinux.cfg/C0A801
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6976]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6978]: tftpd: trying to get file: pxelinux.cfg/C0A80
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6978]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6980]: tftpd: trying to get file: pxelinux.cfg/C0A8
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6980]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6982]: tftpd: trying to get file: pxelinux.cfg/C0A
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6982]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6984]: tftpd: trying to get file: pxelinux.cfg/C0
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6984]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6986]: tftpd: trying to get file: pxelinux.cfg/C
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6986]: tftpd: serving file from /tftpboot
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6988]: tftpd: trying to get file: pxelinux.cfg/default
Sep 12 10:25:48 zhang-ThinkPad-Edge-E431 tftpd[6988]: tftpd: serving file from /tftpboot
复制代码

---------------------------------------------------我是分割线--------------------------------------------------------

kickstart文件详解:

在此可以参考官方文档:CentOS6 : https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

ks.cfg文件组成大致分为3段

•命令段 
 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项


•软件包段

1.%packages
2.@groupname:指定安装的包组
3.package_name:指定安装的包
4.-package_name:指定不安装的包


在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。
•脚本段(可选)
1.%pre:安装系统前执行的命令或脚本(由于只依赖于启动镜像,支持的命令很少)
2.%post:安装系统后执行的命令或脚本(基本支持所有命令)

---------------------------------------------------我是分割线--------------------------------------------------------

auth 或 authconfig(必要) 設定系統的身份認證選項,預設啟用 shadow 密碼。
--useshadow 或 --enableshadow — 使用 shadow 密碼。預設上會啟用此選項。
--passalgo= — 選擇 sha256 以設定 SHA-256 雜湊演算法則,或選擇 sha512 來設定 SHA-512 雜湊演算法則。

autopart (選用)  自動建立分割區 — root(/)分割區(1 GB 以上)、swap 分割區、以及適用於該架構所需大小的 boot 分割區
請注意,autopart 選項不能在同樣的 kickstart 檔案中,與 part/partition、raid、logvol、或 volgroup 選項同時使用。

bootloader(必要)指定開機載入程式的安裝方式。安裝與升級時,都需要這選項。
--append= — 指定核心參數。如要指定多個核心參數,請以空白字元來將它們隔開。

clearpart(選用性)在建立新分割區之前,從系統移除分割區。預設上,不會移除任何分割區。
--none(預設值)— 不移除任何分割區。 --linux — 清除所有 Linux 分割區。--initlabel 選項已經淘汰。

firstboot(選用性) 決定第一次系統啟動時,是否要執行 firstboot。如果啟用此功能,就必須安裝 firstboot 套件。如果沒有指定的話,預設上此選項是停用的。
--enable 或 --enabled — 設定代理程式 在系統第一次開機時啟用。
--disable 或 --disabled — 設定代理程式 在系統第一次開機時不啟用。
--reconfig — 在重新配置模式下使 設定代理程式 在開機時啟用。除了預設的選項之外,此模式還可啟用語言、滑鼠、鍵盤、root 密碼、安全層級、以及時區配置選項。

graphical(選用性)以圖形介面進行 Kickstart 安裝。這是預設值。

install(選用性) 命令系統重新安裝,而非從既有的系統升級。這是預設模式。若要安裝,您必須從 cdrom、harddrive、nfs 或 url(FTP、HTTP 或 HTTPS 安裝)指定安裝類型。install 指令必須位於和安裝方式指令不同的一行上。
nfs — 從指定的 NFS 伺服器安裝。
  --server= 安裝來源的伺服器(主機名稱或 IP 位址)。
  --dir= 包含安裝樹 variant 目錄的目錄。
  --opts= 使用於掛載 NFS export 的掛載選項。(選用)

 

keyboard(必要)為系統設置預設鍵盤類型。

lang(必要)設定在安裝過程與安裝後系統的預設語言。

network(選用)為目標網路配置網路資訊,並啟動安裝程式環境中的網路裝置。
bootproto 選項的預設值為 dhcp。bootp 和 dhcp 視為同等。
--hostname= — 要安裝的系統之主機名稱。

part 或 partition(安裝時的必要選項;升級時會予以忽略)

rootpw(必須)將系統的 root 密碼設置為 <password> 引數。

timezone(必要)將系統的時區設為 <timezone>,所有時區列在 /usr/share/zoneinfo 目錄中

network(選用)為目標網路配置網路資訊,並啟動安裝程式環境中的網路裝置。如果安裝過程中需要存取網路,第一組 network 指令所指定的裝置會自動啟動,例如透過網路或 VNC 安裝。從 RHEL 6.1 開始,您也可以透過 --activate 選項,指定要在安裝程式環境中啟動的裝置。
--activate — 在安裝環境中啟用此裝置。

可使用下列五種方法之一來指定裝置:

## 介面卡的裝置名稱,例如 eth0
## 介面卡的 MAC 位址,例如 00:12:34:56:78:9a
## 關鍵字 link,它可指定連結為 up 狀態的第一個介面卡
## bootif 關鍵字,它使用了 pxelinux 設置於 BOOTIF 變數中的 MAC 位址。請在您的 pxelinux.cfg 檔案中設置 IPAPPEND 2,以使 pxelinux 設置 BOOTIF 變數。
## ibft 關鍵字,它使用了由 iBFT 所指定的介面卡的 MAC 位址

---------------------------------------------------我是分割线--------------------------------------------------------

 Inetd进程详解

Inetd 也叫作超级服务器,见识一些网络请求的守护进程,根据网络请求来调用相应的服务进程来处理连接请求。

Inetd.conf则是inetd的配置文件

inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。

TFTP是由xinetd管理的服务,所以TFTP的配置文件是/etc/xinetd.d/tftp

     /etc/inetd.conf文本文件中各行的含义如下:
1.服务名称(service_name):这个服务名称必须在/etc/services中定义。
2.套接字类型(socket_type):套接字是流套接字还是倾听套接字类型。
3.使用的协议类型(protocol):即TCP协议或者UDP协议。有的服务可能同时支持两种协议。
4.等待状态(wait_flag):如果指定为nowait,超级服务器将允许指定的服务并发,它将在本次服务未完成时,启动下一次服务。否则,该项服务将不能并发执行,一次只能服务于一个用户进程,下一个用户进程只能等到本次服务结束后才能得到服务。
5.用户名(login_name):服务器将以该用户名对应的权限运行进程。由于inetd是具有超级权限的进程,而有些服务可能是某个用户自己编写的,不应当或没有必要以超级用户的权限运行。inetd将根据这个记录在exec加载子进程时修改进程的运行权限。
6.服务器的可执行文件的位置(server_program):inetd使用这个项目定位服务器程序的位置(使用绝对路径名)。
7.程序的参数(server_program_arguments):inetd将在exec函数中使用这行参数。

---------------------------------------------------我是分割线--------------------------------------------------------

Network-Manager详解:

我的Ubuntu网络图标现在显示成无线网络图标,不是两个电脑。而且在编辑连接有线那栏里只有几个虚拟机的网卡配置,没有eth0。用ifconfig能够显示出eth0,机器也能正常上网。


Linux
里面有两套管理网络连接的方案:/etc/network/interfaces/etc/init.d/networking)和Network- Manager
两套方案是冲突的,不能同时共存。
第一套方案适用于没有X的环境,如:服务器或者那些完全不需要改动连接的场合。
第二套方案使用于有桌面的环境,特别是笔记本,搬来搬去,网络连接情况随时会变的。


他们两个为了避免冲突,又能共享配置,就有了下面的解决方案:
Network-Manager发现 /etc/network/interfaces被改动的时候,则关闭自己(显示为未托管),除非managed设置成真。
managed设置成真时,/etc/network/interfaces则不生效。


因此,编辑/etc/NetworkManager/nm-system-settings.conf文件:
vi /etc/NetworkManager/nm-system-settings.conf
找到如下行:
managed=false
并修改为:
managed=true
重启后就会正确显示两个电脑的网络图标,并且能够正常显示连接信息了。

---------------------------------------------------我是分割线--------------------------------------------------------

DHCP原理详解:

典型的DHCP过程是这样的:
1:客户机向服务器发送DHCP_DISCOVER报文,申请IP。
2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP。
3:客户机向服务器发送DHCP_REQUEST报文,请求这个IP。
4:服务器PING几次(一般是3次)这个IP,如果没得到响应的话,就说明这个IP现在空闲,可以分配给客户机,所以向客户机发送DHCP_ACK报文,确认可以分配。如果得到相应,则发送DHCP_NAK报文,拒绝分配。
5:如果客户端收到DHCP_ACK,责发送一次免费ARP,判断这个IP是否已经被用。没有被用的话则绑定这个服务器分配来的IP,否则向服务器发送DHCP_DECLINE报文,拒绝这次分配。并重新执行第一步。
如果收到的是DHCP_NAK,则直接重新执行第一步。

---------------------------------------------------END--------------------------------------------------------

 

个人备忘,欢迎阅读




当前时区 GMT+8, 现在时间是 2024-11-24 20:19
皖ICP备06012908号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Build by Jarod Lee 5.5.0  © 1980~
show Ght take 0.015475 (s), 6 queries ,with Gzip

清除 Cookies - 联系我们 - ۩ 干海棠 ۩ ®加入收藏 ®设为首页 - Archiver - 有书一起读