注意

AMD 机器使用 netboot 重装会卡机,有 AMD 重装需求的朋友请看AMD单机救砖(5块)
有两个机器的可以看甲骨文利用 DD 命令全盘对拷救砖

前期准备

打开出问题的机器,左侧找到并打开 “控制台连接”
image
等待 shell 终端加载完成后重新引导系统(点上强制),并在 cloudshell 变化后按键盘上的 Esc 键进入 BIOS(一次不行就多按几次esc)
image-1711846505215
依次选择 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 中
image-1711846505215
Boot Maintenance Manager –> Boot from File–> 选择硬盘回车–> 选择镜像文件回车–> 成功进入 netboot.xyz
0-1
netboot.xyz 中选择相应的系统安装
0-1-1
1
系统安装后重启自动硬盘启动 成功救砖
image-1711847392847

自建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  .

交流群