PXE实现批量安装部署(win与linux系统)
1、PXE简介
PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
2、启动步骤详解
1、服务器加电启动,从DHCP服务器获取IP地址并加载(PXEClient)。
2、通过TFTP服务器获取网络引导程序(pxelinux.0)。
3、引导程序读取配置文件(pxelinux.cfg本例中文件名为:default)。
4、引导程序加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz)、自动应答程序(ks.cfg)。
5、按自动应答文件中指定的网络安装方式,以FTP方式安装linux系统。
3、使用工具
A、tftpd64
B、Xlight FTP 服务器
4、本例约定
A、pxe环境服务器地址:192.168.2.120
B、pxe客户机分配地址:192.168.2.240 - 192.168.2.250
C、目录结构
D:\pxe\ :PXE环境软件目录。
D:\pxe\tftpd64\ :tftp软件目录。
D:\pxe\tftpd64\pxe\ :pxe启动文件目录
D:\pxe\tftpd64\pxe\pxelinux.cfg :pxe配置文件目录(TFTP工作目录)。
D:\pxe\xlight\ :Xlight FTP 软件目录。
D:\pxe\src :Redhat 6.5光盘镜像目录(FTP工作目录)。
5、TFTP 工具配置
A、DHCP配置
主要配置DHCP的地址池,主要有以下几个需要注意的。
注意:pxelinux.0 文件存放在TFTP工作目录的根目录,所以不用加路径(如图)
dhcp.png
B、TFTP配置
只需指定TFTP工作目录即可。
tftp
6、Xlight FTP 服务器配置
A、配置FTP服务器IP和端口
image
B、创建FTP用户,并制定FTP工作目录
我没有设置密码,个人感觉没设置密码的必要,想设也可以设置。
image
7、PXE引导配置文件修改
文件位置:D:\pxe\tftpd64\pxe\pxelinux.cfg\default
修改目的:增加KS.CONF 文件配置,使PXE可以加载KS.CONF(自动应答文件),开始自动安装Redhat。
image
8、KS.CONF配置
遵循红帽子kickstart规范,注意安装模式选择FTP方式安装
image
9、集成环境下载
博客无法上传附件,所以我传到我的网站上了。
下载地址:
pxe批量部署linux服务器
1、pxe介绍
PXE是 有intel设计的协议,它可以使计算机通过网络启动,协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导 时,BIOS把PXE client调入内存中执行,并显示出命令菜单,经用户选择PXE启动后,PXE client获取网络地址信息,然后将放置在远端的服务器上的操作系统文件通过网络下载到本地运行
既然是通过网络传输,就需要IP地址,也就是说在PXE启动过程中,PXE客户端会请求DHCP服务器分配IP地址,之后PXEclient使用TFTP client通过TFTP协议连接服务器下载启动安装程序所需要的文件到本地
2、PXE安装过程
wKiom1SX4kHh1RWYAAHds9-3LXA997.jpg
第一步:PXE client向DHCPserver发送请求
首先,开机启动PXE安装,此时PXE client会通过 PXE Boot ROM(自动芯片)以UDP(简单用户数据协议)的形式在网络中发送一个广播请求,请求DHCP服务器分配IP地址等相关信息。
第二步:DHCP服务器应答PXE client
DHCP验证是否是合法的PXE client的请求,验证通过后,回应PXE client,回应中包含了为PXE client分配的ip之地址、TFTP(pxelinux启动程序)的位置,以及配置文件所在的位置。
第三步:PXE client请求下载启动文件
客户端收到DHCP的回应后,向TFTP服务器请求传送启动系统安装所需要的文件,这些文件包括:pxelinux0、pxelinux.cnf/default(内核文件)、vmlinuz、initrd.img等文件
第四步:TFTP服务器响应客户端请求并传送文件
当 TFTP收到客户端的请求之后,发给客户端所需要的启动文件,BootROM由TFTP通讯协议从BootServer下载启动安装程序所必须的文件 (pxelinux0、pxelinux.cnf/default),default文件下载完之后会根据该文件定义的引导顺序,启动linux安装程序 的引导内核。
第五步:请求下载自动应答文件(ftp服务器)
PXE client通 过default文件成功的引导linux安装内核后,安装程序首先确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS、HTTP、 FTP),则会在这个时候初始化网络,并定位安装系统所需的二进制包以及配置文件的位置,接着会读取该文件中指定的自动应答文件ks.cfg,然后根据 ks.cfg中的文件位置请求下载相关文件。
第六步:根据ks.cfg文件内容进行安装系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
3、pxe的部署
系统:CentOS release 6.4 (Final)- 2.6.32-358.el6.x86_64
所需服务:vsftpd,dhcp,tftp
步骤:
1)配置DHCP,用于给客户端提供IP地址及其它信息
2)配置TFTP服务器,用于提供客户端PXE引导所必须的文件
3)配置FTP服务器,用于存放安装文件
4)配置Kickstart,用于自动应答安装
5)使用PXE功能引导客户机
3.1 配置dhcp服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@PXE-SERVER ~]# yum install dhcp –y
[root@PXE-SERVER ~]# vim /etc/dhcp/dhcpd.conf
[root@PXE-SERVER ~]# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
optionrouters 192.168.1.1;
option subnet-mask 255.255.255.0;
optiondomain-name "JeckFY.org";
optiondomain-name-servers 192.168.1.1;
optiontime-offset -18000;
range192.168.1.128 192.168.1.254;
default-lease-time21600;
max-lease-time43200;
next-server 192.168.1.1;
filename"pxelinux.0";
}
[root@PXE-SERVER ~]# service dhcpd configtest
Syntax: OK
[root@PXE-SERVER ~]# service dhcpd start
Starting dhcpd: [ OK ]
[root@PXE-SERVER ~]# netstat -anput | grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 1300/dhcpd
[root@PXE-SERVER ~]# ps -ef | grep dhcp
dhcpd 1300 1 0 22:40 ? 00:00:00 /usr/sbin/dhcpd -user dhcpd-group dhcpd
root 1307 1155 022:41 pts/0 00:00:00 grep dhcp
[root@PXE-SERVER ~]# chkconfig dhcpd on
3.2 配置tftp服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
1)安装软件
[root@PXE-SERVER ~]# yum install xinetd tftp* syslinux -y
[root@PXE-SERVER ~]# vim /etc/xinetd.d/tftp
[root@PXE-SERVER ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivialfile transfer \
# protocol. The tftp protocol is often used to bootdiskless \
# workstations,download configuration files to network-aware printers, \
# and to start theinstallation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #开启tftp服务,默认为yes
per_source = 11
cps = 100 2
flags = IPv4
}
2)拷贝所需文件
TFTP服务器为客户端主要提供pxelinux.0引导文件,
vmlinuz内核文件,initrd.img基础安装平台文件以及default文件。
挂载OS镜像到/media目录下,用于拷贝所需文件
[root@PXE-SERVER ~]# mount /dev/cdrom /media/
mount: block device /dev/sr0 is write-protected, mountingread-only
拷贝pxelinux.0vmlinuz initrd.img,以及生成default文件
[root@PXE-SERVER ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/
[root@PXE-SERVER ~]# cp /media/isolinux/vmlinuz /var/lib/tftpboot/
[root@PXE-SERVER ~]# cp /media/isolinux/initrd.img/var/lib/tftpboot/
[root@PXE-SERVER ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@PXE-SERVER ~]# cp /media/isolinux/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/
[root@PXE-SERVER ~]# mv /var/lib/tftpboot/pxelinux.cfg/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default
[root@PXE-SERVER ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@PXE-SERVER ~]# ls /var/lib/tftpboot/pxelinux.cfg/
default
3)编辑default文件
[root@PXE-SERVER ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default linux #default项中标记的启动内核为默认启动项
prompt 0 #显示boot:提示符。为0时则不提示,将会直接启动default参数中指定的内容。
为1时会等待输入label后关键字,从而启动相应内核
timeout 600 #等待超时时间
display boot.msg
label linux
menu label ^Install orupgrade an existing system
menu default
kernel vmlinuz #kernel 参数指定要启动的内核。
append initrd=initrd.imgks=ftp://192.168.1.1/ks.cfg ksdevice=eth0
# ks指定了ks文件的路径,ksdevice指定从哪块网卡获取安装文件
4)启动tftp
[root@PXE-SERVER ~]# service xinetd start
Starting xinetd: [ OK ]
[root@PXE-SERVER ~]# chkconfig xinetd on
[root@PXE-SERVER ~]# netstat -anput | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@PXE-SERVER ~]# yum install vsftpd –y
[root@PXE-SERVER ~]# mkdir -p /var/ftp/centos
[root@PXE-SERVER ~]# cp -fr /media/* /var/ftp/centos/
[root@PXE-SERVER ~]# ls /var/ftp/centos/
CentOS_BuildTag RELEASE-NOTES-en-US.html
EFI repodata
EULA RPM-GPG-KEY-CentOS-6
GPL RPM-GPG-KEY-CentOS-Debug-6
images RPM-GPG-KEY-CentOS-Security-6
isolinux RPM-GPG-KEY-CentOS-Testing-6
Packages TRANS.TBL
[root@PXE-SERVER ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@PXE-SERVER ~]# chkconfig vsftpd on
[root@PXE-SERVER ~]# netstat -anput | grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1444/vsftpd
3.4 生成ks.cfg文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[root@PXE-SERVER~]#yum install system-config-kickstart –y
进入图形化界面配置kickstart
[root@PXE-SERVER ~]# init 5
[root@PXE-SERVER ~]#system-config-Kickstart
按照提示进行配置,最后保存到/var/ftp/目录下
[root@PXE-SERVER ~]# cat /var/ftp/ks.cfg
#platform=x86, AMD64, 或 IntelEM64T
#version=DEVEL
# Firewall configuration
firewall --enabled
# Install OS instead of upgrade
install ====>表示全新安装,而不是升级update
# Use network installation
url --url="ftp://192.168.1.1/centos" ====>OS文件所在的位置
# Root password
rootpw --iscrypted $1$5axKiu3u$l2pavqIifA/MUgXUHadKa. ====>root密码
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical ====>表示采用图形化模式安装(不是安装图形化界面)
firstboot –disable ====>安装完时候自动重启(若启用该设置会导致第二次自动安装)
# System keyboard
keyboard us ====>键盘语言
# System language
lang en_US ====>系统语言环境
# SELinux configuration
selinux –enforcing ====>selinux是否启用
# Installation logging level
logging --level=info ====>日志级别
# System timezone
timezone Africa/Abidjan ====>时区设置
# Network information
network --bootproto=dhcp--device=eth0 --onboot=on ====>网卡设置
# System bootloader configuration
bootloader --location=mbr ====>硬盘模式为mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel ====>清除全部分区
# Disk partitioning information ====>分区信息
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=4096
part / --fstype="ext4" --grow --size=1
%packages ====>默认安装软件包
@base
@chinese-support
@development
@system-admin-tools
%end
至此:pxe服务器端已经部署完毕。在客户机端开机选择pxe启动,就可以实现自动批量装系统
扩展
多版本同时批量部署
修改default的文件
default linux
prompt 1
timeout 600
#display boot.msg
display memu
label centos5.6
kernel centos5.6/vmlinuz
appendinitrd=centos5.6/initrd.img ks=ftp://192.168.1.1/ks/centos5.6.cfg ksdevice=eth0
label centos6.0
kernel centos6.0/vmlinuz
appendinitrd=centos6.0/initrd.img ks=ftp://192.168.1.1/ks/centos6.0.cfg ksdevice=eth0
label centos6.4
kernel centos6.4/vmlinuz
appendinitrd=centos6.4/initrd.img ks=ftp://192.168.1.1/ks/centos6.4.cfg ksdevice=eth0
在根据default文件的各个所需文件的路径。创建对应的文件即可
http://www.sooopu.com/sozd/soom/ic71wqjd/
http://www.sooopu.com/sozd/soom/e82xr/
http://www.sooopu.com/sozd/soom/3js7fwrke/
http://www.sooopu.com/sozd/soom/wqjd82xrke/
http://www.sooopu.com/sozd/soom/wqjd82xrke/
http://www.sooopu.com/sozd/soom/ztnhb5f/
http://www.sooopu.com/sozd/soom/hb5gp/
http://www.sooopu.com/sozd/soom/xrke93ysmf/
http://www.sooopu.com/sozd/soom/xsmf93yt/
http://www.sooopu.com/sozd/soom/60vpic/
http://www.sooopu.com/sozd/soom/ga4f9/
http://www.sooopu.com/sozd/soom/51wqje82/
http://www.sooopu.com/sozd/soom/e82xs/
http://www.sooopu.com/sozd/soom/6mf93/
http://www.sooopu.com/sozd/soom/o3ztnga4/
http://www.sooopu.com/sozd/soom/o3ztnga4/
http://www.sooopu.com/sozd/soom/xr60wqjd/
http://www.sooopu.com/sozd/soom/2xrke93/
http://www.sooopu.com/sozd/soom/r6093jd7fx/
http://www.sooopu.com/sozd/soom/a4ztohb5/
http://www.sooopu.com/sozd/soom/94ztn2ys1/
http://www.sooopu.com/sozd/soom/jd72xrke83/
http://www.sooopu.com/sozd/soom/gb51/
http://www.sooopu.com/sozd/soom/m1wrzt/
http://www.sooopu.com/sozd/soom/k2xrz/
http://www.sooopu.com/sozd/soom/qjva/
http://www.sooopu.com/sozd/soom/qjva/
http://www.sooopu.com/sozd/soom/d71wqke/
http://www.sooopu.com/sozd/soom/jfa4z/
http://www.sooopu.com/sozd/soom/e82ic/
http://www.sooopu.com/sozd/soom/pic60/
http://www.sooopu.com/sozd/soom/p4uoh/
http://www.sooopu.com/sozd/soom/b5fa4z/
http://www.sooopu.com/sozd/soom/p4ztnhb5/
http://www.sooopu.com/sozd/soom/ev2xr/
http://www.sooopu.com/sozd/soom/ztnvqjd7f9/
http://www.sooopu.com/sozd/soom/51irkeng/
http://www.sooopu.com/sozd/soom/51irkeng/
http://www.sooopu.com/sozd/soom/ohb51/
http://www.sooopu.com/sozd/soom/5mupic6083/
http://www.sooopu.com/sozd/soom/c6nga5u93/
http://www.sooopu.com/sozd/soom/e93y5/
http://www.sooopu.com/sozd/soom/ke83ys/
http://www.sooopu.com/sozd/soom/ic61wqjsmg/
http://www.sooopu.com/sozd/soom/ohb60v/
http://www.sooopu.com/sozd/soom/e83jd/
http://www.sooopu.com/sozd/soom/3y5mvpic/
http://www.sooopu.com/sozd/soom/a51wqze8/
http://www.sooopu.com/sozd/soom/a51wqze8/
http://www.sooopu.com/sozd/soom/c60wqjd/
http://www.sooopu.com/sozd/soom/9qjdmga4ze/
http://www.sooopu.com/sozd/soom/icuohb5dvp/
http://www.sooopu.com/sozd/soom/bsmup4c6ng/
http://www.sooopu.com/sozd/soom/93ysnvp/
http://www.sooopu.com/sozd/soom/ysmf94ztng/
http://www.sooopu.com/sozd/soom/qydv2arke/
http://www.sooopu.com/sozd/soom/ic6ev/
http://www.sooopu.com/sozd/soom/5mf1wc608/
http://www.sooopu.com/sozd/soom/gjsmuo2hq/
http://www.sooopu.com/sozd/soom/gjsmuo2hq/
http://www.sooopu.com/sozd/soom/4z6ng/
http://www.sooopu.com/sozd/soom/f93ztng/
http://www.sooopu.com/sozd/soom/pjd7193zt/
http://www.sooopu.com/sozd/soom/ga41/
http://www.sooopu.com/sozd/soom/4ztn2ysmf/
http://www.sooopu.com/sozd/soom/wrztn2/
http://www.sooopu.com/sozd/soom/rke82/
http://www.sooopu.com/sozd/soom/mfwrzt/
http://www.sooopu.com/sozd/soom/o4ztnga5/
http://www.sooopu.com/sozd/soom/d82xr6/
http://www.sooopu.com/sozd/soom/d82xr6/
http://www.sooopu.com/sozd/soom/f93ytng/
http://www.sooopu.com/sozd/soom/xrk193ys/
http://www.sooopu.com/sozd/soom/e8qjs/
http://www.sooopu.com/sozd/soom/hb5mupiz/
http://www.sooopu.com/sozd/soom/gb5f9qz/
http://www.sooopu.com/sozd/soom/4ztnhysm/
http://www.sooopu.com/sozd/soom/0hb5/
http://www.sooopu.com/sozd/soom/93ztnga4f/
http://www.sooopu.com/sozd/soom/wb5mga4z/
http://www.sooopu.com/sozd/soom/ic60g/
http://www.sooopu.com/sozd/soom/ic60g/
http://www.sooopu.com/sozd/soom/o3ysmg/
http://www.sooopu.com/sozd/soom/mf93ysng/
http://www.sooopu.com/sozd/soom/hb50vpic/
http://www.sooopu.com/sozd/soom/je82xr7f93/
http://www.sooopu.com/sozd/soom/rke82ys/
http://www.sooopu.com/sozd/soom/yd8garzt/
http://www.sooopu.com/sozd/soom/jvpic60wqj/
http://www.sooopu.com/sozd/soom/3ytnvpic/
http://www.sooopu.com/sozd/soom/ga52fo/
http://www.sooopu.com/sozd/soom/mf94ztng/
http://www.sooopu.com/sozd/soom/mf94ztng/
http://www.sooopu.com/sozd/soom/83ysmf/
http://www.sooopu.com/sozd/soom/xrmf9/
http://www.sooopu.com/sozd/soom/5194z/
http://www.sooopu.com/sozd/soom/wtnga5f93/
http://www.sooopu.com/sozd/soom/3ysmfp/
http://www.sooopu.com/sozd/soom/ysm1x4z/
http://www.sooopu.com/sozd/soom/c60vpjd71/
http://www.sooopu.com/sozd/soom/74ztngb5f/
http://www.sooopu.com/sozd/soom/d72xr/
http://www.sooopu.com/sozd/soom/qjd82/
http://www.sooopu.com/sozd/soom/qjd82/
http://www.sooopu.com/sozd/soom/d71wrke/
http://www.sooopu.com/sozd/soom/3ztnga5f/
http://www.sooopu.com/sozd/soom/4ztng/
http://www.sooopu.com/sozd/soom/xsmf93ztng/
http://www.sooopu.com/sozd/soom/82xrmf93ys/
http://www.sooopu.com/sozd/soom/upiz60/
http://www.sooopu.com/sozd/soom/jduowr/
http://www.sooopu.com/sozd/soom/0vpid71/
PXE实现批量安装部署(win与linux系统)相关推荐
- linux kickstart乱码,PXE+kickstart 批量安装部署centos6系统
安装的条件: 服务器端: 支持TFTP:提供引导文件与系统安装所必须的文件 支持DHCP服务器:分配IP地址.定位TFTP服务器位置. 客户端: 网卡支持PXE协议 主板支持网络引导 环境准备: 1. ...
- 解决pxe网络批量安装部署linux遇到的问题和解决方法
解决"出现Unable to retrieve 192.168.0.100/var/www/html/images/install.img错误" 分析:我们必须了解这个错误出现在哪 ...
- Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
说明: Kickstart服务器系统:CentOS 6.5 64位 IP地址:192.168.0.250 需要安装部署的Linux系统:CentOS 6.5 64位 eth0(第一块网卡,用于外网)I ...
- 通过PXE服务器批量安装系统
通过PXE服务器批量安装系统 一.环境介绍 1.PXE服务器版本 2.挂载光盘 3.配置yum仓库 二.部署DHCP服务器 1.安装相关软件包 2.编辑DHCP配置文件 3.重启dhcp服务 4.放行 ...
- PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装
PXE高效批量安装和Kickstart无人值守安装--真正完成批量自动安装 一.PXE概述 二.PXE的优点 三.搭建PXE的前提 四.部署PXE远程安装服务 1.安装TFTP服务 2.修改TFTP服 ...
- Win或Linux系统下用conda安装Open Babel
一.安装Anaconda或Miniconda Win或者Linux系统下Anaconda或Miniconda安装,不赘述,网上很多教程. 二.利用conda安装openbabel install -c ...
- office web apps安装部署 Win 2008 安装
office web apps安装部署 Win 2008 安装 https://blog.csdn.net/qq_36267404/article/details/100657304office we ...
- linux wordpress伪静态,wordpress程序在win和Linux系统下的伪静态设置 - 张力博客
这是一篇很早就应该写的文章,而在昨天就有朋友问我,为什么不写一下关于wordpress的伪静态设置呢?今天这篇文章我就来跟大家说一下,关于wordpress程序在win和Linux系统下的伪静态设置方 ...
- CrossOver Mac2022虚拟机如何安装win10系统和linux系统
虚拟机怎么安装win10系统 虚拟机怎么安装linux系统? Win10系统自2015年正式发布至今已有6年的时间,经历过数次更新,同时在这期间,许多开发的应用都基于该系统,兼容性.稳定性都较好.Li ...
最新文章
- 微软解释Edge浏览器比Chrome更加安全的原因
- 关于 CKEditor 3.6以后不兼容ie6的问题解决方案
- 刷爆AI圈!基于Transformer的DALL-E代码刚刚开源了
- iservice list方法_扩展IList对象,实现深拷贝扩展方法
- 专访刘遄:不仅仅是一名技术知识的搬运工
- python批量提取word指定内容_python 批量提取word应聘登记表数据+情感分析
- 步进电机的计算机控制系统设计,步进电机控制系统的设计与实现
- 瑞幸自曝虚假交易22亿,App却反冲 TOP 1
- 植物大战僵尸:代码实现无限阳光
- 迷你四足机器人制作_从0到1
- 了解建模三大软件:3Dmax、Maya、zbrush
- 域前置,水太深,偷学六娃来隐身
- python数值运算m op n_M OP N数值运算问题
- NAT与NAT穿透(二)
- 【转载】一个硕士程序员的求婚日记——做开发的不是木头人!
- 四、Node.js - 数据库与身份认证
- android bitmap nv21,Nv21转Bitmap(高效率转化)
- JLayeredPane
- css中的单位换算_css 长度单位转换器
- 一场网约车司机们的「合作社实验」
热门文章
- PCB信号完整性及EMC整改措施
- 20210630个人复盘
- const指针、数组指针、指针数组理解
- 博通wifi驱动详解(三)
- STM32单片机控制A1333角度传感器磁编码器
- Python连接维特智能角度传感器JY61/JY901的方法
- python求平均值
- Linux下按照时间段过滤日志
- 如何区分np.random.normal()、np.random.randn()、np.random.randint()、np.random.random()、np.random.choice()
- rdesktop用法