3. 使用flashrom备份原始固件
任务目标
在刷写Libreboot之前,必须将主板当前运行的BIOS/UEFI固件完整备份到外部存储介质。本案例演示如何在Linux环境下使用flashrom工具读取并保存固件镜像,确保后续刷写操作可随时回滚。
环境准备
- 一台已安装Linux的计算机(推荐Debian/Ubuntu或Arch),并确认主板支持flashrom(查阅
flashrom.org的兼容列表) - 以root权限执行命令(使用
sudo或直接root登录) - 准备一个外部USB存储设备或第二块硬盘,用于存放备份文件(切勿将备份存放在待刷写的主板上)
安装flashrom
Debian/Ubuntu:
sudo apt update && sudo apt install flashrom
Arch Linux:
sudo pacman -S flashrom
备份固件
首先确认主板芯片被正确识别:
sudo flashrom --programmer internal --ifd -i bios
若输出中列出了芯片型号(如 W25Q128.V),说明检测成功。若提示 No EEPROM/flash device found,请检查内核模块(spi-pci)是否加载,或尝试添加 --force 参数(仅限确认硬件兼容时使用)。
执行完整备份(将固件镜像保存为 backup_$(date +%Y%m%d).bin):
sudo flashrom --programmer internal --ifd -i bios -r backup_$(date +%Y%m%d).bin
等待命令完成,flashrom会显示 Reading flash... done。此时备份文件已生成。
验证备份完整性
备份文件必须与当前固件内容一致,否则后续恢复将失败。执行以下校验:
sudo flashrom --programmer internal --ifd -i bios -v backup_$(date +%Y%m%d).bin
输出包含 VERIFIED 字样即表示校验通过。若出现 FAILED,请重新执行备份步骤。
最后将备份文件复制到外部存储设备:
sudo cp backup_*.bin /mnt/usb_backup/
验证方法与判定标准
- 备份成功标志:flashrom命令无错误退出,且备份文件大小与芯片容量一致(例如W25Q128为16MB,文件大小应为16777216字节)
- 校验通过标志:
-v参数执行后输出VERIFIED,无任何FAILED提示 - 可恢复性确认:备份文件已成功复制到外部存储,且外部设备挂载正常可读
常见问题
- 提示
Multiple flash chips detected:使用--chip <型号>参数指定芯片,例如--chip W25Q128.V - 提示
Error: Programmer initialization failed:确认已加载spi-pci模块(sudo modprobe spi-pci),或尝试--programmer internal:boardmismatch=force(仅限确认主板兼容时) - 备份文件校验失败:重新运行备份命令,若仍失败,检查主板是否开启了写保护跳线或BIOS写保护选项
完成以上步骤后,你已拥有可恢复的原始固件备份,可以安全进入Libreboot刷写流程。