1

我正在寻找一种方法来克隆一堆没有以太网端口的笔记本电脑。

我有一个 Clonezilla 服务器启动并运行,我可以通过 TFTP 或 HTTP 克隆到其他笔记本电脑。

iPXE.org 声称有一个通过 HTTP 的无线解决方案。迄今为止,我还没有找到一种方法来完成这项工作。如果我使用 iPXE(有线)到 HTTP 路由,我不会遇到任何问题。

有人对 iPXE 无线有很多经验吗?

首先,我认为 iPXE 不支持我正在尝试的笔记本电脑中的无线驱动程序,但我在 ipxe.org 上找不到有关此的信息。

PS我知道我可能遗漏了很多信息,这些信息将来会被证明是必要的,但我不知道如何开始这个问题更体面,所以请原谅我。我会尽可能频繁地更新问题。

4

1 回答 1

1

由于没有人回复,我想我会与你们分享我找到的解决方案。这是我在 coreboot.org 上找到的一个不错的指南的片段

建筑物识别您的无线网卡:

# lspci 03:06.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)

识别其 PCI ID:

# lspci -s 03:06.0 -nnn 03:06.0 Network controller [0280]: Atheros Communications Inc. AR922X Wireless Network Adapter [168c:0029] (rev 01)

获取 iPXE:

git clone git://git.ipxe.org/ipxe.git cd ipxe/src/

将以下内容复制到 config/local/general.h 中:

#undef PXE_STACK /* PXE stack in iPXE - you want this! */

#undef PXE_MENU /* PXE menu booting */

#undef DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */

#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */

#undef SANBOOT_PROTO_AOE /* AoE protocol */

#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */

#undef SANBOOT_PROTO_FCP /* Fibre Channel protocol */

#undef CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */

#undef CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */

#undef CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */

#undef IMAGE_NBI /* NBI image support */

#undef IMAGE_ELF /* ELF image support */

#undef IMAGE_MULTIBOOT /* MultiBoot image support */

#undef IMAGE_PXE /* PXE image support */

#define IMAGE_SCRIPT /* iPXE script image support */

#define IMAGE_BZIMAGE /* Linux bzImage image support */

#undef IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */

#undef IMAGE_EFI /* EFI image support */

#undef IMAGE_SDI /* SDI image support */

#undef NVO_CMD /* Non-volatile option storage commands */

#undef FCMGMT_CMD /* Fibre Channel management commands */

#undef ROUTE_CMD /* Routing table management commands */

#define IMAGE_CMD /* Image management commands */

#undef SANBOOT_CMD /* SAN boot commands */

#undef MENU_CMD /* Menu commands */

#undef LOGIN_CMD /* Login command */

#undef SYNC_CMD /* Sync command */

#undef NSLOOKUP_CMD /* DNS resolving command */

#undef TIME_CMD /* Time commands */

#undef DIGEST_CMD /* Image crypto digest commands */

#undef LOTEST_CMD /* Loopback testing commands */

#undef VLAN_CMD /* VLAN commands */

#undef PXE_CMD /* PXE commands */

#undef REBOOT_CMD /* Reboot command */

#undef IMAGE_TRUST_CMD /* Image trust management commands */

在 shell.ipxe 文件中复制以下内容:

#!ipxe shell

shell.ipxe 是 ipxe 将在启动时运行的 ipxe 脚本,这里它将指示 ipxe 直接放入 shell。语法记录在 ipxe 网站上。

使用之前收集的 PCI ID 仅包含 ath9k 驱动程序:

make clean; make -j3 bin/168c0029.rom EMBED=./shell.ipxe

进入你的 coreboot 目录:

cd ../../coreboot/

添加 iPXE 选项 rom:

./build/cbfstool ./build/coreboot.rom print ./build/cbfstool ./build/coreboot.rom add -f ../ipxe/src/bin/168c0029.rom -n pci168c,0029.rom -t raw ./build/cbfstool ./build/coreboot.rom print

引导

在 ipxe 上启动,它会给你一个 shell: iPXE> 然后你需要输入一些命令让它从互联网通过 WiFi 启动。

识别您的 ESSID:

iwlist

设置 ESSID:

config

获取 IP 地址:

dhcp

测试官方demo(需要PS/2键盘)

chain http://boot.ipxe.org/demo/boot.php

于 2020-05-11T15:02:55.580 回答