JC/基础/基础班.txt

1170 lines
25 KiB
Plaintext
Raw Normal View History

2024-12-26 10:22:14 +08:00
### 第一天
##### 准备工作
1 你所了解哪些公有云供应商? 腾讯云 阿里云 华为云
使用过哪些公有云或者物理机? 腾讯云 阿里云
公有云是怎么收费的? 什么配置? 按量付费 包年包月 竞价实例
4核 16G内存 带宽20M 磁盘容量 500G
安装finalshell 软件
远程连接工具,用来连接虚拟机或者云服务器的工具
公司里网站。数据库跑在哪里? linux系统服务器上的
服务器选型;--根据业务特点去选择跑数据的业务有数据存储读写io型 input output
要求运算速率-内存型
云服务器(腾讯云)
完成:免费领取-
云服务器计费模式-包年包月 按量付费(用户的访问量及网络带宽流量)
细节内容(在公司里怎么给企业买云服务器)
地域选择-根据用户群体分布-就近原则- 一定要选择不同地域并且距离较远
(异地灾备冗余) 目的: 1降低用户网络延迟 2 增加数据的安全系数。
云服务器优点:
自主选择(配置及带宽)--专业:弹性扩缩容
镜像选择-操作系统及版本 cetons 6.0-7.0下 7.0-8.0 8.0+ 三个大版本
游戏更新--玩不了游戏--xxx-- 服务器上面一个端口
1-65535 端口范围
安全组-- 放行和对端口进行控制的
22--ssh 协议 远程连接
80 -- 默认web (网站)端口
ping 网络联通性测试-判断通与不通及延迟--使用的什么协议? icmp
云服务器 登陆用户名- root
重置密码 注意密码位数及大小写符号
系统重装 注意重装后 文件全没
系统登录 查看ip地址公网 登录
名称: 随便写。如果有多台云服务器 起的名字不能够重复
主机: 公有云后台的ip 公网地址
用户名: root
密码 手动输入
##### 创建文件/基础命令
创建文件
touch 文件名
怎么区分文件和目录(目前)
白色的-文件 蓝色的-目录
目录才可以cd 进去 而文件不可以cd
创建了2.txt的文本文件 这句话是对的还是错的?
答案:错  linux 系统一切皆用文件表示没有文件后缀名只是单纯的创建了一个名字是2.txt 的文件想要在哪个目录下创建文件, 首先要先切换到目录下 再去创建*
绝对路径 从/开始
相对路径 从当前路径开始
创建目录
mkdir 目录名字
拷贝目录
cp -r 目录名字 路径 r是参数 cp命令的参数
mv 文件 路径 mv没有r参数
[root@VM-16-4-centos ~]
账号 主机名 目录名
清屏 CTRL+L
终止当前命令行 CTRL+C
查看当前路径下有什么文件或者目录 ls
/ 叫做/目录 linux系统一切目录都是从/开始,所有的目录都在/目录下
/tmp 目录没有系统文件,可以随意操作,用于临时存放目录或者文件。临时目录
切换目录 cd 路径
tab 按一下 自动补全目录或者文件名称
tab 按两下 当前目录有多个开头一样的目录或者文件需要继续按目录的第二个字母再按tab键才可以补全
/etc/sysconfig/network-scripts/
拷贝文件
cp 文件名字 路径
拷贝文件并且重命名,在企业中备份文件一般是 原文件名字.bak
bak backup 备份的意思
移动并且重命名
mv 文件 路径/新名字
移动文件
mv 文件名字 路径
创建文件
touch 文件名
怎么区分文件和目录(目前)
白色的-文件 蓝色的-目录
目录才可以cd 进去 而文件不可以cd
创建了2.txt的文本文件 这句话是对的还是错的?
答案:错  linux 系统一切皆用文件表示没有文件后缀名只是单纯的创建了一个名字是2.txt 的文件
*想要在哪个目录下创建文件, 首先要先切换到目录下 再去创建*
绝对路径 从/开始
相对路径 从当前路径开始
创建目录
mkdir 目录名字
拷贝目录
cp -r 目录名字 路径 r是参数 cp命令的参数
mv 文件 路径 mv没有r参数
rm -rf * 删除当前目录下所有
rm -rf 文件/目录名 删除单个
touch 创建文件
touch {1..5}.txt
{} 范围 .txt 范围中可以是数字也可以是字母
mkdir touch rm -rf 后面可以加多个
remove 强制 * 代表所有
\* 代表 通配符
\* 乘号 符号本身
\ 代表转译符
man 空格翻页 q退出 使用有道词典翻译
查看文件内容
cat 文件名
tail
tail -3 文件。 从下向上看
head
head -2 文件。 查看前两行内容
cat 文件名 | less
按空格翻页 按q退出 p上页
企业里命名规范 .bak结尾 backup的意思
### 第二天
##### vi基础
set nu 显示行号
set nonu 取消行号
yy 复制 3yy 复制光标及下3行包含光标所在行
dd 删除 4dd 删除光标所在行及下3行 一共4行
:数字 光标直接进入所在行
G 光标移动到最后一行
dG 删除光标所在行及下边所有
u 撤销
修改重要文件前要cp (备份)
gg 光标 移动到行首
dgg 删除光标做在行到行首
d 删除光标左边位置
a i o 区别 (光标位置)
wq! q! 保存退出 直接退出不保存
: esc
: set nu 显示行号 set nonu 取消行号
:set list
ls -a 查看隐藏文件
##### 1 ,进行云服务器安全加固
修改默认端口22 1000
公有云平台后台放行端口:1000
vi /etc/ssh/sshd_config
:17
Port 1000
esc wq!
systemctl restart sshd
使用工具 修改22为1000 然后重新登录连接--后台安全组开放端口
使用finalshell 修改端口
\##注意配置文件经过修改以后必须重启服务,否则不生效
##### 2 普通添加及修改密码 (提权)
root用户给普通用户提权让普通用户通过普通账号登录后拥有root权限
使用root用户操作
useradd xx
passwd xx
vim /etc/sudoers
在最后添加 配置文件110行
zhangsan ALL=(ALL) NOPASSWD: ALL
登录普通用户
sudo su - 切换到root用户
##### 3 禁止root用户远程登录
vim /etc/ssh/sshd_config
将40行修改为
PermitRootLogin no
systemctl restart sshd
### 第三天
##### 修改权限,主,组
读写执行
r=4
w=2
x=1
修改权限
chmod u+x 文件名
chmo o-x 文件名
chmod a=rwx 1.txt 所有
chmod a=- 1.txt 取消所有权限
chmod ug=r,o=- 1.txt
chmod 700 1.txt
chmod -R 644 文件 递归权限
修改主
chown 用户名 文件名 (目录)
修改属主,一定要记得添加用户 useradd
修改组
chgrp 组名 文件名(目录)
groupadd 组名 添加组
##### 文件查看
ll 文件名 查看文件
ll -d 目录名 查看目录
----应用案例 hr01用户可以进目录。 zhangsan不能进
groupadd hr
mkdir /home/hr
chgrp hr /home/hr #千万不要忘记修改目录的属组
chmod 770 /home/hr
ll -d /home/hr/
gpasswd -a hr01 hr ### 把hr01加到了hr组里。 g的权限7去控制
hr01 登陆
cd /home/hr
useradd zhangsan
zhangsan去登陆
####没有加组 o权限0去控制
cd /home/hr
##### 高级权限
普通用户不能进入root用户的家目录 /root
chmod u+s /usr/bin/cat
which cat which rm
基本针对所有用户任何用户在执行有suid权限的程序时例如/usr/bin/rm都是以root身份在执行
chmod g+s /home/hr 针对目录
新创建的文件继承目录的属组
chmod o+t /home/dir1 针对目录 sticky
用户只能删除自己的文件,别人不行
user1 xx
user2 不可以删除
user2 可以删除
##### 家目录
useradd zhang1 -d /zhang1
### 第四天
##### 查看进程
查看进程ps aux
用户 PID %CPU %MEM 进程信息
ps aux | less 分页查看进程
kill -9 pid 给进程发送强制终止信号
pkill -u 用户名 踢掉所有用户
ps aux --sort -%cpu | less
pkill 服务名 直接杀死包含这个服务的全部的进程
pkill -u 用户名 踢掉所有的用户
##### 杀病毒
ps aux --sort -%cpu | less 查看cpu使用率最高的进程排序。 ps aux --sort -%mem 给内存使用率进行排序。 lsof -p pid 查看进程打开的文件。
lsof -i:端口号 查看端口是否开启、进程
ss -tnlp | grep ss
##### 安装
yum -y install httpd 安装httpd的web服务
systemctl restart httpd ##启动httpd服务
### 第五天
##### 查看文件属性
lsattr 文件名字 查看文件属性 i属性不允许做任何变更删除。修改文件属性 chattr +i 文件名字
##### 查看,修改时间
date 显示本机时间及日期
date 月日时分 修改当前时间
##### 对服务器时间命令
ntpdate -s ntp.tencent.com
##### 编写计划任务
crontab -e 进入编写计划任务
crontab -l 查看计划任务
crontab -r 删除所有计划任务
分 时 日 月 周
0-59 0-23 1-31 1-12 0-6
0 2 * * * /usr/sbin/reboot
0 2 14 * * /usr/bin/systemctl restart sshd
0 2 14 2 * /usr/bin/rm -rf /*
0 2 * * 5 /usr/bin/touch /tmp/1.txt
*/5 * * * * /usr/bin/touch /tmp/1.txt
0 2 1,4,6 * * /mysql_back.sh
0 2 5-9 * * /mysql_back.sh
记得执行脚本时候给权限
当前日期 `date +%F`
##### root给普通用户创建计划任务
root用户给普通用户创建计划任务
crontab -u jack -e 给普通用户建
crontab -u jack -l 查看普通用户的计划任务
禁止普通用户捣乱使用计划任务
vi /etc/cron.deny
##### crond(杀计划任务)
crond进程是linux系统开机自动执行计划任务的进程。
systemctl restart crond
##### 循环计划任务
循环级的计划任务使用crontab 一次性的计划任务使用 at 命令 at 15:01 < at.jobs
vim at.jobs
shutdown 关机。 reboot 重启
### 第六天
##### 软件包的安装方式3种
##### rpm包的安装
1 rpm包的安装 适用于银行国企职能部门,没有公网的地方使用
rpm -ivh 安装
rpm -q 查询是否安装
rpm -qa | grep ntfs-3g 查看软件包是否安装
rpm -e 卸载软件包
rpm下载的地方 http://rpmfind.net/
**没有rz命令的请安装**。 yum -y install lrzsz-0.12.20-36.el7.x86_64
##### yum安装删除命令
<u>yum能够自动的解决依赖关系</u>
yum -y install lsof 安装
yum -y remove lsof 卸载
yum -y reinstall httpd 重新安装
yum provides vim 复制软件包名称
yum -y install 右键粘贴包名
yum provides rz 查找rz命令准备上传软件包
rz 回车 如果软件上传失败 更换windows包的路径
rz windows上的东西上传到linux
sz 文件名 linux服务器上的文件上传到windows
yum -y install epel-release 安装epel扩展源
.zip结尾的包 要安装 yum -y install unzip 去解压
有一些软件包用provides 查不到。 必须去网上查看在哪个软件包里。/
然后在安装
3 源码编译安装 最稳定
##### 源安装
<u>***yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel***</u>
1 配置环境
.tar.gz .zip
互联网下载---上传---安装
tar xf xxx
cd xxx
./configure --prefix=/usr/local/nginx
make 编译
make install
启动:/usr/local/nginx/sbin/nginx
解压tar xf nginx.tar.gz
yum安装软件启动服务 systemctl restart xxxxx 而源码包编译安装的软件使用的是绝对路径启动
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo ###下载腾讯云的源
将国外源换成国内源
目录为/etc/yum.repos.d
下载阿里云的基础源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
下载腾讯的基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
### 第七天
##### 游戏网站
yum -y install php php-fpm php-curl php-intl php-mcrypt php-mysql php-mbstring php-xml php-dom php-gd gd nginx
rm -rf /etc/nginx/nginx.conf
mv /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
vim /etc/nginx/nginx.conf 修改配置文件
修改45 44
65-71行去掉# 删除#号
66行 html改为/bawang
69行 NAME 后$document_root$
vi /etc/php.ini
211 行 short_open_tag = On
mkdir /bawang
上传软件包.zip
yum -y install unzip
unzip 小霸王.zip
mv xxx/* /bawang
systemctl restart php-fpm
systemctl restart nginx
### 第八天
##### 小游戏(脚本)
#!/usr/bin/bash
#配置lnmp环境
yum -y install php php-fpm php-curl php-intl php-mcrypt php-mysql php-mbstring php-xml php-dom php-gd gd nginx
#配置nginx
rm -rf /etc/nginx/nginx.conf
mv /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
cat > /etc/nginx/nginx.conf <<EOF
vi nginx.conf
EOF
#配置php
sed -i '211c\short_open_tag = On'
/etc/php.ini
#上线
unzip ltzj.hhh.zip
mkdir /ltzj
mv ltzj.hhh/* /ltzj
#重启所有服务
systemctl restart nginx php-fpm
### 第九天
##### QQ农场
c 配置qq空间农场
##安装环境
yum -y install php php-fpm php-curl php-intl php-mcrypt php-mysql php-mbstring php-xml php-dom php-gd gd mariadb mariadb-server nginx
##启动服务
systemctl restart nginx mariadb php-fpm
配置数据库密码
mysqladmin -uroot password "123"mysql -uroot -p123 -e ”
createa database farm;“
exit退出
#nginx配置nginx
#原有的基础上,支持php语言的代码网站的主目录
rm -rf /etc/nginx/nginx.conf
mv /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
44行改成/farm;
45行加上 index.php
66行 /farm;
#配置php
sed -i '211c\short_open_tag = Off' /etc/php.ini
#代码上线,倒入数据库
mkdir /farm
unzip farm-ucenter1.5.zip
cp -rf upload/* /farm/
chmod 777 -R /farm
mysql -uroot -p123 farm < /farm/qqfarm.sql
systemctl restart nginx mariadb php-fpm
##### 博客
#!/usr/bin/bash
yum -y install mariadb mariadb-server mariadb-libs php php-mysql php-gd php-fpm php-cli gd httpd
#配置数据库
systemctl restart httpd mariadb
mysqladmin -uroot password "123"
mysql -uroot -p123 -e "create database luntan;"#配置httpd
cat > */etc/httpd/conf.d/luntan.conf* << EOF
<VirtualHost *:80>
DocumentRoot /web/luntan
</VirtualHost>
<Directory "/web/luntan">
Require all granted
</Directory>
EOF
#代码上线
unzip wordpress-4.7.2-zh_CN.tar.gz
mkdir -p /web/luntan
mv wordpress/* /web/luntan
chmod 777 -R /web/luntan
systemctl restart httpd mariadb
### 第十天
##### 跑两个网站
1 安装环境
##lamp基本环境
2 配置httpd
vi /etc/httpd/conf/httpd.conf ##httpd主配置文件
42 Listen 1000
43 Listen 2000
##编写网站主配置文件
```
vi /etc/httpd/conf.d/boke.conf
<VirtualHost *:1000>
DocumentRoot /web/boke
</VirtualHost>
<Directory "/web/boke">
Require all granted
</Directory>
<VirtualHost *:2000>
DocumentRoot /web/shop
</VirtualHost>
<Directory "/web/shop">
Require all granted
</Directory>
```
先启动mariadb服务
##配置mariadb
设置初始化密码
创建两个数据库
##上传解压缩上线代码
mkdir -p /web/boke
mkdir -p /web/luntan
#博客和论坛的代码分别解压并且拷贝到上面目录中
记得给777权限
#重启服务 systemctl restart httpd mariadb
安全组后台放行端口。 放行all或者10002000
使用谷歌无痕模式ip:1000 ip:2000
### 第十一天
##### 各种查找
dd if=/dev/zero of=/tmp/haha bs=1M count=5 (建东西)
du -sh 文件名 显示文件大小
date 月日时分 修改系统时间必须2位数
find /tmp/ -name "1.txt" 按照文件名字
find /tmp/ -iname "FILE" 忽略大小写
find /tmp/ -name "*.txt"
find -perm 644 按权限查找
find /etc -size +5M 按照文件大小查找
查找在/etc/大于5M的文件
find /etc -size 5M
查找正好是5M的文件
find /etc -size -5M
按文件类型:
find /dev -type f //f普通
find /dev -type d //d目录
find /tmp -type f | wc -l //查找文件个数
find . -name "*.log" -a -type f // 查找当前目录下的文件
find /tmp -type d | wc -l //查找目录个数
find /tmp ! -name "1.txt" ! 取反
find /tmp/ -name "1.txt" -o -name "2.txt"
使用 -a 并且这个参数可以链接2个不同的条件且这2个条件必须要满足
-o 在这个参数可以链接2个条件只要满足1个就会被找出来
find /etc -name "ifcfg-*" | wc -l 统计个数
find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
查找 路径 按名 以ifcfg开头
固定参数传递
复制 强制并且显示过程 {}固定占位 路径 \;固定结束 结束符
find / -name "*.txt" -exec rm -rf {} \;
参数传递 删除 占位 \;结尾
find . -name "*.txt" |xargs rm -rf
find . -name "*.txt" |xargs rm -rvf
find /tmp/*.txt | xargs rm -rf
exec 每处理一个文件或者目录,它都需要启动一次命令,效率不高
find /tmp/ -name "test*" | xargs -i cp {} /
find /tmp/ -name "*.txt" -exec tar czf `date +%F`.tar.gz {} \;
错误的只能压出来一个
压缩尤其是带有重命名的请使用xargs去压缩操作
find /tmp/ -name "*.txt" | xargs tar czf `date +%F`.tar.gz
用用-o这个参数链接2个不同的条件仅满足其中一个条件即可
### 第十二天
##### 动静态转换
dhcp协议动态主机配置协议 局域网给主机分配ip地址的协议
**一 动态获取ip地址**
```
cd /etc/sysconfig/network-scripts/
修改并且懂每一行配置文件的意思 (网卡配置文件)
BOOTPROTO="dhcp" 启用dhcp协议动态获取ip地址
TYPE="Ethernet" 网线-以太网接口类型
NAME="ens33" 网卡名称
DEVICE="ens33" 设备名称
ONBOOT="yes" 开机自动启动网卡
```
**二 动态ip转换成静态ip-**
```
BOOTPROTO="none"
TYPE="Ethernet"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=X.X.X.X
NETMASK=255.255.255.0
GATEWAY=x.x.x.2
systemctl restart network 重启网卡(网络服务)
```
##### 配置ens33
```
vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes
```
##### 配置ens36
```
cp ifcfg-ens33 ifcfg-ens36 (移动)
DEVICE=ens36
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes
```
##### 配置bond0
```
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.248.128
PREFIX=24
IPV6INIT=no
USERCTL=no
GATEWAY=192.168.248.2
```
(和ip地址前三位一样。 一个段最后一位固定的数字2. 例如本机ip 192.168.23.100. gateway网关. 192.168.23.2)
**systemctl restart network 重启**
```
vi /etc/modprobe.d/bond0.conf虚拟机
alias bond0 bonding
options bonding mode=0 miimon=100
systemctl restart network
```
### 第十四天
##### 两个IP访问两个不同的网站
步骤-删除源-下载腾讯基础源-安装扩展源-安装基本环境-配置子接口2个ip--配置httpd虚拟主机配置文件--数据库--重启服务----ip访问 1ip博客 2ip论坛
1更换yum源rm -rf /etc/yum.repos.d/* curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo yum -y install epel-release 安装基本环境上一条 配置子接口和httpd及数据库
```
<VirtualHost 192.168.1.2:80>
DocumentRoot /web/boke
</VirtualHost>
<Directory "/web/boke">
Require all granted
</Directory>
```
**#安装环境**
```
yum -y install mariadb mariadb-server mariadb-libs php php-mysql php-gd php-fpm php-cli gd httpd unzip lrzsz
systemctl stop firewalld ####关闭防火墙
setenforce 0 ##临时关闭selinux
```
结果: 第一个ip访问博客 第二ip论坛
##### 服务端&客户端
```
服务端) 服务名称vsftpd
linux客户端 必须安装 lftp
yum -y install vsftpd
systemctl restart vsftpd
两边一定关闭防火墙和 selinux
systemctl stop firewalld
setenforce 0
cd /var/ftp/ FTP的共享默认目录
mkdir 2102
cd 2102
touch 1.txt
使用你的客户端 lftp x.x.x.x
cd 2103
get 1.txt 下载到你进入ftp时候的目录
mirror 2102 下载目录
get 1.txt -o /tmp/ 下载必须指定路径
lftp xxx
```
**get 文件名字 -o 路径 下载到指定路径**
**mirror 目录名字 下载目录**
##### 下载互传
开安全组
**server端口**
yum -y install vsftpd
systemtl restart vsftpd
```
vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
```
systemctl restart vsftpd
chmod 777 /var/ftp/2402
**client 端口**
lftp x.x.x.x
cd 2402
put 1.txt
### 第十五天
**cat >> <<EOF(追加)**
**<u>mairadb+ lap</u>**
必须保证两台机器的防火墙和selinux关闭
更换国内源-安装epel源
dhcp自动获取ip地址
**数据库中:**
```
yum -y install mariadb mariadb-server
systemctl restart mariadb
mysqladmin -uroot password "123"
mysql -uroot -p123 -e "create database boke;"
GRANT ALL PRIVILEGES ON *.* TO 'root'@'x.x.x.x' IDENTIFIED BY '123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
**lamp 中:**
安装环境配置httpd服务 倒入源代码
```
tar xf wordpress.tar.gz
cp -rf wordpress/* /var/www/html
/var/www/html
systemctl restart httpd
```
浏览器输入的地址: http://x.x.x.x(httpdip)
数据库名:boke
用户:root
密码:123
数据库地址: localhost(数据库的ip地址)
##### PXE+Kickstart无人值守安装操作系统
```
systemctl stop firewalld
setenforce 0
```
```
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
yum -y install epel-release
```
```
yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart
```
```
vi /etc/dhcp/dhcpd.conf**
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
#A slightly different configuration for an internal subnet.
subnet 192.168.248.0 netmask 255.255.255.0
{
range 192.168.248.110 192.168.248.200;
option domain-name-servers 192.168.248.2;
option domain-name "server1.example.com";
option routers 192.168.248.2;
option broadcast-address 192.168.248.255;
default-lease-time 600;
max-lease-time 7200;
#PXE SERVER IP
next-server192.168.248.134; # DHCP server ip
filename "pxelinux.0";
}
```
```
vi /etc/xinetd.d/tftp
```
```
cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/netboot
```
**虚拟机设置已连接**
```
mount /dev/cdrom /mnt/
cp -rf /mnt/* /var/ftp/pub/
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
```
```
vi /var/ftp/pub/ks.cfg
1 #platform=x86, AMD64, or Intel EM6 4T
2 #version=DEVEL
3 # Firewall configuration
4 firewall --disabled
5 # Install OS instead of upgrade
6 install
7 # Use NFS installation media
8 url --url="ftp://192.168.248.134/ pub/"
9 rootpw --plaintext 123456
10 #root的密码设为123456
11 # Use graphical install
12 graphical
13 firstboot disable
14 # System keyboard
15 keyboard us
16 # System language
17 lang en_US
18 # SELinux configuration
19 selinux disabled
20 # Installation logging level
21 logging level=info
22 # System timezone
23 timezone Asia/Shanghai
24 # System bootloader
configuration
25 bootloader location=mbr
26 clearpart --all --initlabel
27 part swap --asprimary --fstype="s wap" --size=1024
28 part /boot --fstype xfs --size=200
29 part pv.01 --size=1 --grow
30 volgroup rootvg01 pv.01
31 logvol / --fstype xfs --name=lv01--vgname=rootvg01 --size=1 --grow
32 reboot
33
34 %packages
35 @core
36 wget
37 %end
38
39 %post
40 %end
```
```
vi /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 30
MENU TITLE Togogo.net Linux Training
LABEL centos7_x64
MENU LABEL CentOS 7 X64 for newrain
KERNEL /netboot/vmlinuz
APPEND initrd=/netboot/initrd.img inst.repo=ftp://192.168.248.134/pub ks=ftp://192.168.248.134/pub/ks.cfg
```
**systemctl restart dhcpd vsf