大家好,今天给大家介绍Linux备份软件Clonezilla及TimeShift。对于经常折腾系统的人,或计划升级系统又担心升级失败无法启动系统的人来说,备份软件可是“居家必备”工具。
Clonezilla的官方网站:https://clonezilla.org/
准备工作
选择CPU类型,默认amd64,即64位版本;文件类型,默认zip;软件源,保持默认即可。 下载后,你应该能得到文件clonezilla-live-2.5.6-22-amd64.zip,文件大小约230MB。
sudo fdisk -l #查看磁盘情况
如下图,笔者的U盘已经识别为sdc,一个FAT分区sdc1
df -h #查看U盘分区是否已经自动挂载
有些Linux系统会自动挂载到目录/media/usb,如果没有自动挂载到/media/usb,或者挂载 到了其他目录,为了演示方便,建议挂载到/media/usb
sudo mkdir -p /media/usb
sudo mount /dev/sdc1 /media/usb
4. 将前面下载的clonezilla-live-2.5.6-22-amd64.zip文件解压到目录/media/usb
sudo unzip clonezilla-live-2.5.6-22-amd64.zip -d /media/usb
解压后,你看到的目录内容应该如下(如/media/usb/GPL):
5. 设置U盘可启动
说明:makeboot.sh用于MBR分区表,如果你的U盘是GPT或loop分区表,则无需执行下面的命令,只要完成第4步就可以了。
cd /media/usb/utils/linux
sudo apt install parted
sudo apt install libc6-i386
如果已经安装上面两个包,可以跳过apt命令。
sudo bash makeboot.sh /dev/sdc1 #这里sdc1要改为您对应的U盘分区
笔者的输出(由于笔者U盘是loop分区表,因此有如下提示,但我可以从U盘启动Clonezilla live):
下面在某Debian虚拟机中演示制作Clonezilla启动盘
执行makeboot.sh
提示是否要继续、以及是否要制作启动盘,我们输入y回车继续
询问是否安装MBR到磁盘/dev/sda上,我们输入y回车继续
询问是否安装extlinux启动文件到/dev/sda1分区,输入y回车继续
提示执行成功!
尝试启动,成功,如下图是启动界面(根据屏幕分辨率大小,菜单会有变化,图中分辨率仅支持800x600):
使用Clonezilla live USB启动成功后,使用方向键根据分辨率选择适合的Clonezilla live,回车开始引导,如下图,方向键选择显示语言,支持简体中文,回车确认:
键盘设定,保持默认,回车确认:
接下来,可以进入命令行工具,也可以直接开始使用字符界面,如下图:
进入备份界面后,选择备份/恢复的模式,我们主要使用的两种模式是(如下图):
device-image :硬盘/分区备份到镜像文件,或者从镜像文件恢复
device-device :硬盘/分区备份到硬盘/分区,或者从硬盘/分区恢复
我们选择备份到镜像文件后,回车确认,接下来让你选择备份或恢复文件存储的位置,支持:
本地硬盘/ssh服务器/samba服务器等(如下图)。常用本机硬盘,选择后回车确认。
屏幕出现提示,如果要用U盘等,可以现在插入U盘,不用则回车继续(如下图)。
现在可以使用移动存储设备,不用则按ctrl+c继续(如下图)
按ctrl+c后,系统开始检测本机磁盘分区,最后让你选择某个磁盘分区作为备份目录(如下图),选择好磁盘分区后,回车(注意:被选择的分区不能是要备份的分区,比如你想备份根分区,但是这里你选择根分区作为镜像文件保存位置,那么最后你是无法选择根分区作为备份目标的;另外,尽量选择空间大的磁盘分区)
选择分区下面的某个目录作为备份目录,选择好目录后要回车进入目录,再按Tab键选到Done,回车才算设置好目录(如下图)。如果不想选子目录,在这个界面直接Tab到Done回车即可。
屏幕提示,意思是系统使用/home/partimag作为挂载点挂载你选择的分区,回车继续
接下来是参数设置,两种模式:初学模式和专家模式(如下图),我们选择专家模式,看看有那些参数可以自行设定
先让你选择是整个硬盘备份,还是按分区备份,我们演示按分区备份
系统会先短暂检测分区情况,然后让你输入镜像文件的名称,可以按照如下方式命名,以便分辨。下面分别表示Debian9系统的根分区、boot分区、home分区,当然根据你自己系统分区而定。输入名称后回车
YYYY-mm-dd-hh-img-root-Debian9
YYYY-mm-dd-hh-img-boot-Debian9
YYYY-mm-dd-hh-img-home-Debian9
选择要备份的分区,这里要注意,前面已经提到,已经挂载的分区你是无法选择的。选中要备份的分区后,按空格键会在前面显示“*”,表示已经选中。回车确认
选择复制程序,保持默认-q2(专家模式可选)
选择高级参数(专家模式可选)
选择压缩模式(专家模式可选)
镜像文件分卷大小设置(专家模式),默认4GB
是否检查来源文件系统,默认跳过
备份完成后,是否检查镜像文件,默认:是
询问是否加密,默认不加密
选择备份完成后的操作,默认:让用户选择
最后屏幕提示(如下图),意思是生成了本次备份的命令,下次可在命令行执行,回车继续
屏幕继续提示,确认是否继续执行,输入y回车继续
接下来,Clonezilla开始备份分区(如下图)
备份完成后,让你选择下一步操作,如果还要备份其他分区,则选择rerun2 重来一次,并保持镜像仓库。
Clonezilla的恢复和备份的操作均可按照上述字符界面的提示一步一步进行,需要注意的是,恢复的目标分区或磁盘的大小至少要等于镜像文件中源分区或磁盘的大小,否则可能导致恢复失败,或者影响你的磁盘分区情况(因为Clonezilla支持按照镜像文件中的分区列表自动分区)。
Timeshift并不是某个Linux发行版的特有工具,不管你的系统是基于Ubuntu、还是基于Debian的发行版,亦或是Arch Linux,都可以安装。
sudo apt install timeshift #使用apt命令安装
sudo pacman -S timeshift #使用pacman安装安装,多用于arch linux
安装完Timeshift,启动后界面如下:
主界面显示了系统中已有的快照备份,如果你是首次使用,会出现配置向导。
2. 弹出设置界面,首先会让你选择那种备份类型,支持RSYNC和BTRFS,点击Help可以查看详细说明,默认RSYNC。
RSYNC:可以支持多种文件系统;支持备份到其他磁盘;
BTRFS:操作系统必须安装在BTRFS文件系统上,备份文件与源文件在同一磁盘上,不支持跨磁盘备份。
如下图:
3. 设置快照备份的位置(磁盘),如下图。只能选择磁盘上的分区,快照备份文件将创建到你选择的分区的根目录timeshift文件夹下。
4. 设置执行计划,如下图。可以设置备份频率,可选择每月、每周、每天、每小时和启动时备份五中频率。每种频率又可设置快照保留的份数,根据你个人的需求设定。
5. 设置用户文件是否备份,如下图。默认root用户及个人用户的文件是不备份的(Exclude All),可以选择是否备份隐藏文件(Include Hidden)、或者全部个人文件(Include All)。下一步Fileters可以更精确的控制哪些文件备份、或不备份。
6. 设置Filters精确备份,如下图。+号表示备份、-号表示不备份。要添加新的过滤策略,点击下面的Add、或Add Files、Add Folders,意思无外乎是添加自定义过滤规则、添加文件过滤规则、添加目录过滤规则。
7. 设置完毕后,直接关闭界面,timeshift会自动保存你的配置。
点击主界面上的Create按钮,就手动开始创建一份快照备份,下图显示正在创建快照。
选择一份你想要恢复的快照,然后点击上方的Restore按钮,弹出下图界面。默认timeshift已经将挂载点和设备对应起来,如果你已经变更了分区或挂载点,可以手动选择目标目录要恢复到哪个磁盘分区。
点击Bootloader Options(Advanced)可以设置grub安装的磁盘及是否需要重新安装,如下图:
当然上述步骤,只能进行全系统恢复,如果你只想恢复某个分区和文件该怎么办呢?
如果你是使用RSYNC方式备份的,则在备份磁盘的timeshift目录下保存有快照备份文件
进入snapshots目录,可以看到以备份时间为名称的目录,在这些目录下面的localhost目录就是具体的备份文件了:
备份的文件如下图。因此找到你想要的文件,手动cp恢复即可:
Clonezilla
优点:可以备份恢复某个分区,甚至整个磁盘,恢复速度效率较高。能够在系统彻底无法启动时,利用Clonezilla live USB方式恢复系统。
缺点:不能自动进行,备份周期依赖个人的喜好性格,且需要在操作系统停止情况下进行。可能无法恢复某个时间点的文件。
Timeshift
优点:自动备份,周期频率最小可以设定每小时备份,最多丢失1小时的文件;可以恢复任意文件。
缺点:系统无法启动时,无法利用timeshift恢复备份(当然可以用其他方式,如live CD启动系统,然后利用磁盘上的快照文件恢复)。