背景:现在Docker容器化盛行的前提下,对于Linux系统的封装需求已经很少了,但还是存在一些直接将系统封装成ISO镜像文件的需求。
今天跟大家分享下这款神奇的开源免费故障恢复和备份工具 —— Mondo Rescue。
什么是 Mondo Rescue?
Mondo Rescue(简称 Mondo):是一款开源免费的故障恢复和备份工具,可以说是 Linux 操作系统下的 Ghost ,你可以轻松地创建系统(Linux 或 Windows)克隆或备份的 ISO 镜像,可以将这些镜像存放在 CD、DVD、磁带、USB 设备、硬盘和 NFS 上。
万一数据丢失了,你将可以从备份介质还原系统所有数据或根据实际需求还原所有数据。
Mondo Rescue 还可用来快速恢复或者重新部署工作镜像到其他系统中。
Mondo 支持 LVM 1/2、RAID、ext 2/3/4、JFS、XFS、ReiserFS、VFAT 等,并且可以轻松支持其他文件系统,支持软件 RAID 和大多数硬件 RAID 控制器,支持磁盘几何形状的调整,包括从非 RAID 到 RAID 的迁移。支持 BIOS 和 UEFI 引导模式。
Mondo 在所有主要的 Linux 发行版(Fedora、RHEL、OpenSUSE、SLES、Mageia、Debian、Ubuntu、Gentoo)上运行,可使用它来备份非 Linux 分区,例如:NTFS。
安装
下载安装包
你可以根据你的实际系统类型自行去官网下载,由于会有很多依赖关系,也可以通过 yum 的形式安装。
# wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo
进入 /etc/yum.repos.d/ 目录中操作,如在其他目录操作可能会起不到作用。
# yum install -y mondo
yum 安装过程中,可能会出现如下问题。
"warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
解决办法:
# cd /etc/pki/rpm-gpg/
# wget http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
使用 CentOS 时,会出现如下错误:
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID XXXXXX: NOKEY
解决办法:
加上"--nogpgcheck"参数
就是在你要执行的语句后面加上该参数即可;
# yum install -y mondo --nogpgcheck
制作镜像
安装完毕后,以 root 为身份用户,在终端下输入 mondoarchive,即可进入图形操作界面。
# mondoarchive
See /var/log/mondoarchive.log for details of backup run.
Checking sanity of your Linux distribution
.......
备份到什么介质
选择 Hard disk 备份 ISO 镜像到硬盘
备份位置选择
输入备份 ISO 镜像所在目录的完整路径名或默认。
压缩类型选择
建议选择 gzip ,压缩率大。
压缩率选择
压缩选项选择 Maximum(9)
选择每个镜像大小
输入你所想要的每个 ISO 镜像的大小,并以 MB(兆字节)为单位。
该数值应当小于等于 CD-R(W)(700)或 DVD(4480)的容量。
这里默认即可。
制定镜像名称
制定 ISO 镜像文件名,例如默认的 mondorescue,也可自定义或默认。
选择要备份的目录
输入你所要备份的文件目录,默认为根目录要备份全系统(默认即可)。
排除不需要备份的目录
排除不备份的文件系统并以 | 分隔。
一般来说有一些文件是不需要的,是可以排除掉的,而如果想要完整地备份你的操作系统,直接默认回车。
选择临时目录路径
输入临时目录路径,选择默认路径即可。
选择暂存目录路径
输入暂存目录路径,选择默认路径即可。
选择是否备份扩展的属性
选择备份扩展的属性,选择 yes。
备份机器的内核
默认直接选择 OK 回车即可。
验证备份文件
如要验证你的备份文件,在 Mondo 创建备份文件选择 “Yes” 即可。
到这步骤之后软件会自动去备份(创建 “/” 文件系统目录、文件列表划分为集合、调用 MINDI、创建 boot+data 磁盘、备份文件系统、备份大文件、运行 mkisofs、创建 ISO 镜像文件、验证 ISO 镜像的压缩包、验证 ISO 镜像的大文件等)执行过程中无需人工交互操作。
mondo archive 已经结束了它的运行,归档完成,选择 OK 回车键返回到 shell 提示符界面中。
这时我们回到 /var/cache/mondo/ 目录下验证是否有一个 ISO 镜像文件。
# cd /var/cache/mondo/
# ls
difflevel.0 mondorescue-1.iso
到这步后,你就可以将备份镜像刻录到 CD/DVD 中了,便于以后恢复系统使用,可以用 Mondo 生成的 ISO 镜像引导操作系统,在引导提示符界面中选择 “(手动输入)nuke” 类型,恢复文件。
以上为 CentOS 为例,下面简单的以 Ubuntu 操作系统为例,可以使用 remastersys 和 remastersys-gui 工具。
Remastersys 可以将你安装的 Ubuntu、Debian 及其衍生版打包成一个可以用来安装的 Live CD/DVD 的 ISO 镜像文件,可打包一个包含个人数据的 ISO 镜像文件作为操作系统备份,也可以打包一个不包含个人数据的 ISO 镜像文件发布给其他人安装。
Remastersys 包下载
$ mkdir tools
$ cd tools/
$ wget ftp://ftp.gwdg.de/pub/linux/easyvdr/mirror/remastersys/ubuntu/remastersys/remastersys_3.0.4-2_all.deb
$ wget ftp://ftp.gwdg.de/pub/linux/easyvdr/mirror/remastersys/ubuntu/remastersys-gui/remastersys-gui_3.0.4-1_amd64.deb
安装 Remastersys 依赖
$ sudo apt-get install syslinux-utils isolinux squashfs-tools casper libdebian-installer4 ubiquity-frontend-debconf user-setup discover xresprobe systemd
安装 Remastersys-gui 依赖
$ sudo apt-get install libvte-common libvte9 plymouth-x11
开始安装 Remastersys
$ cd tools/
$ sudo dpkg -i remastersys_3.0.4-2_all.deb
$ sudo dpkg -i remastersys-gui_3.0.4-1_amd64.deb
Remastersys 备份操作系统
命令行模式:
$ sudo remastersys backup
图形化模式:
$ sudo remastersys-gui