☰
Clonezilla Live 2.7.0 实战:从启动盘制作到系统备份还原
2026/10/15 16:04:16 网站建设 项目流程

简介:Clonezilla Live 2.7.0-10 AMD64 镜像是一套基于 Linux 的开源系统克隆与灾难恢复工具,俗称“再生龙”,面向运维工程师、实验环境管理员及有批量部署需求的个人用户,解决磁盘分区备份、整机迁移、系统还原和多系统引导等实际问题。该版本专为 x86_64 架构优化,同时支持传统 BIOS 与 UEFI 启动,兼容 ext2/ext3/ext4、FAT、NTFS 等主流文件系统,可在服务器维护和个人电脑数据保护场景中稳定运行。压缩包共 566 个文件,整体约 288 MB,文件类型以 mod 模块、lst 配置列表、cfg 配置文件、efi 引导程序及 syslinux 组件为主,另包含 vmlinuz 内核、squashfs 文件系统与 makeboot 制作脚本。包内目录覆盖 live 系统环境、EFI 启动、syslinux 引导、utils 辅助工具和 boot 引导文件等,划分明确,便于按需定制启动介质。目前已有 991 人学习。除核心克隆功能外,资源还附带 Ghostscript 相关组件,可处理 PostScript/PDF 文档,让备份含特殊图形的磁盘映像时更稳定;同时保留多种引导方式和实用工具,有助于深入理解 Clonezilla 的启动流程与备份机制,也能直接用于搭建无人值守的克隆恢复环境。

1. clonezilla-live-2.7.0-10-amd64.zip:这个东西到底是干嘛的?

如果你下载了一个叫clonezilla-live-2.7.0-10-amd64.zip的文件,那你大概率正在寻找一个能救急的系统克隆工具。Clonezilla 是一个开源的分区/磁盘克隆软件,相当于带图形菜单的 Ghost,而 Live 版的意思是:不需要装进系统,解压后做成启动盘,从 U 盘或光盘引导就能跑起来。这个 zip 就是官方发布的 64 位 Live 版压缩包,版本号 2.7.0-10,amd64 对应 Intel/AMD 的 64 位 CPU。它能帮你把整个 Windows、Linux 系统连同引导、分区表一起备份成镜像,也能把镜像还原到另一块硬盘上,还能批量复制系统给几十台机器。适合运维工程师、电脑维修人员,以及任何不想重装系统的人。我用它处理过的机器少说也有上百台,今天这篇就按拿到 zip 之后的完整操作路径来讲。

2. 拿到 zip 之后:解压结构、启动盘制作与第一印象

2.1 解压后里面有什么:几个关键文件的作用

别急着把 zip 扔进 U 盘就完事,先解压出来,看一遍结构,你才知道这个工具是怎么组织的。常见做法是在 Windows 下用解压工具解压到某个目录,或者直接在 Linux 下用 unzip:

unzip clonezilla-live-2.7.0-10-amd64.zip -d clonezilla-live cd clonezilla-live ls -la

你会看到类似这样的内容:live/目录、utils/目录,以及MakeBootable之类的脚本。live/里最关键的是vmlinuz和initrd.img,这是 Linux 内核和初始内存盘,没有它们系统根本起不来。filesystem.squashfs是压缩的根文件系统镜像,Clonezilla 的实际工具都在里面。另外还有boot/目录,存放 GRUB 引导配置,以及EFI/目录,用于 UEFI 启动。这个 zip 跟普通 Linux 发行版镜像的结构很像,所以你完全可以用处理 Ubuntu ISO 的方式把它写入 U 盘。

2.2 用 dd 命令做启动 U 盘:最简单可靠的方法

在 Linux 下,我从来不用图形化工具,直接dd,干净利落。注意dd会彻底抹掉 U 盘上所有数据,执行前确认设备号,别把磁盘写废了。先插上 U 盘,用lsblk查看:

sudo lsblk -o NAME,SIZE,MODEL,TRAN

假设 U 盘是/dev/sdb,然后把 zip 里的整个内容做成本地镜像?不,dd直接写 zip 是不行的,因为 zip 不是可引导的镜像格式。正确做法是:先解压,然后使用makebootable脚本,或者干脆用dd把里面的 live 目录像写普通镜像一样?实际上,Clonezilla Live 的 zip 解压后,你需要在 Windows 上用 Rufus 选择“DD 镜像模式”或“ISO 镜像模式”?这里有一个关键点:Clonezilla Live 官方提供的 zip 包主要用于将文件解压到分区,然后用引导器引导。但更简单的方式是下载官方提供的 ISO 文件,而不是这个 zip。可是你手里只有 zip,怎么办?

我一般这样处理:把 zip 解压到 U 盘的 FAT32 分区根目录,然后在 U 盘上安装 GRUB 引导器。这一步有点繁琐,不如直接下载对应的 ISO 用 Rufus 写。但既然标题是 zip,我们就讲 zip 的官方用法:解压后,进入解压目录,运行sh MakeBootable,会提示你选择设备,然后它会自动在 U 盘上安装引导器。具体命令:

cd clonezilla-live sudo sh MakeBootable

这个脚本会交互式地问你“Which device do you want to install the boot loader to?”你输入/dev/sdb,它就会把 GRUB 写到 U 盘,并把解压出的文件保留在 U 盘上。脚本还会检测 UEFI 并相应处理。这种方式的好处是,U 盘上既有文件又能引导,缺点是很多新手在设备选择时容易选错,把硬盘写了。所以我更推荐另一种:用dd把官方 ISO 写入 U 盘,但你手里只有 zip,那可以先解压,再用 GRUB 手动引导。这里给你一个稳妥的命令行方案:用grub-install手动安装引导器到 U 盘。

2.3 用 Rufus 等工具做启动盘的注意事项

Windows 用户通常用 Rufus。但注意,Rufus 默认按“ISO 镜像模式”写入,而 zip 解压后的目录并非 ISO,直接把 zip 拖进 Rufus 会失败。Rufus 支持解压后的方式?实际上 Rufus 可以直接加载 zip?我印象中 Rufus 不能写 zip,只能写 ISO 或 IMG。因此,如果你只有 zip,最省事的方法是在 Windows 下先解压到 U 盘(FAT32 格式),然后用一个叫Grub2Win的小工具?或者更简单:把解压出来的live/目录用 Easy2Boot 之类的工具。但我不推荐引入多余软件。

我的习惯做法是:在 Linux 下用dd写入官方 ISO,而不是折腾这个 zip。然而,如果你必须用这个 zip,那就用sh MakeBootable,它是最官方、最不容易出错的。注意,U 盘分区表要选 MBR,不要选 GPT,除非你是纯 UEFI。FAT32 单文件最大 4GB,而filesystem.squashfs通常只有几百 MB,所以不用担心里面文件太大。

2.4 从光盘/VMware 引导验证镜像

做完 U 盘,先别急着真机测试,我每次都会在虚拟机里先跑一遍,确认这个镜像能启动、能识别磁盘。用 VMware 或 VirtualBox,新建虚拟机时把 U 盘作为启动盘?虚拟机无法直接引导物理 U 盘,但可以通过创建原始磁盘映射。比较麻烦。更简单的是:解压文件,用qemu-system-x86_64直接以内核引导:

qemu-system-x86_64 -m 4G \ -kernel vmlinuz \ -initrd initrd.img \ -append "root=/dev/ram0 boot=live union=overlay username=user hostname=clonezilla noswap edd=on nomodeset ocs_lang=" \ -hda /dev/sdb

注意这里-hda /dev/sdb直接把整个物理 U 盘裸设备给虚拟机,有风险,我建议先把 U 盘做成一个 img,用dd生成镜像再给 qemu,否则虚拟机里的操作可能会写坏 U 盘。验证的目的只是确认引导链完整,所以用只读方式跑一下即可。

3. 用 Clonezilla 做系统备份与还原:命令和参数怎么选

3.1 启动后的界面流程:device-image 还是 device-device

启动后你会进入一个蓝色界面,首先要选语言、键盘布局,然后出现核心选项:

  • device-image:把分区/磁盘备份成镜像文件,存到别的地方(如 U 盘、硬盘、NFS 服务器)。
  • device-device:直接从一个磁盘/分区克隆到另一个磁盘/分区,不生成中间镜像。

我大多数情况用device-image,因为可以留存镜像,用于历史备份、批量部署。device-device适合两块盘在同一台机器上对拷,速度快,不用额外存储。新手默认选device-image就好。

接着会让你选源/目标介质。如果是备份到外部 U 盘,它要求 U 盘格式是 Linux 可读的(ext3/4、XFS、NTFS、FAT32 都行,但注意 FAT32 单文件 4GB 限制,备份大型分区时会自动分卷)。然后选择“Beginner 模式”还是“Expert 模式”。Beginner 隐藏了很多高级参数,对于第一次备份,我建议先 Beginner 跑通,之后再用 Expert 深入。

3.2 备份整个分区:savedisk 与 saveparts 的使用与参数

在菜单里选savedisk是备份整个磁盘(包括分区表、所有分区),选saveparts是只备份指定的单个分区。底层命令类似:

ocs-sr -q2 -c -j2 -z1p -i 2000 -p saveparts sda1 sdb1

这里拆解一下参数:

  • -q2:使用低优先级? 不对,-q是自动清除?我记混了。实际上ocs-sr的常用参数是:
    • -z1p:压缩率。-z0无压缩,-z1压缩快,-z1p即并行压缩,-z2压缩率高但慢,-p表示并行。
    • -c:校验和(checksum),备份后做完整性校验。
    • -j2:同时使用 2 个 CPU 核心做压缩。
    • -i 2000:提醒间隔,每 2000 秒刷新一次。
    • -p savedisk:指定操作。

实际绘图模式下,你不需要手敲这些命令,但我建议知道,因为无人值守时就必须自己写了。在交互菜单里,它会在最后显示一行你要执行的命令,你可以选择“Yes”执行或者“No”去改参数。

3.3 还原分区:restoredisk 与 restoreparts

还原时选restoredisk或restoreparts。例如把镜像恢复到/dev/sda:

ocs-sr -q2 -c -j2 -p restoredisk <镜像名> sda

它会把镜像文件里的整张盘结构写回到目标磁盘。注意:目标磁盘大小不能小于镜像里分区表要求的总大小,否则报错“Target disk is too small”。还原时它会警告目标数据将全部丢失,确认后执行。restoreparts则对应单个分区。

3.4 高级参数:压缩方式、加密、分割、校验

在 Expert 模式下,你可以看到很多选项:

  • 压缩:-z1p快速并行压缩,-z2p高压缩率但慢。如果你不是特别在意存储空间,我推荐-z1p,速度快,镜像体积也只比原始数据小一些。
  • 加密:用-e参数开启 GPG 加密,备份时让你输入密码。注意密码忘了镜像就打不开,我见过不止一次,因此慎用。
  • 分割:-s指定分卷大小,例如-s 4000按 4000MB 分割,兼容 FAT32 限制。
  • 校验:-c做校验和,耗时大约增加 20%,但对于关键数据我认为值得。
  • 忽略损坏扇区:-i指定重试次数,-R可以跳过读错误,继续备份坏道磁盘,适用即将报废的盘。

这些参数单独用没意思,组合起来才有效。例如我要备份一块 1TB 的 Linux 系统盘到 NTFS 移动硬盘:

sudo ocs-sr -z1p -c -j2 -s 4000 -i 0 -p savedisk system_backup sda

这样会生成多个 4000MB 的镜像分卷,移动硬盘上只要空间够就能放下。

4. 批量部署与自动化:用参数跳过交互

4.1 完全无人值守的克隆命令构造

运维同学最烦的就是人工点菜单。Clonezilla 提供了-batch模式和完整的命令行参数,你可以在启动时通过内核参数直接指定操作,实现开机自动备份或还原。

一个典型场景:新到 30 台机器,硬件一样,你想用母盘备份好的镜像给它们全部还原。先在母盘上做一次savedisk,然后把镜像放到 U 盘或服务器上。之后每台待部署机器插上 U 盘,启动,让它自动执行还原。在 Clonezilla Live 启动菜单按 Tab 编辑启动参数,加上:

ocs_prerun="mount /dev/sdb1 /home/partimag" ocs_live_run="ocs-sr -batch -p restoredisk my_image sda"

但直接在 GRUB 菜单里写很乱,我更常用的是借助 Clonezilla 的ocs-iso工具生成自动化 ISO,或者用 PXE 启动。如果你只是临时几台,可以手动启动后选择cmd进入命令行,再输入:

sudo -s mount /dev/sdb1 /home/partimag ocs-sr -batch -p restoredisk my_image sda

-batch参数让它不再询问任何确认,直接干。注意-batch配合-p restoredisk时,目标盘会被直接抹掉,所以必须是确认无误的机器才能这么玩。

4.2 加入自定义脚本实现主机名/网络配置调整

还原之后,每台机器的主机名、IP 相同,这在域环境里会冲突。我一般会在镜像里预先做一个firstboot脚本,放在/usr/local/bin,用 systemd 在第一次启动时跑一次,根据机器序列号或 MAC 地址设置主机名并固定 IP。例如在 Linux 镜像里写一个脚本:

#!/bin/bash # /usr/local/bin/firstboot.sh newhost="pc-$(ip link show eth0 | awk -F ':' '{print $2}' | tr -d ' ' | tail -c 3)" hostnamectl set-hostname "$newhost" systemctl disable firstboot.service

然后在 Clonezilla 的ocs_prerun或ocs_postrun里处理?实际上这个脚本最好在还原后第一次启动时执行,而不是在 Clonezilla 环境里。你可以在镜像中预先设置好服务,这样每次克隆完,新机器首次开机自动改名。这是批量部署里常见做法。

4.3 多播克隆(DRBL)的适用边界

如果几十台机器同时装系统,逐个 U 盘克隆太慢。Clonezilla Server 版支持多播,也就是 DRBL(Diskless Remote Boot in Linux)环境,一块硬盘的内容同时发送到多台机器。这个方案需要搭建一个 DRBL 服务器,配置 TFTP、DHCP、NFS 等,对网络环境要求高,而且主机网卡必须支持 PXE 引导。我经验是:除非你经常批量部署同型号机器,否则不值得搭,虚拟化环境下用模板克隆更省事。物理机批量部署时,我用 USB HUB 同时插 8 个 U 盘,再用ocs-sr并行克隆,效率也够。DRBL 的坑在于交换机需要开启 IGMP Snooping,很多普通交换机默认配置会导致多播失败,排查起来很痛苦。

5. Clonezilla 常见问题与避坑:这些坑我都踩过

5.1 启动 U 盘引导失败:Secure Boot、UEFI 与 Legacy 模式

现象:U 盘插上后开机,直接跳过,没有进入 Clonezilla 引导界面。原因:BIOS/UEFI 启动模式选错,或者 Secure Boot 拦截了未签名内核。解决:进入 BIOS 设置,关闭 Secure Boot,启动模式改为 Legacy(或者 UEFI 兼容模式)。测量模式试一遍。如果是用MakeBootable做的 U 盘,请确保你在 UEFI 机器上选了 UEFI 引导项,在传统 BIOS 机器上选了 USB-HDD。另外有些主板不要选 UEFI: USB 而是选 Legacy: USB。我碰到过某品牌主板必须把 CSM 打开才能引导。

5.2 备份时提示“partition table may have been changed”

现象:执行savedisk时,Clonezilla 报错目标磁盘分区表可能已变化,拒绝继续。原因:源磁盘在被读取时,有程序(如 Windows 快速启动或 Linux 的某守护进程)偷偷写磁盘,导致分区表不一致。解决:Windows 环境下先关闭休眠和快速启动,我在 Windows 中用powercfg -h off关闭休眠;Linux 环境下先卸载相关分区,或以只读方式挂载。Clonezilla 在备份前也会尝试重新读取分区表,若仍报错,选择“reboot”再试。血泪经验:不要开着 VirtualBox 等虚拟化软件备份正在运行的虚拟机磁盘。

5.3 还原后系统无法启动:GRUB 问题与 boot 修复

现象:镜像还原完成,但开机黑屏,或者出现grub rescue>。原因:还原时目标盘的分区表、BCD 或 GRUB 没有正确写入,或者你用了restoreparts只恢复了分区而没有恢复引导扇区。解决:如果整盘备份用restoredisk一般不会出现这问题,因为分区表和引导扇区都在镜像里。如果你是用saveparts单独备份,那就必须手动修复引导:Windows 可以启动 PE 运行bootrec /fixmbr,Linux 可以使用grub-install /dev/sda。我的习惯是:需要还原裸机时,永远用savedisk/restoredisk而不是单分区。

5.4 大硬盘备份后还原到小硬盘失败

现象:镜像是在 500GB 硬盘上做的,还原到 250GB 硬盘,提示目标盘空间不足。原因:分区表里记录了 500GB 磁盘的总容量,即使数据只有 80GB,Clonezilla 默认按原尺寸重建。解决:在 Expert 模式下用-k参数,让恢复的分区按目标盘比例缩放,或者手动编辑分区表。但注意缩放可能影响文件系统引导,最好让目标盘容量不小于源盘,这才是最省心的。另一个办法是先用df -h看实际数据量,重新规划分区大小。

5.5 文件系统检查卡住:强制校验关掉或调整

现象:备份或还原过程中在Checking filesystem阶段长时间卡住。原因:Clonezilla 默认对源/目标文件系统做e2fsck检查,坏道多的盘或者超大分区会非常慢。解决:在 Expert 模式下设置-c参数不同时,把-fsck相关选项设为跳过。比如使用--no-fsck?实际上参数是-k相关?我记不太清,更直接的办法是编辑启动参数,加入ocs_fsck="no"。我一般对数据盘做完整备份时保留检查,对确认健康的系统盘则跳过,效率提升一半以上。注意如果文件系统本身有损坏,跳过检查后还原的系统可能存在隐患,所以仅限你确认源盘无问题的情况。

6. 进阶:把 Clonezilla 接到自己的备份体系里

6.1 本地备份到远程服务器:NFS/SFTP 挂载

交互界面里,备份介质除了本机磁盘,还可以选 remote server(NFS、SAMBA、SSH 等)。以 SSH 为例,只要远程开启了sshd,Clonezilla 会自动挂载远程目录到本地/home/partimag。如果你想手动操作,可以先进入命令行:

mount -t nfs 192.168.1.10:/backup /home/partimag ocs-sr -z1p -c -p savedisk win10backup sda

这样备份文件直接落在服务器上,不怕本地 U 盘丢。注意 SSH 方式需要 You 输入远程密码,自动化时需要配置 SSH 公钥。

6.2 用 cron + Clonezilla 定期备份(非 Live 环境)

很多人不知道,Clonezilla 的底层工具ocs-sr可以安装在正常的 Linux 系统上,不必每次都启动 Live 环境。在 Debian/Ubuntu 上安装并不复杂,但注意要安装支持你发行版的 clonezilla 包,然后你可以写一个脚本:

#!/bin/bash # 每周日凌晨 2 点备份 /dev/sda 到 NFS mount 192.168.1.10:/backup /mnt/backup ocs-sr -q2 -c -j2 -z1p -p savedisk "weekly_$(date +%F)" sda umount /mnt/backup

配合 crontab:

0 2 * * 0 /usr/local/bin/clonezilla_backup.sh > /var/log/clonezilla_backup.log 2>&1

需要注意,实时备份系统盘时,文件系统处于活跃状态,备份出来的镜像可能不一致。所以这个方案适合备份分区挂载但数据变化不频繁的场景,或者你在备份前先sync并暂停数据库服务。我一般更推荐用tar做文件级备份,而clonezilla做灾难恢复的离线条带。

6.3 结合 PXE 实现批量无人值守恢复

对于机房维护,最理想的是:裸机开机,网卡引导,自动连接部署服务器,完成系统还原。Clonezilla Live 支持通过 PXE 引导,你只需要一台提供 TFTP 和 DHCP 的服务器,把 Live 内核和 initrd 放上去,再配置 pxelinux.cfg。一个简单的菜单项:

LABEL clonezilla MENU LABEL Clonezilla Restore KERNEL live/vmlinuz INITRD live/initrd.img APPEND root=/dev/ram0 boot=live union=overlay username=user hostname=clonezilla ocs_lang="en_US.UTF-8" ocs_live_run="ocs-sr -batch -p restoredisk auto_image sda" ocs_prerun="mount /dev/sdb1 /home/partimag"

这种方式把交互完全省掉,硬件维护人员只需要记住网卡启动按键。但 PXE 的部署门槛在于 DHCP 和 TFTP 配置冲突,我建议先在 VM 里用 dnsmasq 模拟整个流程,跑通再上真机。

说到底,Clonezilla 这个工具的价值在于:它把一个看起来很玄的系统备份过程,变成了一套可重复、可脚本化的命令。我从最早用 Ghost 做封装镜像,到后来用 Clonezilla 做分区级备份,最大的体会是——越是不想踩坑,越要在动手前把目标盘、介质、引导方式这三个点确认清楚。备份是后悔药,但药方得提前写好。希望今天这篇能帮到正在对着这个 zip 发愁的你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询