Linux PXE无盘工作站

2023-05-16

 

• 关于PXE无盘工作站系统的简介

 

PXE无盘工作站系统是指由一台或多台“系统服务器”和多台“PXE客户端(无盘工作站)”通过 交换机 相连组成的局域网系统。

  

               (图1:无盘工作站系统部署拓扑图)

 

• 系统服务器:通过DHCP+TFTP+NFS服务向无盘工作站提供系统支持

      DHCP服务: 向PXE客户端分发IP地址、子网掩码、网关等,并指定启动引导文件所在服务器(TFTP服务器)的地址和PXE启动文件(pxelinux.0)
       TFTP服务: 向PXE客户端传输PXE启动文件、PXE引导配置文件、linux内核vmlinuz,以及系统启动文件initrd.img
        NFS服务: 向PXE客户端发布工作站的系统(整个根目录“/”的克隆);为了避免磁盘IO资源的冲突,建议将克隆的系统部署在存储服务器上

 

 

 

 

• PXE客户端:PXE客户端无需硬盘,但需要一块支持PXE启动的网卡,不过其他硬件比如主板、内存条、电源等,还是必须要的;将“网卡启动”设置为首选

   

                        (图2:PXE启动流程图) 

 

 

 


 

• 部署之前,先要规划好系统服务器和无盘工作站的工作环境

 

• 系统环境

 操作系统: CentOS release 6.5 x86_64
  防火墙: 关闭iptables服务并禁止其开机自启;关闭selinux
   其他: 配置好YUM仓库:禁用无用的开机自启服务(sshd服务和rpcbind服务不能禁用)                                  

 

 

 

 

• 软件环境

dhcp-4.1.1-49.P1.el6.centos.x86_64                   // 提供DHCP 服务;指定TFTP 地址及PXE 启动文件                   
tftp-server-0.49-7.el6.x86_64// 向无盘工作站传输系统启动文件等
nfs-utils-1.2.3-64.el6.x86_64// 共享发布工作站系统
syslinux-4.04-3.el6.x86_64// 提供引导程序"pxelinux.0"
rpcbind-0.2.0-11.el6.x86_64// 为NFS 服务的依赖程序
dracut-004-388.el6.noarch// 用来制作启动initrd 镜像
dracut-network-004-388.el6.noarch// 依赖包,否则将导致PXE无法启动

 

 

 

 

 

 

 

 

• 网络环境

 主机类别: 主机名: IP地址: 子网掩码: 网关/路由:
 系统服务器A HostServerA 192.168.8.8 255.255.255.0 192.168.8.254
 系统服务器B  HostServerB 192.168.8.9 255.255.255.0 192.168.8.254
 无盘工作站  WorkStation/WS100~200 192.168.8.100~200 255.255.255.0 192.168.8.254/不设置(禁止工作站联网)

 

 

 

 

 

 


 

分别在“系统服务器A”和“系统服务器B”上进行下列所有操作:

 

• 开始进行安装部署了,首先,要克隆好工作站的系统模板

 

1. 创建工作站系统模板的存放目录(/nodiskos/workstation)和启动引导文件存放目录(/nodiskos/tftpboot)


mkdir /nodiskos                               // 系统模板+启动文件存放目录
mkdir /nodiskos/tftpboot                      // 工作站系统启动文件存放目录
mkdir /nodiskos/workstation                   // 工作站系统模板存放目录
  

 

2. 使用rsync 工具将整个"/"目录拷贝到/nodiskos/workstation 目录下,去除不需要的文件目录


rsync -av --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/etc/mtab' --exclude='/nodiskos' /* /nodiskos/workstation
  

 

3. 重新创建被删掉的目录,还原系统模板的目录结构


cd /nodiskos/workstation
mkdir proc sys tmp var/tmp
  

 

4.调整系统模板的设备挂载配置文件/nodiskos/workstation/etc/fstab:删除所有的本地存储设备挂载信息(如:/和/boot);添加系统模板的挂载信息。以“系统服务器A”为例(注意:系统服务器B的ip设置为192.168.8.9):


# /etc/fstab
# Created by anaconda on Fri Dec 25 10:58:41 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
192.168.8.8:/nodiskos/workstation  /  nfs    defaults      0 0
tmpfs      /dev/shm           tmpfs   defaults      0 0
devpts      /dev/pts          devpts  gid=5,mode=620   0 0
sysfs       /sys             sysfs   defaults      0 0
proc       /proc             proc    defaults       0 0
  

 

5. 修改系统模板的主机名,如WorkStation

编辑配置文件/nodiskos/workstation/etc/sysconfig/network,将HOSTNAME=参数值修改为WorkStation

 

6. 最后,删除所有ifcfg-eth*网卡配置文件,只需保留ifcfg-lo


rm -f /nodiskos/workstation/etc/sysconfig/network-scripts/ifcfg-eth*
  

 

7. 最后的最后,将整个工作站系统模板打包备份到系统服务器的/opt 目录下,以作备用(例如下面的第8 步,为单个/每个工作站创建独立的系统)


cd /nodiskos
tar -cvf /opt/workstation.tar workstation
  

 

8. 正如第7 步所述,可根据需求,为单个/每个工作站创建独立的系统。以WS100~110 为例:

1)将备份的系统模板解压下来,并批量分别拷贝到各自独立工作站的系统目录下


cd /opt
for i in $(seq -w 100 110)
> do
>   tar -xvf workstation.tar
>   mv workstation /nodiskos/WS$i
> done
  

2)最后,还需要为每台独立的工作站调整fstab 的挂载信息、network 的主机名、hosts 的本地域名解析。可执行如下shell 脚本进行批量替换,需要赋予执行权限:


# 以WS100~110 为例
# 第一个for 循环是替换fstab 的挂载信息和主机名,其中:
# 第1 个sed 是替换/nodiskos/WS###/etc/fstab 的挂载信息
# 第2 个sed 是替换主机名
# 第3 个sed 是在hosts 文件中增加本机的域名解析
# 第二个for 循环是打印出替换后的结果,以便于检查是否替换正确
# 脚本内容如下:

#!/bin/bash
for i in $(seq -w 100 110)
do
  sed -i "/nodiskos/s/workstation/WS$i/g" /nodiskos/WS$i/etc/fstab
  sed -i "s/WorkStation/WS$i/g" /nodiskos/WS$i/etc/sysconfig/network
  sed -i "1a 192.168.8.$i WS$i" /nodiskos/WS$i/etc/hosts
done

for i in $(seq -w 100 110)
do
  echo -e "fstab : \c" && sed -n "/nodiskos/p" /nodiskos/WS$i/etc/fstab
  echo -e "network : \c" && sed -n "/HOST/p" /nodiskos/WS$i/etc/sysconfig/network
  echo -e "hosts : \c" && sed -n "/192.168/p" /nodiskos/WS$i/etc/hosts
  echo -e "\n"
done
  

 

 


 

• 接下来,准备好工作站启动引导需要的文件

 

1. 安装syslinux 和dracut 软件包


yum install syslinux dracut dracut-network
  

 

2. 拷贝PXE启动文件(由syslinux 程序提供)


cp /usr/share/syslinux/pxelinux.0 /nodiskos/tftpboot
  

 

3. 拷贝用linux内核文件vmlinuz


cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /nodiskos/tftpboot
  

 

4. 创建用于系统启动 镜像文件initrd.img(先执行命令 uname -r 查看内核版本,如:2.6.32-431.el6.x86_64)


dracut initrd-2.6.32-431.el6.x86_64.img 2.6.32-431.el6.x86_64
chmod 644 initrd-2.6.32-431.el6.x86_64.img
mv initrd-2.6.32-431.el6.x86_64.img /nodiskos/tftpboot
  

 

 5. 在/nodiskos/tftpboot/pxelinux.cfg/目录下创建默认的PXE引导配置文件"default"(也可为单个/每个工作站创建独立的引导配置文件,如WS100)


# prompt 0 表示工作站立即启动,1 表示工作站等待选择
# kernel 指定内核文件
# append 后面的加下划线的是一行内容,不能换行!!!
# append 附加参数值解释说明:
# initrd= 指定用于引导的initrd 镜像文件
# root= 指定工作站系统的nfs 路径(注意:“系统服务器B”设置成192.168.8.9)
# selinux= 设置selinux 开关,0 表示关闭,1 表示开启,默认为1
# rw 设置工作站系统为可读写
# nomodeset 这个参数是配合后面的vga=参数一起使用,设置分辨率
# vga= 这个参数值是设置分辨率,0x 表示十六进制,0314 表示800*600 16 位色;若无特殊需求,建议删除这2个参数
# 文件内容如下:

default auto
label auto
prompt 0
kernel vmlinuz-2.6.32-431.el6.x86_64
append initrd=initrd-2.6.32-431.el6.x86_64.img root=nfs:192.168.8.8:/nodiskos/workstation selinux=0 ip=dhcp rw nomodeset vga=0x0314
  

 

6. 若要为单个/每个工作站创建独立的引导配置文件,以WS100~110 为例:

1)引导配置文件的文件名为该工作站IP 地址的十六进制转换值。如WS100 的IP 地址为192.168.8.100,那么它的配置文件的文件名就是"C0A80864";对照关系如下:192→C0,168→A8,8→08,100→64。

2)文件内容可参照default,只需将append 下的root=参数值指定为对应的WS100 的nfs 路径,例如:root=nfs:192.168.8.8:/nodiskos/WS100,前提是/nodiskos/WS100 需要存在。

3)为了方便,可用如下shell 脚本,参照默认配置文件default,进行批量创建和修改:


# 以WS100~110 为例
# for 循环的主体说明:
# 第1 行:printf 是将WS###的IP 地址转换成十六进制,并赋值给参数ws_name
# 第2 行:以default 文件为模板,以IP 地址的十六进制值为文件名,进行批量复制
# 第3 行:批量修改root=参数值指定的WS###的nfs 路径
# 第4 行:打印出替换后的结果,以便于检查是否替换正确
# 脚本内容如下:

#!/bin/bash
cd /nodiskos/tftpboot/pxelinux.cfg/
for i in $(seq -w 100 110)
do
  ws_name=$(printf "%02X" 192 168 8 $i)
  cp default $ws_name
  sed -i "s/workstation/WS$i/g" $ws_name
  sed -n "/append/p" $ws_name
done
  

 

7. 最后,/disklessboot/tftpboot 目录下应该有下列几个文件/目录:

initrd-2.6.32-431.el6.x86_64.img            // 用于引导的initrd 镜像文件    (由第4 步创建)
pxelinux.0// PXE 引导文件(由第2 步创建)
pxelinux.cfg/default// 默认的引导配置文件(由第5 步创建)
pxelinux.cfg/C0A808##// 定制的引导配置文件(由第6 步创建)
vmlinuz-2.6.32-431.el6.x86_64// 用于引导的内核文件(由第3 步创建)

 

 

 

 

 

 


 

• 配置DHCP服务

 

1. 安装DHCP 服务软件包


yum install dhcp
  

 

2. 编辑配置文件/etc/dhcp/dhcpd.conf

 


# dhcpd.conf 部分参数说明:
# default-lease-time      // 指定确认租赁时长,单位为秒,-1 表示无限制
# max-lease-time          // 指定最大租赁时长
# authritative            // 拒绝不正确的IP 地址的要求
# subnet netmask {}       // 设置dhcp 区域
# range                   // 提供动态分配IP 的范围;若所有工作站都是绑定的固定IP,可删除此配置
# option routers          // 设置网关/路由器地址,多个地址用逗号隔开;若不想让客户端上网,可删除此配置
# domain-name-servers     // 设置DNS,若不想让客户端上网,可删除此配置;多个地址用逗号隔开
# next-server             // 告知工作站TFTP 服务器的地址,TFTP 服务提供启动引导(注意:“系统服务器B”设置成192.168.8.9)
# filename                // 告知工作站PXE 引导程序名
# host XXX {}             // 此处是根据工作站的MAC 地址绑定固定的IP 地址,前提是知道MAC 地址
# hardware ethernet       // 工作站的MAC 地址,一定要小写
# fixed-address           // 绑定固定的IP 地址,和range 的不会有冲突,优先以它为主
# 配置内容如下:

ddns-update-style none;
ignore client-updates;
default-lease-time -1;
max-lease-time -1;
authritative;

subnet 192.168.8.0 netmask 255.255.255.0 {
range 192.168.8.100 192.168.8.200;
option routers 192.168.8.254;
option domain-name-servers 114.114.114.114,202.96.209.5;
next-server 192.168.8.8;
filename "pxelinux.0";

host WS100 {
    hardware ethernet 12:34:56:78:ab:cd;
    fixed-address 192.168.8.100;
    }

host WS101 {
    hardware ethernet 12:34:56:90:ab:00;
    fixed-address 192.168.8.101;
    }

}
  

 

3. 重启DHCP服务,且将DHCP服务设置成开机自启


service dhcpd restart
chkconfig dhcpd on
chkconfig |grep dhcpd
  

 

 


 

• 配置TFTP服务

 

1. 安装TFTP 服务软件包


yum install tftp-server
  

 

2.  编辑配置/etc/xinetd.d/tftp,只需更改如下2 处:


# and to start the installation process for some operating systems.
service tftp
{
  ...... ........
  server_args = -s /nodiskos/tftpboot             # 改成启动文件的存放目录
  Disable = no                                    # 将yes 改成no,以激活此服务
  ...... ........
}
  

 

3. TFTP 服务是通过xinetd 工具管理的,因此需要通过xinetd 启动、停止、重启等


service xinetd restart
chkconfig xinetd on
chkconfig |grep xinetd
  

 

 


 

• 配置NFS服务

 

1. 安装NFS 服务软件包


yum install nfs-utils rpcbind
  

 

2. 编辑配置文件/etc/exports,添加如下内容:


# 这一行是配置默认的工作站系统目录
/nodiskos/workstation  192.168.8.0/24(rw,async,no_root_squash)

# 以下部分是为工作站发布独立的系统目录
/nodiskos/WS100      192.168.8.100(rw,async,no_root_squash)
/nodiskos/WS101      192.168.8.101(rw,async,no_root_squash)
/nodiskos/WS102      192.168.8.102(rw,async,no_root_squash)
/nodiskos/WS103      192.168.8.103(rw,async,no_root_squash)
/nodiskos/WS104      192.168.8.104(rw,async,no_root_squash)
......           ......
  

 

3. 若独立的工作站数量大,可用如下shell 脚本进行批量添加


#!/bin/bash
echo '/nodiskos/workstation 192.168.8.0/24(rw,async,no_root_squash)'>/etc/exports for i in $(seq -w 100 110) do sed -i "\$a \/nodiskos\/WS$i 192.168.8.$i(rw,async,no_root_squash)" /etc/exports done cat /etc/exports

 

4. 重启NFS服务,且将NFS服务设置成开机自启


service nfs restart
chkconfig nfs on
chkconfig |grep nfs
  

 

5. 至此,所有配置都已完成了。最后检查下DHCP、TFTP、NFS这3个服务是否都已启动,是否都已设置成开机自启


service dhcpd status
service xinetd status
service nfs status
chkconfig |grep dhcpd
chkconfig |grep xinetd
chkconfig |grep nfs
  

 

6. 最后的最后,将所有PXE客户端的启动项设置成首选网卡启动,然后就启动PXE客户端了!!!

 

 


 

转载于:https://www.cnblogs.com/jiangxiaolin/p/5408806.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux PXE无盘工作站 的相关文章

  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do

随机推荐

  • mysql 5.6 utf-8 编码设置

    mysql 5 5 utf 8编码 正确设置的方法 xff1a 在 etc my cnf mysqld utf 8 设置 character set server 61 utf8 collation server 61 utf8 gener
  • 文件内容查找方式

    第一种 xff0c 使用windows自带的查找工具 搜索工具里面有 高级选项 xff0c 选择 文件内容 然后进行搜索即可 第二种 xff0c 使用命令行 在需要进行搜索的文件夹下使用命令行 xff1a Get span class to
  • Image打包流程-Android10.0编译系统(四)

    摘要 xff1a 本节主要来进行Android10 0 Image打包流程 xff0c 理解system img是如何打包的 1 概述 前面我们讲完了Android10 0 编译的初始化和make的完整流程 xff0c 从make中我们看到
  • Ubuntu18.04安装踩坑与排错记录

    很早以前就想装Ubuntu玩玩了 xff0c 今天终于动手实现了这个想法 但过程并不顺利 xff0c 所以记录一下 对他人可能借鉴意义不大 xff0c 但对自己来说还是有记录价值的 机子是之前淘汰掉的华硕笔记本 xff08 14年买的 xf
  • Jupyter Notebook FileNotFoundError: [WinError 2] 系统找不到指定的文件

    问题描述 xff1a 通过Anaconda新创建环境 tfenv python 61 3 5 5 并依次安装tensorflow ipython xff0c jupyter xff0c matplotlib这三个包及其依赖包 然后在该环境下
  • 命令提示符(cmd)的一些简单用法

    命令提示符 xff08 cmd xff09 快捷键 xff1a win 43 r 切换位置 xff1a 盘名 xff1a 进入目录 xff1a cd 43 文件夹名 xff08 tab可以切换文件夹 xff09 只要路径写对cd可以访问多级
  • Java中,&&与&,||与|的区别

    1 1 逻辑运算符 amp amp xff08 短路与 xff09 xff0c amp 用法 xff1a amp amp 和 amp 都是表示与区别是 xff1a amp amp 若第一个条件不满足 xff0c 后面条件就不再判断 而 am
  • Java基础类(六):Collections工具类

    目录 1 Collections 1 1 排序操作 xff1a xff08 均为static方法 xff09 1 2 查找 替换 1 3 同步控制 1 4 返回不可变集合 1 Collections Collections 是一个操作 Se
  • Bash脚本:采用for循环重复执行某条指令100次

    1 新建一个脚本文件 直接vim for sh就可以 2 编辑脚本文件 bin bash for i 61 1 i lt 61 100 i 43 43 do test 想要重复执行的命令 xff09 done 3 将脚本文件变为可执行文件
  • Android.mk 和 CMakeLists.txt 的转换规则

    Android mk 和 CMakeLists txt 都是用来构建 Android 应用程序或库的工具 但是它们有不同的语法和规则 xff0c 所以将一个 Android mk 文件转换成一个 CMakeLists txt 文件需要一些注
  • EFI Shell 命令参考

    对于使用使用DOS的人来说 xff0c 会使用DOS命令是最基本的 xff0c 而在当今即将盛行的EFI BIOS来说 xff0c 就有了新的变化 xff0c 如何操作EFI Shell 呢 xff1f 至此我贴出了EFI Shell 的命
  • mysql出现提示错误10061的解决方法

    MySQL出现提示错误10061的解决方法 错误提示 xff1a 今天打开Navicat连接mysql突然提示 2003 Can t connect to MySQL server on localhost 10061 xff09 的错误提
  • 3分钟爬取全网10W+爆款,脚本无偿分享,零基础拿来直接就能用!

    市面上的新媒体资料都是过去时了 xff0c 只有最新的爆款文才是新媒体人的福音 xff01 三分钟爬取全网10W 43 爆款文 xff01 爬虫脚本无偿分享 xff0c 拿来就能直接用 xff0c 零基础也能用 xff01 需要的看图 xf
  • 使用Wake On Lan远程唤醒

    使用Wake On Lan远程唤醒 客厅里的那台htpc xff0c 在无下片任务的时候 xff0c 大部分时间里都在白白浪费电 主板是支持wake on lan的 xff0c 把它弄成可以远程控制会比较经济 首先要设置bios xff0c
  • .gitignore文件作用

    gitignore文件用于在将文件提交到git暂存区时 xff0c 指定将哪些文件排除 xff1b 1 gitignore文件基本用法 在 git文件所在的目录创建 gitignore 文件 文件内容如下 span class token
  • 《计算机应用基础》形考作业及答案

    国家开放大学 计算机应用基础 形考作业 及 答案 题目1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 兔子bu蹬鹰 在Word 2010中编辑文本时 编辑
  • php操作redis代码

    lt php Redis缓存操作 64 author hxm 64 version 1 0 64 since 2015 05 04 class RCache extends Object implements CacheFace priva
  • C++实现归并排序

    C 43 43 实现归并排序 span class token comment span span class token comment main cpp span span class token comment MergeSort s
  • LinuxNote 第二章 新手必须掌握的Linux命令

    目录 第二章 新手必须掌握的Linux命令2 1 Shell2 2 命令格式及帮助命令 man2 2 1 命令格式2 2 2 帮助命令 man 2 3 常用的系统工作命令2 3 1 echo2 3 2 date2 3 3 reboot2 3
  • Linux PXE无盘工作站

    关于PXE无盘工作站系统的简介 PXE无盘工作站系统是指由一台或多台 系统服务器 和多台 PXE客户端 无盘工作站 通过 交换机 相连组成的局域网系统 xff08 图1 xff1a 无盘工作站系统部署拓扑图 xff09 系统服务器 xff1