ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Clonezilla 实战:从 U 盘启动到 PXE 批量还原的完整指南

Clonezilla 实战:从 U 盘启动到 PXE 批量还原的完整指南 简介这份资源是再生龙Clonezilla Live2.7.0-10 版 AMD64 架构安装镜像面向需要进行系统克隆、数据迁移与灾难恢复的运维人员及个人用户。它类似 Ghost支持 ext2/3/4、FAT、NTFS 等多种文件系统兼容 Windows 与 Linux并集成 Ghostscript 组件以处理 PostScript、PDF 等复杂格式的磁盘映像。压缩包共 566 个文件约 288.37MB以 mod 模块、lst 列表、cfg 配置、txt 说明、c32 引导组件及 efi 固件文件为主另含 vmlinuz 内核、squashfs 根文件系统与 syslinux 引导加载器覆盖 BIOS 与 UEFI 双启动场景。目录中 live、boot、EFI、utils 等模块分工明确便于按需查阅与定制启动环境。目前已有 988 人学习下载适合希望快速搭建备份恢复环境、理解 Live 镜像组成结构的中高级用户参考使用。1. 从 clonezilla-live-2.7.0-10-amd64.zip 说起一个 300MB 的镜像为什么能顶一套机房备份方案手里拿到clonezilla-live-2.7.0-10-amd64.zip这个文件的人通常不是好奇而是被现实逼的几十台同型号办公机要批量装系统或者一台跑了三年的生产服务器要整盘迁移到新硬盘又不想买商业备份软件。这个 zip 解压出来是一个可启动的 Live 镜像amd64 架构专门跑在 x86_64 机器上核心能力就一句话——把一块硬盘或一个分区按块级别原样克隆成镜像文件再原样还原回去。它不关心你装的是 Windows、Linux 还是混合分区表只要块设备能读它就能复制。适合谁适合手里有 5 台以上机器要统一部署、或者需要做裸机灾难恢复的运维和 IT 支持人员。不适合只想备份几个文档目录的人那是 rsync 的活。这一章先把这东西的定位讲清楚后面几章再拆怎么用、参数怎么调、哪里会翻车。Clonezilla 本质上是把一堆开源工具partclone、dd、ntfsclone、sfdisk 等用脚本串起来的发行版基于 Debian Live 构建。2.7.0-10是它的版本号amd64说明它只能引导 64 位 x86 机器别指望拿它去跑 ARM 开发板。它有两种工作模式一种是设备到镜像save disk/partition to image把源盘存成一组文件另一种是镜像到设备restore image to disk把镜像写回目标盘。真正让它区别于 dd 的地方在于它默认用 partclone 只复制已用块跳过空闲区域所以一个 500GB 但只用了 80GB 的盘镜像可能只有 60 多 GB而不是傻乎乎地写满 500GB。这个特性直接决定了备份窗口和存储成本也是大多数人选它而不是 dd 的原因。2. 把 zip 变成能启动的盘写盘、引导与网络启动两条路拿到 zip 之后第一件事不是解压完就双击而是搞清楚你要用哪种方式引导。Clonezilla Live 支持 U 盘启动、光盘启动也支持 PXE 网络启动。单机操作走 U 盘最省事批量部署走 PXE 才划算。这一章把两条路都走一遍重点讲写盘命令和引导参数因为这一步翻车的人最多。2.1 用 dd 把镜像写进 U 盘的最小命令zip 解压后你会看到一个.iso文件和一个utils目录里面是 Windows 下写盘工具。在 Linux 或 macOS 下我一般直接用 dd不绕弯# 先确认 U 盘设备名别写错写错就是抹掉你的系统盘 lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # 假设 U 盘是 /dev/sdb卸载它所有已挂载分区 sudo umount /dev/sdb* 2/dev/null # 写入 isobs4M 兼顾速度和兼容性statusprogress 看进度 sudo dd ifclonezilla-live-2.7.0-10-amd64.iso of/dev/sdb bs4M statusprogress oflagsync # 写完刷新缓存别急着拔 sync逻辑说明if是解压出来的 iso 路径of必须是整盘设备/dev/sdb不能写成/dev/sdb1否则引导记录写不进去开机只会看到黑屏或直接进原系统。oflagsync保证数据真正落盘再返回避免拔盘太早导致镜像不完整。参数上bs4M是经验值太小写盘慢太大在某些老 U 盘上会报 I/O 错误。写完用sudo fdisk -l /dev/sdb看一眼应该能看到一个 FAT 分区和一个标记为 EFI 的分区说明引导结构正常。Windows 用户别用 dd用解压目录里utils\win32\或utils\win64\下的工具或者用 Rufus 选 DD 模式写入。注意 Rufus 默认的 ISO 模式对 Clonezilla 有时会失败切到 DD 模式才稳。2.2 PXE 批量启动dhcp 与 tftp 的关键配置机器超过十台一台台插 U 盘就是体力活。PXE 启动的核心是让目标机从网络拿到引导文件和根文件系统。你需要一台已经跑着 DHCP 和 TFTP 的服务器把 iso 里的live目录和syslinux相关文件放进去。常见做法是挂载 iso 后拷贝# 挂载 iso 到临时目录 sudo mkdir -p /mnt/cziso sudo mount -o loop clonezilla-live-2.7.0-10-amd64.iso /mnt/cziso # 拷贝 live 文件系统到 tftp 根目录 sudo cp -a /mnt/cziso/live /srv/tftp/clonezilla/ # 拷贝 pxelinux 引导文件 sudo cp /mnt/cziso/syslinux/pxelinux.0 /srv/tftp/ sudo cp /mnt/cziso/syslinux/ldlinux.c32 /srv/tftp/逻辑说明/srv/tftp是 TFTP 服务根目录具体路径看你用的服务配置。pxelinux.0是引导程序ldlinux.c32是它依赖的模块缺了会报Failed to load ldlinux.c32。然后在 DHCP 配置里加next-server指向 TFTP 服务器 IPfilename指向pxelinux.0。最后在/srv/tftp/pxelinux.cfg/default里写启动项指向clonezilla/vmlinuz和clonezilla/initrd.img并加上bootlive等参数。这一步参数多建议先拿一台虚拟机测通再铺开否则 DHCP 一改整个网段都受影响。提示PXE 启动时如果卡在Loading ...不动九成是 TFTP 没通或者文件权限不对先用tftp server_ip手动 get 一个文件验证。3. 备份与还原的实操模式选择、参数含义与镜像存放位置引导起来之后Clonezilla 会给你一个文本菜单。很多人第一次用会被满屏英文吓到其实核心就两个动作存镜像和还原镜像。这一章把菜单背后的参数讲透让你知道每一步在干什么而不是无脑下一步。3.1 设备到镜像saveparts 与 savedisk 怎么选进入菜单后选device-image意思是把设备存成镜像。接着会让你选镜像存放位置可以是本地硬盘、外接 USB、SSH 服务器、Samba 共享或 NFS。选好之后进入专家模式还是初学者模式我建议直接进专家模式因为初学者模式隐藏了关键参数。关键选择在savedisk和saveparts之间savedisk整盘备份包含分区表和所有分区还原时整盘恢复。适合裸机灾难恢复。saveparts只备份指定分区还原时也要指定分区。适合只备份系统盘不备份数据盘。选完之后会让你输入镜像名称然后进入参数确认页。这里有几个参数值得盯参数含义建议值-q优先使用 partclone 还是 dd默认 partclone除非文件系统不支持-c是否检查镜像首次备份建议开会慢但能发现坏块-j2使用多核压缩机器 CPU 核多就开能缩短备份时间-z1压缩方式z1 是 gzipz2 是并行 gzipz3 是 lz4-sfs分卷大小存到 FAT32 移动盘必须设否则单文件超 4G 会失败压缩方式的选择直接影响备份速度和镜像体积。-z1兼容性最好但慢-z3用 lz4 最快但压缩率低。我一般在内网千兆环境下用-z2平衡得比较好。如果目标存储是 FAT32 格式的 U 盘必须加-sfs 4000之类把镜像切成小于 4GB 的分卷否则写到一半报File too large前功尽弃。3.2 镜像到设备还原时的分区表陷阱还原镜像选restoreparts或restoredisk流程和备份对称。但这里有个血泪经验如果源盘和目标盘容量不一致还原时分区表可能对不上。比如源盘 500GB目标盘 480GBrestoredisk会尝试按原分区表重建最后一个分区可能超出目标盘范围直接报错。解决办法有两个一是还原时选-k1参数让 Clonezilla 按比例调整分区大小二是改用restoreparts先手动在目标盘上建好分区再往对应分区里写数据。-k1不是万能的它只对最后一个分区做缩放如果中间分区布局复杂还是手动分区更稳。还原完成后别急着重启先确认引导记录写没写。Clonezilla 默认会问你要不要安装 grub如果源盘是 UEFI 引导这一步必须选是否则重启后进不了系统。很多人还原完发现开机黑屏就是漏了这一步。# 还原后如果引导有问题可以手动进 chroot 修复 # 假设系统分区挂在 /dev/sda2 sudo mount /dev/sda2 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/sda update-grub exit逻辑说明这段是在还原后引导丢失时的补救措施。--bind把宿主机的设备、进程、系统目录映射进 chroot 环境让grub-install能正确识别磁盘。/dev/sda是目标盘整盘设备不是分区。执行完update-grub会重新扫描系统并生成菜单。这个操作在 Clonezilla 的 Live 环境里也能做但需要你先退出 Clonezilla 主程序回到 shell。4. 避坑与排查五个让备份还原翻车的真实场景Clonezilla 用起来不难但细节坑不少。这一章列五个我实际遇到过的翻车场景按现象、原因、解决三段写你遇到类似情况可以直接对号入座。4.1 现象备份到一半报partclone fail镜像不完整原因源盘有坏块或者文件系统处于不一致状态比如 Windows 没正常关机NTFS 处于休眠状态。partclone 读到坏块会直接中断不会跳过。解决先对源盘做文件系统检查。Windows 盘用chkdsk /fLinux 盘用fsck -y。如果是 NTFS 且开了快速启动进 Windows 关掉快速启动再备份。坏块多的话改用ddrescue先做磁盘镜像再从镜像里恢复数据别硬扛。4.2 现象还原后系统能进但网络不通IP 变成 169.254 开头原因源机器和目标机器网卡 MAC 地址不同但系统里绑定了固定 IP 或 udev 规则按 MAC 命名网卡。还原后网卡名变了配置对不上。解决还原前在源系统里清理网络配置。Linux 下删掉/etc/udev/rules.d/70-persistent-net.rules老版本或检查/etc/systemd/network/下的命名规则。Windows 下用 sysprep generalize 之后再备份否则 SID 和网卡绑定都会出问题。4.3 现象镜像存到 Samba 共享速度只有几 MB/s原因Clonezilla 默认用 SMB1 协议挂载很多现代 Samba 服务器已经禁用 SMB1协商失败后降级到极低效率。或者网卡协商成了百兆半双工。解决在专家模式里手动指定挂载参数加vers3.0。同时检查交换机和网线ethtool eth0看是不是 1000Mb/s 全双工。如果走 SSH 方式确认没开压缩-C因为镜像本身已经压缩过再压一遍纯属浪费 CPU。4.4 现象U 盘启动后找不到硬盘提示no disk found原因主板 BIOS 里 SATA 模式设成了 RAID 或 Intel RSTClonezilla 内核没加载对应驱动。或者硬盘是 NVMe 且主板太老Live 内核版本不支持。解决进 BIOS 把 SATA 模式改成 AHCI。NVMe 不识别的话换新版本的 Clonezilla或者用带nomodeset参数启动试试。实在不行把硬盘拆下来接到 USB 硬盘盒里再备份。4.5 现象还原到 SSD 后系统卡顿开机要几分钟原因源盘是机械硬盘分区对齐是 512 字节还原到 SSD 后没做 4K 对齐。SSD 的擦除块是 4K不对齐会导致每次写入都跨块性能暴跌。解决还原时用restoreparts手动分区用parted或gdisk确保分区起始扇区是 2048 的倍数。或者还原后用gparted检查对齐状态不对齐的话只能备份数据后重新分区再还原。注意以上五个坑里4.1 和 4.5 最容易被忽略因为系统能跑起来但性能和稳定性已经受损属于慢性病。5. 进阶技巧用 ocs-sr 命令行做无人值守批量还原图形菜单适合单机但如果你要同时给 20 台机器还原一台台点菜单就是灾难。Clonezilla 内置了ocs-sr命令行工具配合 PXE 启动参数可以实现全自动还原。这一章讲怎么把还原流程脚本化以及一个验证镜像完整性的技巧。5.1 用 ocs-sr 写一个自动还原脚本在 PXE 的启动参数里可以指定一个脚本在启动后自动执行。常见做法是把脚本放在 TFTP 服务器上通过ocs_prerun参数拉取执行。脚本内容大致如下#!/bin/bash # 自动还原脚本放在 tftp 根目录PXE 启动时通过 ocs_prerun 调用 # 挂载存放镜像的 NFS 共享 mkdir -p /home/partimag mount -t nfs 192.168.1.100:/volume1/clonezilla /home/partimag # 确认镜像存在 if [ ! -d /home/partimag/win10-base ]; then echo 镜像目录不存在退出 exit 1 fi # 执行还原-k1 自动缩放分区-g auto 自动确认-e2 还原后检查 ocs-sr -e2 -k1 -g auto -b -r restoredisk win10-base sda # 还原完成后自动关机方便批量操作 poweroff逻辑说明ocs-sr是 Clonezilla 的核心脚本restoredisk子命令对应整盘还原。-e2会在还原后做一次文件系统检查-k1处理分区缩放-g auto跳过所有交互确认-b是批处理模式。win10-base是镜像目录名sda是目标盘。这个脚本跑完机器自动关机你只需要换下一台开机按 PXE 启动即可。二十台机器可以并行做只要网络和存储扛得住。参数上要注意-e2会显著延长还原时间如果镜像本身已经验证过可以去掉换成-e1只做基本检查。-k1在目标盘比源盘小的时候有用但目标盘比源盘大很多时最后一个分区会被撑得很大不一定符合预期必要时改用-k手动指定分区表。5.2 验证镜像完整性别等还原失败才发现备份是坏的备份做完不验证等于没备份。Clonezilla 存完镜像会生成一个clonezilla-img文件里面记录了各分区的校验信息。验证方法是挂载镜像目录后运行# 进入镜像目录 cd /home/partimag/win10-base # 用 ocs-sr 的检查模式验证 ocs-sr -e2 -c restoredisk win10-base sda但更轻量的做法是直接看clonezilla-img里的 md5 列表用md5sum -c批量校验。如果镜像分卷很多这一步能提前发现哪个分卷在传输中损坏了。我一般会在备份完成后立刻跑一次校验确认无误再把镜像归档。这个习惯救过我两次——一次是 NFS 传输时丢包导致分卷损坏一次是硬盘坏道导致镜像文件读不出来。如果等到还原时才报错生产环境停机时间就不可控了。5.3 一个我坚持了多年的习惯每次做完备份我会拿一台闲置机器或虚拟机做一次完整还原测试确认系统能正常启动、网络能通、关键服务能跑。这个测试花二十分钟但能避免真正需要恢复时才发现镜像有问题。Clonezilla 的镜像文件不像数据库备份那样有事务保证它就是一串块数据坏了就是坏了没有后悔药。所以我的原则是备份完必须验验完必须试还原试完才归档。这套流程看起来笨但比任何花哨的增量备份方案都可靠。希望帮到你。本文还有配套的精品资源点击获取
返回列表