news 2026/7/31 11:52:07

VMware虚拟机PXE网络启动全流程搭建与排错指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VMware虚拟机PXE网络启动全流程搭建与排错指南

1. 从“PXE启动失败”到“本地模拟”的动机

如果你在IT运维、系统部署或者虚拟化测试领域待过一段时间,大概率见过屏幕上那句令人困惑的提示:“Start PXE over IPv4...”,然后就是漫长的等待,最终以“Boot failed”或“No bootable device”告终。在物理服务器上,这通常意味着网卡PXE ROM、DHCP服务器或者启动文件出了问题,需要跑机房、查日志。但在VMware Workstation这样的桌面虚拟化环境里,这个错误提示却打开了一扇新的大门:我们能否在单机环境下,完整地模拟出一个从网络启动、到加载菜单、再到自动化安装操作系统的全流程?

这就是“VMware虚拟机模拟PXE网络启动”的核心价值。它不是一个为了解决“启动失败”的应急方案,而是一个主动构建的、可控的实验室环境。通过它,你可以彻底理解PXE(Preboot eXecution Environment)协议栈的每一个环节:DHCP如何分配IP并告知引导文件位置(Next-Server和Bootfile)、TFTP服务器如何传输初始引导文件(如pxelinux.0bootx64.efi)、以及后续的HTTP/NFS等协议如何加载内核和镜像。对于需要批量部署Linux(如Ubuntu、CentOS)、Windows Server,或者制作自动化运维工具链的工程师来说,在本地虚拟机里搭建并调试好整个PXE服务端,远比直接在物理服务器上“盲测”要高效和安全得多。

我最初动手做这个,就是因为一次真实的踩坑。当时为公司的新服务器机房规划自动化安装,直接在物理网络里配置了DHCP Options和TFTP,结果总是有部分机器无法引导。排查过程极其痛苦,涉及交换机、防火墙策略、服务器固件版本。后来我决定,先在VMware里复现一个“迷你网络”,把服务端的所有配置逻辑跑通、验证无误后,再移植到生产环境,效率提升了不止一个量级。下面,我就把这个从零构建、包含所有细节和避坑点的完整过程分享出来。

2. 实验环境拓扑与核心组件解析

在开始配置之前,我们必须先在心里(最好画在纸上)构建出整个实验的网络拓扑和组件交互图。这能帮你理解每个配置项的意义,而不是机械地复制命令。

2.1 虚拟网络拓扑设计

我们将在单一物理主机上,使用VMware Workstation/Player的虚拟网络功能,构建一个封闭的局域网。这个局域网里运行着两个关键角色:

  1. PXE服务器(Service VM):一台安装了Linux(如Ubuntu Server)的虚拟机。它将身兼数职:DHCP服务器、TFTP服务器、HTTP/NFS文件服务器。这台虚拟机需要拥有静态IP地址。
  2. 待引导客户端(Client VM):一台新建的、硬盘为空白的虚拟机。它的任务就是开机,尝试从网络启动,并最终接收到来自PXE服务器的引导指令。

为了让它们通信,我们需要一个独立的虚拟网络。在VMware中,最合适的是“自定义(特定虚拟网络)”模式,通常使用VMnet2VMnet8(仅主机模式)。我推荐创建一个全新的VMnet2(仅主机模式),因为它与物理网络完全隔离,不会干扰你本机的网络,也避免了DHCP冲突。

2.2 PXE启动流程的深度拆解

当Client VM开机并设置为网络启动后,会发生以下精确序列:

  1. DHCP Discover:客户端广播“我是谁?有人在吗?”。
  2. DHCP Offer (with PXE Options):我们的PXE服务器上的DHCP服务响应:“我在这!你的IP是192.168.10.100,另外,你要的启动文件在192.168.10.1这个TFTP服务器上,文件名叫pxelinux.0”。这一步的关键在于DHCP回复包中包含了Option 66 (Next-Server)Option 67 (Bootfile-Name)
  3. TFTP Get:客户端根据收到的信息,向192.168.10.1发起TFTP请求,获取pxelinux.0这个初始引导程序。
  4. 执行引导程序pxelinux.0被加载到客户端内存并执行。这个程序会再次通过TFTP,从服务器获取配置文件(如pxelinux.cfg/default)和内核镜像(vmlinuz)、初始内存盘(initrd.img)。
  5. 加载内核与安装系统:对于现代系统安装(如Ubuntu 20.04+),pxelinux.0grub引导程序通常会配置为从HTTP或NFS服务器加载更大的系统安装镜像(如squashfs文件),从而完成系统的安装或启动。

理解这个流程,你就会明白为什么接下来的配置必须环环相扣。任何一个环节的IP、路径或文件名错误,都会导致启动失败。

3. 构建PXE服务器:从系统安装到服务配置

我们将以Ubuntu Server 22.04 LTS作为PXE服务器的操作系统,因为它软件源丰富,配置方便。使用其他Linux发行版(CentOS, Debian)原理相通,只是包管理命令不同。

3.1 创建并配置PXE服务器虚拟机

  1. 在VMware中新建一台虚拟机,选择“稍后安装操作系统”,类型为Linux,版本Ubuntu 64位。
  2. 内存建议2GB以上,硬盘20GB足够。关键步骤在于网络适配器:选择“自定义”,并指向我们计划使用的虚拟网络,例如VMnet2 (仅主机模式)。记下这个网络名称。
  3. 安装Ubuntu Server。在安装过程中配置网络时,我们手动设置静态IP。这是至关重要的一步,因为DHCP服务器本身必须有一个固定的地址。
    • IP地址:例如192.168.10.1
    • 子网掩码:255.255.255.0(/24)
    • 网关:可以留空或设为自身(192.168.10.1),因为我们不需要访问外网。
    • DNS:可以留空或设为8.8.8.8(即使不访问外网,某些服务可能也需要)。
  4. 安装完成后,更新系统:sudo apt update && sudo apt upgrade -y

3.2 安装并配置ISC DHCP服务器

Ubuntu自带的dhcpd功能完整,是我们实现PXE的关键。

sudo apt install isc-dhcp-server -y

安装后,首先需要告诉DHCP服务在哪个网卡上监听。编辑/etc/default/isc-dhcp-server

sudo vim /etc/default/isc-dhcp-server

找到INTERFACESv4=""这一行,将其修改为你的网卡名。在Ubuntu Server中,通常为ens33eth0。你可以用ip a命令查看。例如:

INTERFACESv4="ens33"

接下来是核心配置,编辑DHCP主配置文件/etc/dhcp/dhcpd.conf

sudo vim /etc/dhcp/dhcpd.conf

清空或注释掉原有内容,替换为如下配置:

# 全局配置,定义域名和DNS(非必须) option domain-name "pxe.lab"; option domain-name-servers 8.8.8.8; default-lease-time 600; max-lease-time 7200; authoritative; # 声明此DHCP服务器为权威服务器 # 定义子网和地址池 subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; # 分配给客户端的IP范围 option routers 192.168.10.1; # 网关,指向本机 option subnet-mask 255.255.255.0; # PXE核心配置:指定TFTP服务器地址和启动文件名 next-server 192.168.10.1; # TFTP服务器的IP,即本机 filename "pxelinux.0"; # BIOS模式使用的引导文件 # 如果是UEFI模式,需要不同的引导文件,例如: # if option arch = 00:07 { filename "bootx64.efi"; } # 针对UEFI客户端 }

注意next-serverfilename这两个参数是PXE的“灵魂”。next-server必须指向你即将搭建的TFTP服务器的IP(即本机)。filename是客户端要获取的第一个文件。这里我们先配置传统的BIOS模式(pxelinux.0),UEFI模式稍后讨论。

保存并退出。启动DHCP服务并设置开机自启:

sudo systemctl start isc-dhcp-server sudo systemctl enable isc-dhcp-server sudo systemctl status isc-dhcp-server # 检查状态,确保为active (running)

如果状态不对,使用sudo journalctl -u isc-dhcp-server -f查看详细日志进行排错。

3.3 安装并配置TFTP服务器

TFTP用于传输小型的引导文件。我们使用tftpd-hpa

sudo apt install tftpd-hpa -y

默认配置通常即可工作,其根目录在/var/lib/tftpboot/。我们确保服务已启动:

sudo systemctl start tftpd-hpa sudo systemctl enable tftpd-hpa

现在,我们需要将PXE引导文件放入这个目录。这些文件可以从syslinux包和你要安装的系统镜像中获取。

3.4 准备PXE引导文件(以Ubuntu为例)

首先,安装syslinux,它提供了pxelinux.0等文件:

sudo apt install syslinux-common -y

将核心引导文件复制到TFTP根目录:

sudo cp /usr/lib/syslinux/modules/bios/*.c32 /var/lib/tftpboot/ # 复制模块文件 sudo cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /var/lib/tftpboot/ # 基础库 sudo cp /usr/lib/syslinux/modules/bios/libutil.c32 /var/lib/tftpboot/ sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 核心引导文件

接下来,需要创建引导菜单配置文件。首先创建目录结构:

sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

然后创建默认菜单文件/var/lib/tftpboot/pxelinux.cfg/default

sudo vim /var/lib/tftpboot/pxelinux.cfg/default

输入以下内容(这是一个基础示例,引导到本地硬盘):

DEFAULT menu.c32 PROMPT 0 TIMEOUT 50 ONTIMEOUT local MENU TITLE PXE Boot Menu LABEL local MENU LABEL Boot from local drive LOCALBOOT 0 LABEL ubuntu-install MENU LABEL Install Ubuntu 22.04 (BIOS) KERNEL ubuntu-installer/amd64/linux APPEND vga=788 initrd=ubuntu-installer/amd64/initrd.gz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.10.1/ubuntu-iso/ --

这个配置定义了一个简单的菜单。LABEL ubuntu-install段指向了内核和initrd文件,并指定通过HTTP(url=参数)从服务器获取安装镜像。这意味着我们还需要一个HTTP服务器和放置Ubuntu ISO内容的目录。

3.5 配置HTTP服务器并提供安装源

我们使用轻量级的nginx作为HTTP服务器,来提供大型的安装文件。

sudo apt install nginx -y

挂载Ubuntu Server的ISO镜像。首先将ISO文件上传到服务器,或者使用wget下载。假设ISO文件在/home/user/目录下:

sudo mkdir -p /mnt/ubuntu-iso sudo mount -o loop /home/user/ubuntu-22.04.3-live-server-amd64.iso /mnt/ubuntu-iso

然后,在nginx的web根目录下创建软链接或直接复制文件。nginx默认根目录是/var/www/html

sudo mkdir -p /var/www/html/ubuntu-iso sudo cp -r /mnt/ubuntu-iso/* /var/www/html/ubuntu-iso/ # 复制所有文件 # 或者使用软链接以节省空间(推荐): # sudo ln -s /mnt/ubuntu-iso /var/www/html/ubuntu-iso

另外,我们需要将ISO中的内核和initrd文件也复制到TFTP目录,供pxelinux.0加载:

sudo mkdir -p /var/lib/tftpboot/ubuntu-installer/amd64 sudo cp /mnt/ubuntu-iso/casper/vmlinuz /var/lib/tftpboot/ubuntu-installer/amd64/linux sudo cp /mnt/ubuntu-iso/casper/initrd /var/lib/tftpboot/ubuntu-installer/amd64/initrd.gz

现在,重启nginx服务:

sudo systemctl restart nginx

至此,一个支持BIOS模式PXE启动、安装Ubuntu的服务器就基本配置完成了。但现代系统更多使用UEFI,我们需要补充这个部分。

4. 支持UEFI模式与Grub引导

新版本的VMware虚拟机默认使用UEFI固件。UEFI PXE启动流程与BIOS不同,它不加载pxelinux.0,而是加载一个EFI应用,通常是grubx64.efibootx64.efi

4.1 获取UEFI引导文件

对于Ubuntu,我们可以从ISO中提取,或者使用grub-efi-amd64-bin包。

sudo apt install grub-efi-amd64-bin -y

将UEFI引导文件复制到TFTP根目录:

sudo cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /var/lib/tftpboot/grubx64.efi

UEFI客户端会根据其架构(x64)寻找特定的文件名。常见的搜索路径是bootx64.efi。我们可以创建一个软链接:

sudo ln -s grubx64.efi /var/lib/tftpboot/bootx64.efi

4.2 配置DHCP以区分BIOS和UEFI客户端

我们需要修改dhcpd.conf,使其能智能地为不同架构的客户端提供不同的引导文件名。这需要用到option client-architecture。 编辑/etc/dhcp/dhcpd.conf,在subnet块内,用if语句进行判断:

subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option subnet-mask 255.255.255.0; next-server 192.168.10.1; # 默认情况(传统BIOS或未知架构) filename "pxelinux.0"; # 针对UEFI x64客户端 (ARCH 00:07 或 00:09) if option arch = 00:07 { filename "grubx64.efi"; } if option arch = 00:09 { filename "grubx64.efi"; } }

00:07代表EFI BC (x86-64),00:09代表EFI x86-64。保存后重启DHCP服务:

sudo systemctl restart isc-dhcp-server

4.3 配置Grub引导菜单

Grub需要自己的配置文件grub.cfg,放在TFTP根目录下。创建/var/lib/tftpboot/grub/grub.cfg

sudo mkdir -p /var/lib/tftpboot/grub sudo vim /var/lib/tftpboot/grub/grub.cfg

输入内容:

set timeout=5 menuentry "Install Ubuntu 22.04 (UEFI)" { linuxefi /ubuntu-installer/amd64/linux ip=dhcp url=http://192.168.10.1/ubuntu-iso/ initrdefi /ubuntu-installer/amd64/initrd.gz } menuentry "Boot from local disk" { exit }

注意,这里使用了linuxefiinitrdefi命令来加载内核和initrd。路径与之前BIOS模式下的TFTP路径一致。

5. 创建客户端虚拟机并验证PXE启动

现在,服务端一切就绪,我们来创建客户端进行测试。

  1. 在VMware中新建一台虚拟机。关键配置如下:

    • 操作系统:稍后安装,类型Linux。
    • 硬盘:创建一个新虚拟磁盘,大小20GB。这是关键:不要添加任何ISO镜像
    • 网络适配器:必须选择与PXE服务器相同的虚拟网络,例如VMnet2 (仅主机模式)
    • 固件类型:在“自定义硬件” -> “选项” -> “高级”中,可以选择“固件类型”。为了测试全面性,可以先选择BIOS,测试通过后再新建一台选择UEFI进行测试。
  2. 启动客户端虚拟机。如果配置正确,你应该会看到虚拟机在开机自检后,网卡灯闪烁,屏幕左上角出现类似“PXE-E61: Media test failure, check cable”或直接进入“DHCP...”的提示,随后很快会从我们配置的DHCP服务器获取到IP,并开始通过TFTP加载引导文件。

  3. 成功标志

    • BIOS客户端:屏幕会出现一个蓝色的SYSLINUX引导菜单,显示我们配置的“PXE Boot Menu”,并列出“Boot from local drive”和“Install Ubuntu 22.04 (BIOS)”等选项。
    • UEFI客户端:屏幕会出现一个黑底白字的GRUB菜单,显示“Install Ubuntu 22.04 (UEFI)”等选项。
  4. 选择安装选项,如果一切顺利,客户端会从HTTP服务器(http://192.168.10.1/ubuntu-iso/)拉取安装文件,进入Ubuntu安装界面。至此,PXE网络启动模拟完全成功。

6. 实战排错指南:常见问题与根因分析

即使按照步骤操作,也可能会遇到问题。下面是我在多次搭建中总结的常见坑点及其排查思路。

6.1 客户端卡在“Start PXE over IPv4”或“DHCP...”

  • 问题:客户端一直停留在此阶段,无法进入引导菜单。
  • 排查链
    1. 网络连通性:确保客户端和服务器虚拟机连接到同一个VMware虚拟网络(如VMnet2)。分别在两台虚拟机里用ping命令测试对方IP(ping 192.168.10.1ping 192.168.10.100)。
    2. DHCP服务状态:在PXE服务器上运行sudo systemctl status isc-dhcp-server,确认服务是active (running)。查看日志sudo journalctl -u isc-dhcp-server -f,同时启动客户端,看服务器端是否有DHCP请求日志(DHCPDISCOVER)和回复日志(DHCPOFFER)。如果没有日志,几乎可以断定是网络隔离问题
    3. 防火墙:Ubuntu默认的ufw防火墙可能阻止了DHCP(端口67/UDP)和TFTP(端口69/UDP)请求。最简单的方法是暂时禁用防火墙测试:sudo ufw disable。生产环境则需要精确放行端口。
    4. DHCP配置:反复检查/etc/dhcp/dhcpd.conf中的subnet声明是否覆盖了客户端的IP段,next-server的IP是否正确(必须是PXE服务器自身的IP)。

6.2 客户端提示“TFTP Open timeout”或“File not found”

  • 问题:能获取到IP,但无法下载引导文件。
  • 排查链
    1. TFTP服务与权限:确认tftpd-hpa服务正在运行。TFTP根目录(/var/lib/tftpboot/)及其下的文件必须有全局可读权限。执行:sudo chmod -R 755 /var/lib/tftpboot/sudo chown -R nobody:nogroup /var/lib/tftpboot/tftpd-hpa默认以nobody用户运行)。
    2. 文件名与路径:这是最高频的错误点。仔细核对dhcpd.conf中的filename参数(例如"pxelinux.0"),确保它与TFTP根目录下的文件名完全一致,包括大小写。在Linux中,pxelinux.0PXELINUX.0是两个不同的文件。
    3. SELinux/AppArmor:在某些发行版(如CentOS)上,SELinux可能会阻止TFTP进程访问文件。在Ubuntu上,AppArmor也可能限制。可以尝试将其设置为宽容模式测试:sudo aa-complain /usr/sbin/tftpd

6.3 能加载引导菜单,但选择安装后黑屏或报错

  • 问题:进入了SYSLINUX或GRUB菜单,但选择安装项后失败。
  • 排查链
    1. 内核与initrd路径:检查pxelinux.cfg/defaultgrub.cfgKERNELAPPEND(或linuxefi/initrdefi)指定的路径。这些路径是相对于TFTP根目录的。确认/var/lib/tftpboot/ubuntu-installer/amd64/目录下确实有linuxinitrd.gz这两个文件。
    2. HTTP源路径:检查APPEND行中的url=参数。确保http://192.168.10.1/ubuntu-iso/这个URL能被访问。可以在PXE服务器本机用curl -I http://192.168.10.1/ubuntu-iso/测试,或者在另一台同网络的虚拟机上用浏览器测试。
    3. ISO文件完整性:确保你挂载或复制的Ubuntu ISO文件是完整的,没有损坏。可以检查/var/www/html/ubuntu-iso/目录下是否有casper/filesystem.squashfs等大文件。
    4. 内存不足:PXE启动,尤其是加载图形化安装器时,对客户端内存有一定要求。确保客户端虚拟机内存至少分配了2GB(2048MB)

6.4 UEFI客户端无法引导,直接进入EFI Shell

  • 问题:UEFI客户端没有加载grubx64.efi,而是进入了EFI命令行界面。
  • 排查链
    1. DHCP Option 93:确认dhcpd.conf中正确配置了对arch = 00:0700:09的判断,并指定了正确的filenamegrubx64.efibootx64.efi)。
    2. 引导文件位置与命名:UEFI固件有固定的文件搜索路径。最保险的做法是同时提供bootx64.efi(软链接到grubx64.efi)和grubx64.efi,并确保它们在TFTP根目录下。
    3. NIC驱动:在极少数情况下,VMware虚拟机的UEFI固件中的虚拟网卡PXE驱动可能有问题。可以尝试将虚拟机设置中的“网络适配器”类型从默认的“E1000”或“VMXNET3”切换到另一个(如“E1000e”),有时会有奇效。

7. 进阶配置与生产环境思考

在本地模拟环境跑通后,你可以在此基础上进行更多探索,使其更接近生产环境。

7.1 自动化安装:使用Kickstart或Preseed

手动选择安装选项不符合自动化部署的初衷。我们可以集成自动化应答文件。

  • 对于Ubuntu/Debian:使用preseed文件。将preseed.cfg文件放入HTTP服务器,然后在pxelinux.cfg/defaultgrub.cfgAPPEND行添加参数:auto url=http://192.168.10.1/preseed.cfg
  • 对于RHEL/CentOS:使用kickstart文件(ks.cfg)。同样通过APPEND行添加ks=http://192.168.10.1/ks.cfg参数。

这样,客户端启动后将自动按照预设文件完成分区、用户设置、软件包安装等所有操作,实现真正的无人值守安装。

7.2 构建多系统引导菜单

一个实用的PXE服务器应该能引导多种系统。你可以在pxelinux.cfg/default中定义多个LABEL,分别指向不同系统的内核和initrd。

LABEL centos-install MENU LABEL Install CentOS 7 KERNEL centos-installer/vmlinuz APPEND initrd=centos-installer/initrd.img ip=dhcp ks=http://192.168.10.1/centos7.ks LABEL memtest MENU LABEL Run Memtest86+ KERNEL memtest/memtest

只需要将对应系统的安装文件(内核、initrd)放入TFTP目录,并将完整的安装树(ISO内容)通过HTTP或NFS共享即可。

7.3 从物理机到虚拟机的无缝衔接

本地虚拟机环境调试完毕后,如何迁移到物理网络?

  1. 导出配置:你的dhcpd.conftftpd-hpa配置、/var/lib/tftpboot/目录下的文件以及HTTP服务器上的安装源,构成了完整的PXE服务包。
  2. 部署到物理服务器:找一台稳定的Linux物理机(或虚拟机),按照相同的步骤安装服务软件(DHCP, TFTP, HTTP),然后将调试好的配置文件和数据目录整体复制过去。
  3. 网络调整:最大的变化在于DHCP服务的作用范围。在生产网络中,你需要谨慎规划:
    • 方案A(专用网段):为需要PXE安装的机器划分一个独立的VLAN,在这个VLAN中部署你的PXE服务器,并配置DHCP服务仅在该VLAN生效。这是最清晰、安全的方式。
    • 方案B(条件触发):在已有的企业DHCP服务器上,配置DHCP Class或Conditional Statements,只为特定MAC地址前缀(如新服务器的网卡)或用户Class(PXE客户端)提供next-serverfilename选项,避免干扰正常办公电脑。

7.4 性能优化与安全考量

  • TFTP调优:对于大型文件或高并发,可以调整/etc/default/tftpd-hpa中的TFTP_OPTIONS,例如增加块大小--blocksize 1468以提高传输效率。
  • HTTP缓存:使用nginxapache的缓存功能,可以显著提升向多台客户端分发安装文件的速度。
  • 安全加固:生产环境中,务必为TFTP和HTTP服务设置适当的防火墙规则,限制访问源IP。DHCP服务器也应配置静态地址绑定(host声明)和租期控制,防止未经授权的设备获取安装镜像。

搭建并调试一个完整的PXE环境,就像在组装一个精密的钟表。每一个齿轮(服务)都必须严丝合缝。在VMware里完成这个“钟表”的组装和调试,能让你在面对真实的机房、陌生的网络和紧迫的部署任务时,拥有十足的底气和清晰的排错思路。这个过程积累下来的,不仅仅是几个配置文件的写法,更是对网络引导协议栈的深刻理解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 11:48:57

二分查找算法高效求解两个有序数组中位数

1. 问题背景与核心挑战中位数计算是数据分析中的基础操作,但当数据分布在两个有序数组中时,问题复杂度会显著提升。想象你手头有两份按成绩排序的学生名单,需要快速找出所有学生的中位数成绩——这就是"寻找两个正序数组的中位数"要…

作者头像 李华
网站建设 2026/7/31 11:48:33

蓝速科技丨 15.6 寸 POE 会议门牌落地实战指南

在大型写字楼或园区的会议室改造项目中,最让项目经理头疼的往往不是设备选型,而是施工阶段的“隐蔽工程”。传统电子门牌安装需要同时铺设网线和电源线,这意味着要在装修好的墙面上开双槽,不仅工期拉长,后期线路杂乱还…

作者头像 李华
网站建设 2026/7/31 11:43:12

Box64实战指南:ARM64设备高效运行x86程序的3种配置方法

Box64实战指南:ARM64设备高效运行x86程序的3种配置方法 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 Box64是一…

作者头像 李华