银河麒麟系统引导记录备份需分四类操作:一、用dd备份MBR(512字节);二、用dd成对备份GPT主/备份头及分区表;三、用sgdisk导出GPT文本快照;四、用tar打包ESP分区全部内容。

如果您需要在银河麒麟操作系统中防止因误操作、磁盘故障或引导区损坏导致系统无法启动,对当前磁盘的引导记录(MBR 或 GPT 头部结构)进行备份是关键前置措施。以下是针对不同分区表类型的独立备份方法:
一、备份MBR引导记录(含主引导代码与分区表)
MBR位于磁盘最前端512字节,包含446字节引导代码、64字节分区表和2字节结束标志。备份需精确读取该扇区,避免截断或偏移错误。
1、打开终端,执行sudo fdisk -l确认目标磁盘设备名(如/dev/sda)。
2、使用dd命令完整备份MBR:sudo dd if=/dev/sda of=/home/user/mbr_backup.img bs=512 count=1
3、验证备份完整性:sudo md5sum /home/user/mbr_backup.img
4、将备份文件复制至外部存储设备并确认可读:备份文件必须脱离原磁盘保存,否则磁盘损坏时备份同步丢失。
二、备份GPT头部及备份分区表(Primary & Backup GPT Header)
GPT结构包含主GPT头(LBA 1)、主分区表(LBA 2–33)、备份GPT头(倒数第二个LBA)及备份分区表(倒数第34–1个LBA)。仅备份主头不足以恢复全部结构,必须同时保存主+备份两套GPT元数据。
1、确定目标磁盘(如/dev/sdb),运行:sudo gdisk -l /dev/sdb,观察输出末尾的“Backup GPT header”位置。
2、备份主GPT头与前33个扇区(含主分区表):sudo dd if=/dev/sdb of=/home/user/gpt_primary.img bs=512 skip=1 count=33
3、备份备份GPT头及对应分区表(需根据gdisk输出计算起始LBA):sudo dd if=/dev/sdb of=/home/user/gpt_backup.img bs=512 skip=XXXX count=33(其中XXXX为备份GPT头所在LBA编号)。
4、执行sudo gdisk /dev/sdb,在交互界面输入v验证GPT结构一致性,再输入q退出,确保原始结构当前有效。
GPT备份必须成对保存主/备份区域,缺失任一部分将导致gdisk无法自动修复分区表。
三、使用sgdisk批量导出GPT结构文本快照
sgdisk可将GPT分区表以人类可读格式导出为文本,便于版本比对与离线审计,不依赖二进制扇区读取,规避权限与设备忙锁问题。
1、安装工具(若未预装):sudo apt update && sudo apt install gdisk -y
2、导出当前GPT结构为文本:sudo sgdisk -p /dev/sdc > /home/user/sdc_gpt_layout.txt(替换/dev/sdc为目标磁盘)。
3、同时导出详细分区属性(含GUID、类型码、名称):sudo sgdisk -i=1 /dev/sdc >> /home/user/sdc_gpt_layout.txt(逐一分区追加,1为第一分区编号)。
4、检查导出文件是否包含“Partition table entries”及“Disk identifier”字段:缺少这两项表明sgdisk未成功读取GPT结构,应改用dd方式备份。
四、创建ESP分区内容快照(UEFI系统必备)
对于采用GPT+UEFI启动的麒麟系统,EFI系统分区(ESP)内存放grubx64.efi、shimx64.efi等引导文件,其内容变更直接影响启动能力,需单独归档。
1、确认ESP挂载点:sudo blkid -t TYPE="vfat" -o value或查看/boot/efi是否已挂载。
2、若未挂载,创建临时挂载点并挂载:sudo mkdir -p /mnt/esp && sudo mount /dev/sda1 /mnt/esp(请将/dev/sda1替换为实际ESP设备)。
3、打包ESP全部内容:sudo tar -czf /home/user/esp_snapshot_$(date +%Y%m%d).tar.gz -C /mnt/esp .
4、卸载ESP:sudo umount /mnt/esp。
ESP快照必须包含EFI目录下的所有子目录(如ubuntu、BOOT、Microsoft),遗漏任何子目录可能导致特定引导项失效。

















