Mondo镜像工具

简介

Mondo Rescue是一个开源免费的故障恢复和备份工具,用户可以轻松地创建系统(Linux或Windows)克隆或备份的ISO镜像,可以将这些镜像存放在CD、DVD、磁带、USB设备、硬盘和NFS上。Mondo Rescue还可以用来快速恢复或者重新部署工作镜像到其他系统中,万一碰到数据丢失,你还可以从备份介质恢复尽可能完整的系统数据。

Mondo Rescue(以下简称Mondo)可以说是Linux 下的Ghost,它可以将你的系统照相一样备份至磁带,CD-R,CD-RW,NFS或硬盘分区。Mondo广泛支持LVM、RAID、ext2、ext3、JFS、XFS、ReiserFS、VFAT等。这个软件可以让大家一步一步地将Linux系统备份出来,一旦今后出了问题,只要用创建好的MondoCD将系统还原至上次备份时的状态即可。架构:Mondo Rescue由Mondo和Mindi两个包组成。Mondo是主程序用来备份和还原。Mindi则类似一个迷你的Linux,它包括核心,模块,函数库及一些做系统维护的重要工具。目前,Mondo已经支持Asianux 2/3系统平台。

注意事项

  1. 镜像机要能上网,因为需要从网上装所需的包,没有网络的话,需要的软件包也早下载好了,可以离线安装,离线安装比较费事,尽量有网比较好

  2. 镜像机磁盘不要用lvm的,使用linux的标准分区,文件系统ext3、ext4、xfs都可以

  3. 镜像机在装系统的时候,建立俩个分区就可以,一个/boot 分区,给200m,一个/ 分区,/ 分区看着给,不要给太大,够装应用就可以,做好的镜像在还原到别的机器上的时候,会自动帮你扩展,给的太大,会出问题。千万不要创建swap分区,会出问题,swap分区系统装好了也可以创建的,不用担心

  4. 分区挂载格式要用盘符去挂载不要用UUID挂载,不然做好镜像去还原的时候会识别不了 分区挂载文件:/etc/fstab 如下图

调整后,如下

[root@localhost ~]# blkid 
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Jan 12 02:42:08 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
/dev/sda2 /boot                   xfs     defaults        0 0
/dev/sda1          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos-data /data                   xfs     defaults        0 0

在线安装

[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum install epel-release
[root@localhost ~]# cat /etc/yum.repos.d/mondorescue.repo
[mondorescue]
name=centos 7 x86_64 - mondorescue Vanilla Packages
baseurl=ftp://ftp.mondorescue.org//centos/7/x86_64
enabled=1
gpgcheck=0
gpgkey=ftp://ftp.mondorescue.org//centos/7/x86_64/mondorescue.pubkey ftp://ftp.mondorescue.org//centos/7/x86_64/mondorescue-0x141B9FF237DB9883.pubkey
[root@localhost ~]# yum install mindi mindi-busybox mondo
# 优化配置
[root@localhost ~]# cat /etc/mindi/mindi.conf
EXTRA_SPACE=300000

制作镜像

本次将系统镜像到/data/rescue目录下,并排除/data/rescue目录

[root@localhost ~]# mondoarchive

备份到磁盘 1739253420868.jpg 选择存储的目录 image.png 选择压缩格式 image.png 选择压缩效率 image.png 自定义iso文件大小 image.png 存储iso文件名称 image.png 备份分区或目录 image.png 排除分区或目录,例如这里排除“/data/rescue”目录 image.png 临时目录 image.png 草稿目录 image.png 是否要备份扩展属性 image.png 确认内核名称 image.png 开始创建 image.png image.png

image.png

备份完成 image.png

恢复镜像

通过镜像后的ISO文件进行恢复,开机通过ISO文件进行引导进入恢复模式,当出现下面提示 image.png

# 手动引导
boot: vmlinuz initrd=initrd.img linux dd quiet

选择“Automatically”自动进行 image.png 恢复过程中,遇到Errors错误信息暂时不用理会 image.png 警告信息不用理会 image.png 输入exit退出继续执行 image.png 此时重启,出现下图所示,需要挂载CentOS7的原始镜像,进入修复模式修复 image.png 选择Troubleshooting,进入恢复模式 image.png 选择Rescue a CentOS system 恢复模式 image.png 选择“1 Continue” image.png 执行“chroot /mnt/sysimage” image.png

# 修复grub2引导失败过程
# error: can't find command 'linuxefi'
# error: can't find command 'initrdefi'
bash-4.2# grub2-install /dev/sda
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /booot/initramfs-3.10.0-1160.e17.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-357d1f70ed594e7b86c35025f5582d12
Found initrd image: /boot/initramfs-0-rescue-357d1f70ed594e7b86c35025f5582d12.img
done

#重启并验证
bash-4.2# exit && exit

启动验证

修改grub2后,重启后,可用镜像的用户名和密码登录,如下图所示 image.png