简介:这份Clonezilla Live 2.7.0-10 AMD64镜像面向需要做系统迁移、分区备份、灾难恢复与个人数据保护的运维人员及进阶用户,也适合服务器维护和机房批量部署场景。它基于Linux开源方案,支持ext2/3/4、FAT、NTFS等多种文件系统,并兼容Windows与Linux环境;Ghostscript相关组件的加入,使其在处理PostScript/PDF等文档格式的磁盘映像时更为完整。压缩包共566个文件,以491个mod内核模块、18个lst列表、7个cfg配置、6个txt说明、6个c32引导模块以及efi、img、syslinux等启动文件为主,整体约288.37MB,目录覆盖Live运行环境、UEFI与传统BIOS引导、实用工具、版本与许可说明。已有1003人学习下载,读者可据此获得可启动的克隆恢复环境,并理解引导结构、备份恢复流程与离线应急操作。
1. 一块 U 盘换一次整机重装:Clonezilla Live 2.7.0-10 amd64 值不值得常备
系统盘这种设备,平时没人留意,但一旦出问题,并没有现成的备选方案。Clonezilla Live 2.7.0-10 的 amd64 版本就是一块可以常备在抽屉里的启动盘:一个基于 Debian 的 Live 系统,启动后直接对整块磁盘做扇区级或分区级镜像,存成文件,换盘、换机、扩容都能还原回去。它不需要目标机先能开机,硬盘拆下来挂上照样能救;也不像商业方案那样要先装 Agent、先买授权。适合手上管着十几台到上百台机器又不想掏预算的人,做硬件回收和批量装机的,给开发同事重置测试机的,以及只想给自己电脑留一份“原厂状态”快照的个人用户。amd64 对应目前绝大多数 x86-64 平台,老主板用 Legacy 引导也能起得来。
2. 拆开这个 ISO:五项启动菜单、两条工作路线与介质制作
2.1 启动菜单那五项不是随便排的
ISO 起机后第一个画面有五到六项,很多人直接回车进默认项,结果在后面某个环节卡住,还以为是镜像坏了。这五项各自对应一类硬件状态,选错了不会立刻报错,但会在挂载磁盘或者识别网卡的时候出问题。
Clonezilla live (VGA 800x600):默认项,正常机器走这个。VGA 文本模式是为了兼容绝大多数服务器板载显卡,别嫌它丑。Clonezilla live (To RAM):整机系统载入内存后运行,启动完成后 U 盘可以拔掉。它的真正价值不是“快”,而是当你要把镜像写回同一块 U 盘、或者 U 盘只有一个接口又需要接移动硬盘时,能腾出这个接口。代价是内存占用,小于 1GB 的机器别选。Clonezilla live (Safe graphic mode):显卡驱动识别异常、花屏、黑屏只剩一个光标时用。Clonezilla live (speech synthesis):给视障用户准备的语音引导,普通场景不用碰。Clonezilla live (failsafe):关掉 ACPI 和部分内核模块加载,专治老机器启动到一半断电重启、或者卡在 PCI 枚举。
我的习惯是:新机器先用默认项,起不来再退到 failsafe,花屏换 Safe graphic。别一上来就 failsafe,它关掉的东西后面可能还要用。
2.2 device-image 与 device-device:先选路线再动手
进了主菜单,第一个岔路口是device-image和device-device,这一步选错,后面所有操作都白做。
device-image是磁盘和镜像文件之间的搬运,下面分savedisk(整盘存成镜像)、restoredisk(镜像还原到整盘)、saveparts(只存某几个分区)、restoreparts(只还原某几个分区)。镜像是一个目录,里面是一堆sda1.ext4-ptcl-img.gz.aa这样的分卷加几个信息文件。它的好处太明显了:能存下来、能校验、能拷到别的机器、能通过网络传、能保留多个历史版本。
device-device是两块盘直接对拷,走ocs-onthefly,中间不落地成文件。速度快,但要求源盘和目标盘同时在线,而且没有中间产物可以回滚。做一次性换盘、把机械盘换成 SSD 这种场景很合适,做日常备份就不合适了。
选型上我一般这么判断:只要这块镜像你还打算留超过一天,就走device-image;如果只是“把这块盘的内容搬到那块盘,搬完这块盘就格式化”,那就device-device。反过来做会多出一堆临时空间和一次多余的读写。
还有一类remote-source/remote-destination的远程模式,本质是device-image换了镜像存放位置,第 4 章会展开。
2.3 把 ISO 变成能启动的介质:U 盘和虚拟机两种做法
下载下来的是压缩包,不是 ISO 本身,这一点每年都有人卡住。先解压再写盘,别把 zip 直接 dd 进 U 盘。
# 解压出真正的 ISO,确认文件名和大小 unzip clonezilla-live-2.7.0-10-amd64.zip ls -lh *.iso解压后拿到.iso文件。写 U 盘有两条路:Rufus 这类图形工具,或者命令行 dd。Rufus 在 Windows 上要选“DD 模式”而不是“ISO 模式”,ISO 模式会往 U 盘里塞一个分区结构,部分主板在 UEFI 下认不出来,表现就是启动项里根本看不到这块盘。
Linux 下用 dd,写之前务必确认设备号。
# 看清楚哪块是 U 盘,别把系统盘写成目标 lsblk -o NAME,SIZE,MODEL,TRAN # 假设确认是 /dev/sdb,写入时用整盘设备名,不带数字后缀 sudo dd if=clonezilla-live-2.7.0-10-amd64.iso of=/dev/sdb bs=4M status=progress oflag=sync syncof=后面必须是/dev/sdb这种整盘名,写成/dev/sdb1只会覆盖第一个分区,剩下的引导扇区全是旧的。bs=4M是块大小,oflag=sync保证写完刷盘,最后那个sync是保险,U 盘拔早了会出现“能启动但解压镜像时报错”的玄学问题。
虚拟机里测试最省事:新建一台机器,光驱挂 ISO,再加一块空白虚拟盘当目标盘。注意虚拟盘要在关机状态下加,热加的话 Live 系统起来时已经枚举完设备,看不到新盘。
3. 本地整盘备份与还原:从 lsblk 到 ocs-sr 的完整命令
3.1 进到 Live 环境先做的三件事
系统起来直接掉进 root shell,没有登录这一步。别急着敲备份命令,先花两分钟把设备关系理清楚,这三条命令能省掉后面半小时的排查。
# 看盘和分区,TYPE 列能区分 disk 和 part lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT # 看分区表和分区起止扇区,还原到不同容量的盘时用得上 parted -l # 看 UUID 和文件系统类型,确认 NTFS 还是 ext4 blkidlsblk的输出里TYPE=disk才是整盘,TYPE=part是分区,savedisk后面跟的是前者。很多人在这里把sda1填进去,Clonezilla 会报“找不到设备”或者直接把分区当盘处理,结果镜像里缺了分区表。parted -l主要看两件事:是 GPT 还是 MBR,以及每个分区的起始位置。这两项决定了还原到新盘时能不能对齐。blkid用来确认分区里的文件系统,partclone 是按文件系统类型选工具的,NTFS 走partclone.ntfs,ext4 走partclone.ext4,认错了会退化成 dd 全盘复制,速度差好几倍。
存放镜像的目录默认是/home/partimag,如果镜像要存到另一块盘上,先挂上去。
# 把存放镜像的盘挂到默认镜像根目录 mkdir -p /home/partimag mount /dev/sdb1 /home/partimag df -h /home/partimagdf -h这一步不能省。整盘镜像的体积取决于实际数据和压缩率,一个 512GB 的盘如果只用了 80GB,压缩后可能只有 30GB;但如果文件全是已压缩的图片和视频,-z1p也压不下去多少。空间不够的话,备份跑到 90% 才报错,前面几十分钟全白费。
3.2 用 ocs-sr savedisk 做一份整盘镜像
Clonezilla 的图形界面底层调用的就是ocs-sr,直接敲命令反而更清楚自己选了什么。下面这条是本地整盘备份的完整形态:
# 整盘备份:源盘 sda,镜像名带日期,压缩并存到 /home/partimag ocs-sr -q2 -c -j2 -z1p -i 4096 -sfsck -senc -p choose \ savedisk 2024-06-01-win11 sda逐段拆开看。-q2是安静模式,只输出关键进度,-q1会刷大量分区级细节,日志长得没法看。-c表示执行前等一次回车确认,自动化脚本里要去掉,手工操作时留着,防止手滑。-j2指定用 partclone 按文件系统处理分区,只有它搞不定的分区才会退化成 dd。-z1p是并行 gzip 压缩,多核机器上比-z1快不少;想压到最小用-z9p,但 CPU 占用高、耗时翻倍;完全不想压就用-z0,速度最快但镜像体积等于实际数据量。
-i 4096是镜像分卷大小,单位 MB。超过这个值就切一个.aa、.ab,便于往 FAT32 的 U 盘里拷。-sfsck跳过源分区的文件系统检查,能省时间,代价是源盘本身有逻辑错误时不会提醒你——如果这块盘已经出现异响或者读写报错,把这个参数去掉,先让 fsck 过一遍。-senc是不加密镜像,除非镜像要放到不受控的介质上,一般不用开加密,开了之后还原时每次都要输密码,而且丢了密码镜像就废了。
执行完,镜像目录里会出现这些文件:
ls -lh /home/partimag/2024-06-01-win11/ # clonezilla-img Info-dmi.txt Info-lshw.txt Info-sfdisk.txt # parts sda-pt.parted sda-pt.sf # sda1.ntfs-ptcl-img.gz.aa sda2.ntfs-ptcl-img.gz.aa ...parts记录了分区顺序,sda-pt.parted和sda-pt.sf是分区表的两份文本备份,Info-lshw.txt是硬件清单,换机器还原时用来对比网卡和显卡型号。这几个文本文件别删,出问题时它们比镜像本体还有用。
3.3 参数表:-z、-j、-k、-i 怎么配
参数组合是这个工具最容易翻车的地方,我整理了一张常用组合对照表,按场景选比按字面意思猜靠谱。
| 参数 | 可选值 | 作用 | 常见误用 |
|---|---|---|---|
-j | 0 / 2 | 0 用 dd 全盘扇区复制,2 用 partclone 按文件系统 | 目标盘分区表异常时用 2 会失败,退回 0 |
-z | 0 / 1 / 1p / 9p | 不压缩 / 单线程 gzip / 并行 gzip / 最高压缩 | 对已压缩数据用 9p,耗时翻倍体积不变 |
-i | 数字,单位 MB | 镜像分卷大小 | 设太小产生几百个分卷,拷盘时容易漏 |
-k | k / k1 / k2 | 保持目标分区表 / 按镜像重建 / 按目标盘容量等比放大 | 还原到大盘忘了用 k2,白白浪费空间 |
-e1 | auto / yes / no | 是否用 dd 复制 MBR 引导记录 | UEFI 机器上盲目 yes,会写回旧的 MBR |
-e2 | 无值 | 用 sfdisk 重建分区表 | 与-k同时用时要留意顺序 |
-k这三个变体值得单独说。-k1是严格按镜像里的分区表重建,还原到同容量或者更大的盘都没问题,但如果目标盘更小,分区写到一半会失败。-k2是按目标盘总容量等比放大每个分区,把小盘的镜像还原到大盘上用它最合适。-k不带数字是保持目标盘现有分区表不动,只往里写数据,适合目标盘已经分好区、只想覆盖系统分区的情况。这三者里-k1最安全,-k2最实用,-k最容易把数据写到不该写的地方。
3.4 还原:restoredisk 与还原后的引导修复
还原命令和备份对称,多出来的参数都是围绕分区表和引导的。
# 整盘还原:镜像还原到 sda,按镜像重建分区表,结束后重启 ocs-sr -q2 -c -j2 -z1p -i 4096 -e1 auto -e2 -k1 -p reboot \ restoredisk 2024-06-01-win11 sda-e1 auto让 Clonezilla 自己判断要不要用 dd 复制 MBR,-e2用 sfdisk 重建分区表,这两个配合-k1是还原到同容量或更大容量盘的稳妥组合。-p reboot表示还原完直接重启,可选值还有poweroff和choose,批量场景用poweroff,手工场景用choose留个缓冲。
还原到更小容量的 SSD 是很常见的需求,比如原来 1TB 机械盘只用了 200GB,想换 512GB 固态。直接还原会报目标盘容量不足,加-icds能跳过这个检查,但跳过检查不等于问题解决了——如果源盘的实际数据加上分区表已经超过目标盘,写到一半就会失败,而且此时目标盘的分区表已经被改写,等于两头落空。正确顺序是先在源系统里缩小分区和文件系统,再重新做一次备份,然后还原。
还原完成后起不来的情况,八成是引导模式不匹配。备份时是 UEFI,还原到的机器用 Legacy 启动,或者反过来,表现都是黑屏一句 “Boot device not found”。进 Live 环境确认一下:
# UEFI 机器上查看启动项和 ESP 分区 efibootmgr -v lsblk -o NAME,SIZE,FSTYPE,PARTTYPENAME | grep -i efi如果efibootmgr报 “EFI variables are not supported”,说明当前是 Legacy 模式启动的,而镜像来自 UEFI 机器。这种情况要么在固件里把启动模式改回 UEFI,要么进系统后用安装介质重建引导。Linux 系统可以 chroot 进去重装 grub,Windows 用安装盘的启动修复,别指望 Clonezilla 自动处理这一层,它只负责把扇区搬回去。
4. 网络批量部署:NFS、Samba、SSH 三种后端与无人值守
4.1 三种后端的取舍:不是哪个新就用哪个
把镜像存到网络共享上,是这套工具真正开始省事的地方。三种后端各有明确的适用场景,选错了不是不能用,是会在某些环节莫名其妙地慢或者断。
NFS 是 Linux 服务端之间最顺的选择,协议开销小,大文件顺序读写能跑满千兆甚至万兆。缺点是对权限模型要求严格,服务端要配no_root_squash,否则 Live 环境里的 root 写不进共享目录。Windows 上搭 NFS 服务端也能用,但配置麻烦,不推荐。
Samba/CIFS 是混合环境下的默认答案,Windows 共享目录、NAS、群晖都能直接挂。它的坑集中在协议版本协商上,老 NAS 只支持 SMB1,新版内核默认禁用了 SMB1,挂载直接报协议不支持;反过来,强制指定 SMB1 又有安全隐患。
SSH/sshfs 适合跨网段、只能走 22 端口的场景,比如托管机房只给你开一个 SSH。速度比前两者慢,但穿透性好,还能走密钥认证。Clonezilla Live 里不一定预装 sshfs,要现装得能连外网源,离线环境就得提前准备。
我一般的判断顺序是:内网 Linux 存储走 NFS,混合环境或者现成 NAS 走 CIFS,跨网段或者只有 SSH 通道走 sshfs。三种都别在备份中途切换,镜像目录里的分卷命名规则是一样的,但挂载点变了容易写到两个地方去。
4.2 手工挂载加 ocs-sr:第一条可用的网络备份命令
先把共享挂到默认镜像根目录,再跑和本地一模一样的ocs-sr,这是最容易验证成功与否的做法。图形界面里的“使用现有挂载点”就是这个意思。
# NFS:服务端已导出 /export/clonezilla,且允许 root 写入 mkdir -p /home/partimag mount -t nfs -o nolock,vers=3 192.168.1.20:/export/clonezilla /home/partimag mount | grep partimag df -h /home/partimagnolock在没有 rpcbind 的精简环境里能避免挂载卡住,vers=3是兼容性最好的版本,服务端支持 NFSv4 的话可以换成vers=4.1拿到更好的并发。挂完一定要df -h确认容量和写入权限,NFS 挂载成功但不可写的情况很常见,表现是备份跑到创建目录那一步才报错。
# CIFS:NAS 共享,显式指定协议版本和属主 mount -t cifs -o username=backup,password=***,vers=3.0,uid=0,gid=0,file_mode=0666,dir_mode=0777 \ //192.168.1.20/backup /home/partimaguid=0,gid=0是把挂载后的文件属主强制成 root,否则 Live 环境里的 root 在共享目录里创建的文件会变成 nobody,后续写入分卷时权限被拒。file_mode和dir_mode同理,CIFS 不带 POSIX 权限,只能靠挂载参数模拟。密码直接写在命令行里会留在 shell 历史,正式环境用credentials=/root/.smbcred指向一个 600 权限的文件。
# SSH:通过 sshfs 把远端目录映射过来,需要先有 sshfs which sshfs || apt-get install -y sshfs sshfs backup@192.168.1.20:/data/clonezilla /home/partimag \ -o reconnect,ServerAliveInterval=15,password_stdin < /root/.sshpassreconnect和ServerAliveInterval是给不稳定的链路准备的,网络抖一下 sshfs 断了,ocs-sr会一直卡在写分卷上不报错,看起来像死机。这两个参数能让它自己重连。
挂好之后,命令和本地备份完全一致:
# 备份到网络挂载点,镜像名带上机器编号便于批量识别 ocs-sr -q2 -c -j2 -z1p -i 4096 -sfsck -senc -p poweroff \ savedisk node-042-20240601 sda镜像最终落在远端共享的node-042-20240601目录里。批量场景下命名规则要提前定死,我一般用“机器编号-日期”,按名字排序就是按时间排序,找起来快。
4.3 无人值守:内核参数与 ocs_live_run
一台一台点菜单不现实,Clonezilla Live 支持在启动时把整条命令塞进内核参数。做法是在启动菜单上按 Tab 编辑,找到ocs_live_run=那一段替换掉。
# 启动菜单按 Tab 后编辑,整行是一条内核命令行 linux /live/vmlinuz boot=live union=overlay username=user \ ocs_prerun="mount -t nfs -o nolock,vers=3 192.168.1.20:/export/clonezilla /home/partimag" \ ocs_live_run="ocs-sr -q2 -batch -j2 -z1p -i 4096 -sfsck -senc -p poweroff savedisk auto-$(hostname) sda" \ ocs_live_extra_param="" ocs_live_batch=yesocs_prerun在 Clonezilla 主程序启动前执行,用来挂网络共享,可以写多条ocs_prerun1到ocs_prerun4。ocs_live_run就是最终要跑的完整命令,注意这里不能用-c,-batch加上ocs_live_batch=yes才是真正的无人值守,任何需要确认的地方都会走默认值。-p poweroff让机器备份完自己关机,方便流水线作业。
生产环境里我把这一整套做成 PXE 引导,DHCP 按 MAC 分配不同的ocs_live_run参数,同一批机器插上网线开机就能自动备份,不需要人守。这套东西第一次配要花时间,配完之后再做批量迁移就是纯体力活了。
5. 避坑与排查:五条血泪经验
5.1 介质与启动相关的两个坑
现象:U 盘写完了,启动项里能看到,选中后卡在黑屏或者反复重启,换一台机器又能正常起。原因通常是写盘方式不对——用 Rufus 的 ISO 模式写出来的 U 盘,在部分主板的 UEFI 固件下识别不到引导文件,只认 DD 模式写出来的原始镜像结构。解决方法是重写一遍,Rufus 里选“DD 模式”,Linux 下直接dd到整盘设备,写完sync再拔。还有一种情况是 USB 3.0 接口在老主板上的兼容问题,换到 USB 2.0 口就能过。
现象:系统起来了,但挂载源盘时报device not found,lsblk里也看不到那块盘。原因是硬盘接在 RAID 卡或者 NVMe 转接卡上,Live 内核没带对应驱动;也可能是 BIOS 里 SATA 模式设成了 RAID 而不是 AHCI,Linux 看到的是一个未初始化的 RAID 成员盘。解决方法是在固件里临时改成 AHCI 再试,或者换 failsafe 模式启动看能不能加载通用驱动。这一条我在服务器上翻过不止一次车,最后发现是阵列卡没配直通。
5.2 磁盘与文件系统相关的两个坑
现象:还原到更小的 SSD,进度条跑到一半报No space left on device,目标盘分区表已经被改写,原来的数据也没了。原因是用了-icds强行跳过容量检查,但源盘实际数据量确实超过了目标盘容量。这个参数只跳过检查,不解决空间问题。正确做法是先在源系统里缩分区、缩文件系统,重新备份一次,再还原。已经写坏的目标盘只能用-k1重新还原一次完整镜像盖回去。
现象:备份顺利,还原也顺利,但还原后的 Windows 启动蓝屏,错误码指向引导设备不可访问。原因是备份时用的是 UEFI 引导,还原的目标机固件设成了 Legacy,或者 ESP 分区在还原时被-k1按镜像重建但引导项没写进 NVRAM。解决方法是进固件改回 UEFI,或者用 Windows 安装介质做一次启动修复;Linux 系统则 chroot 进去grub-install加update-grub。这一条的本质是 Clonezilla 只搬数据,不搬固件里的启动项。
5.3 网络与权限相关的一个坑
现象:挂载 CIFS 成功,ocs-sr跑起来几十秒后报Permission denied,或者速度只有十几 MB/s。前者的原因是挂载参数没带uid=0,gid=0,Live 里的 root 在 SMB 共享上没有写权限;后者的原因是协议版本协商到了 SMB1,老协议在小文件多的场景下性能极差。解决方法是在挂载参数里显式写vers=3.0(或3.1.1)和uid=0,gid=0,file_mode=0666,dir_mode=0777,如果 NAS 太老只支持 SMB1,就得接受这个速度,或者换 NFS 后端。另外 NAS 侧的共享目录配额也要看一眼,配额满了的表现同样是写到一半报权限错误,很容易误判。
6. 验证与归档:三重校验、增量策略和 ghostscript 的用法
镜像做完了不等于能用。我在吃过一次“还原到一半发现分卷损坏”的亏之后,形成了固定的三重校验习惯,每次备份完立刻跑一遍,不给自己留后悔的余地。
6.1 还原前的三重校验
第一重是分卷完整性。partclone 的分卷是独立的 gzip 成员,逐个测试就能定位坏在哪一段:
# 逐个校验 gzip 分卷完整性,输出 BAD 的那一段要重做 cd /home/partimag/2024-06-01-win11 for f in *.gz.*; do gzip -t "$f" 2>/dev/null || echo "BAD: $f"; donegzip -t只解压校验不落盘,速度快,能发现拷贝过程中截断或者介质坏块导致的问题。第二重是分区表对比,把sda-pt.sf里的分区起止扇区和目标盘parted -l的输出对一遍,容量对不上就说明-k参数选错了。第三重是冷启动验证,还原完不要急着交付,断电重启一次,看到系统真正进了桌面或者登录界面才算完成。这部分没有命令可以替代,只能人工确认。
6.2 增量策略:-i 与完整镜像的配合
全量备份每次几十 GB,做每周一次不现实。Clonezilla 支持在已有镜像基础上做增量:
# 第一次做完整镜像,之后用 -i 0 做增量,-i 1、-i 2 依次递增 ocs-sr -q2 -c -j2 -z1p -i 4096 -sfsck -senc -p choose \ -i 0 savedisk 2024-06-08-win11 sda-i 0表示这是第一个增量,依赖同名的完整镜像;-i 1是第二个,以此类推。注意增量只记录变化的分区块,还原时必须先还原完整镜像再按顺序套增量,中间断一个就全废。所以我的做法是:完整镜像保留最近两份,增量只保留最近四次,超期的直接删掉,避免还原时链条太长记不清顺序。
6.3 用 ghostscript 把验证记录压成 PDF 归档
还原现场的证据链经常被忽略:屏幕截图、dmesg输出、硬件清单、验收签字扫描件,散在一堆 PNG 和 txt 里,过半年根本对不上是哪台机器。我一般会在宿主机上把这些整理成一个 PDF,跟镜像目录放在一起。
# 把恢复过程的截图序列合成一个 PDF,再压缩到适合归档的体积 gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -o raw-report.pdf shot-*.png gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dCompatibilityLevel=1.5 \ -dNOPAUSE -dBATCH -sOutputFile=report.pdf raw-report.pdf第一条命令把 PNG 序列按文件名顺序合成 PDF,-dCompatibilityLevel=1.5保证老版本阅读器也能打开。第二条用/ebook预设重新压一遍,图片分辨率降到 150dpi 左右,体积通常能砍掉六七成,肉眼几乎看不出差别。/screen压得更狠但文字会糊,/prepress保留印刷质量但文件很大,归档场景/ebook是平衡点。注意 Live 环境里不一定带 ghostscript,这一步放在宿主机的批处理脚本里做更稳妥。
从那以后我每次做整盘还原,都强制先跑一遍gzip -t的全量校验,再冷启动一次确认引导,最后把截图和日志压成一个 PDF 塞进镜像目录。这三步花不了十分钟,但能挡掉绝大多数“还原完才发现不对”的场面。希望帮到你。
本文还有配套的精品资源,点击获取