注意
AMD 机器使用 netboot 重装会卡机,有 AMD 重装需求的朋友请看AMD单机救砖(5块)
有两个机器的可以看甲骨文利用 DD 命令全盘对拷救砖
前期准备
打开出问题的机器,左侧找到并打开 “控制台连接”
等待 shell 终端加载完成后重新引导系统(点上强制),并在 cloudshell 变化后按键盘上的 Esc 键进入 BIOS(一次不行就多按几次esc)
依次选择 Boot Manager —-> EFI Internal Shell
#进入到 fs0
FS0:
#DHCP 获取 IP
ifconfig -s eth0 dhcp
#查看 IP 分配情况
ifconfig -l eth0
#测试网络连通性
ping 1.1.1.1
下载 netboot.xyz 镜像包 (多节点分流)
日本
tftp 168.138.192.98 arm.efi
韩国
#Oracle
tftp 132.145.92.56 arm.efi
#Azure
tftp 20.41.84.86 arm.efi
凤凰城
tftp 129.146.9.206 arm.efi
圣保罗
tftp 144.22.210.7 arm.efi
如果出现time out,请到甲骨文虚拟云网络-安全列表放通udp请求
引导镜像
下载好 netboot 的镜像包之后,再次重新引导并按 Esc 进入 BIOS 中
Boot Maintenance Manager –> Boot from File–> 选择硬盘回车–> 选择镜像文件回车–> 成功进入 netboot.xyz
netboot.xyz 中选择相应的系统安装
系统安装后重启自动硬盘启动 成功救砖
自建TFTP镜像源
Docker一键创建:
#AMD
docker run -itd --name tftp -p 69:69/udp -e PUID=1111 -e PGID=1112 --restart unless-stopped cjs520/tftp-netboot:amd64
#ARM
docker run -itd --name tftp -p 69:69/udp -e PUID=1111 -e PGID=1112 --restart unless-stopped cjs520/tftp-netboot:arm64
如果没有docker可以使用下面这个脚本安装
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
OR
bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/DockerInstallation.sh)
担心现成的docker镜像有问题,也可以用下面的dockerfile自建docker镜像
# 使用 BuildKit 的多架构构建功能
# syntax=docker/dockerfile:1.2
# 为 x86_64 架构指定基础镜像
FROM alpine:latest AS amd64
# 为 arm64 架构指定基础镜像,编译arm时把底下注释打开
#FROM --platform=linux/arm64 alpine:latest AS arm64
# 安装 TFTP 服务器和相关工具
RUN apk add --no-cache tftp-hpa
# 创建 TFTP 目录并设置权限
RUN mkdir -p /srv/tftp && \
chmod -R 755 /srv/tftp && \
addgroup -S tftpd && \
adduser -s /bin/false -S -D -H -h /data -G tftpd tftpd
# 下载 netboot.xyz.efi 文件并将其重命名
# 注意:这里需要根据不同的架构下载对应的 EFI 文件
RUN wget -O /srv/tftp/amd.efi https://boot.netboot.xyz/ipxe/netboot.xyz.efi && \
wget -O /srv/tftp/arm.efi https://boot.netboot.xyz/ipxe/netboot.xyz-arm64.efi && \
chmod 644 /srv/tftp/amd.efi && \
chmod 644 /srv/tftp/arm.efi
# 暴露 TFTP 端口
EXPOSE 69/udp
# 设置 VOLUME
VOLUME ["/srv/tftp"]
# 启动 TFTP 服务
CMD ["in.tftpd" ,"-L","-v","-s","-u","tftpd","/srv/tftp"]
#编译AMD
docker build --no-cache -t tftp-netboot:amd64 .
#编译arm
docker buildx build --no-cache --platform linux/arm64 -t tftp-netboot:arm64 .