侧边栏壁纸
博主头像
小新笔记坊

笔耕学思悟,细绘生活卷。

  • 累计撰写 74 篇文章
  • 累计创建 24 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

CentOS服务器环境备份方案:将已搭建好的系统打包成镜像

小新笔记坊
2025-06-05 / 3 评论 / 0 点赞 / 66 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2025-08-18,若内容或图片失效,请留言反馈。

环境信息

处理器架构:X86

操作系统:CentOS Linux release 7.9.2009 (Core)

操作步骤

1.将系统安全配置SELINUX禁用,否则导出的镜像无法登录。

vim /etc/selinux/config

注:将selinux从enforcing改为disabled。按i进入插入模式进行编辑;按esc+:+wq进行保存。

2.下载打包镜像软件mondo rescue

cd /etc/yum.repos.d
wget ftp://ftp.mondorescue.org/centos/7/x86_64/mondorescue.repo

3.打开文件mondorescue.repo,修改gpgcheck属性为0。

vim mondorescue.repo

4.安装打包镜像软件mondo rescue

#在线安装
yum -y install mondo –enablerepo=mondorescue.repo
#离线安装。官网下载rpm包,上传至服务器解压到文件夹,执行以下指令即可。
rpm -ivh *.rpm --nodeps --force

5.修改mondo配置。

vim /etc/mindi/mindi.conf

注:必须修改,否则导出镜像过程中可能会闪退。如果没有则添加以下内容。

EXTRA_SPACE=1024000

6.查看硬盘挂载信息,将硬盘挂载从 UUID 挂载方式改为盘符挂载的方式。

vim /etc/fstab

7. 查看 UUID 对应盘符。

blkid

8.修改硬盘挂载信息,临时修改为硬盘挂载。

#UUID挂载
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=49a45ce7-3c7a-459e-9af0-872aaaac9ab4 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
#修改为磁盘挂载
/dev/mapper/centos-root /                       xfs     defaults        0 0
/dev/vda1 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

9.进入mondo图形界面。

mondoarchive

10.选择备份位置,即选择Hard disk。手动填写ISO镜像存储路径。

11.压缩类型建议选择gzip,压缩率大。

12.压缩率选择Average(4)

13.选择ISO镜像大小,默认4480MB,修改为更大的值,保证它生成1个镜像文件。

14.输入镜像名称。

15.选择要备份的目录,/表示全系统。

16.输入不需要备份的目录,没有则不填。

17.填写临时目录路径,默认即可。

18.是否备份扩展的属性,默认即可。

19.是否备份机器内核?确认即可。

20.是否验证备份文件?确认即可。

21.是否Proceed开始备份?确认即可。

22.提示OK即备份完成。

23.将磁盘挂载方式还原。

24.将系统安全配置SELINUX重新启用。

vim /etc/selinux/config

注:将selinux从disabled改为enforcing 。按i进入插入模式进行编辑;按esc+:+wq进行保存。

25.将镜像从服务器下载到本地即可在虚拟机或新机器上像安装系统一样正常选择镜像即可。

26.选择镜像启动后,系统会自动提示以下信息。boot后输入nuke即可全自动安装。

Welcome to Mindi,a cousin of MondoRescue
F1-Main:Boot Parameters F2-1/2 | F3-2/2 | F4-PXE
boot:

27.提示以下信息后即为安装完成。sh-4.2#后输入exit重启即可完成恢复。

Type 'exit' to reboot the Machine
sh-4.2#

常见问题

系统盘是LVM如何恢复?

1.如果在执行nuke后提示Mountlist analyzed. Result:"/dev/vda does not exist." Switch to Interactive Mode?。该原因是因为系统盘是LVM卷,导致无法自动化安装。需执行以下步骤进行安装。

2.根据提示进入可视化编辑界面,将该界面截图保存。

CentOS服务器环境备份方案:将已搭建好的系统打包成镜像-1.webp

3.退出可视化编辑界面后,进入bash手动创建LVM卷分区。根据可视化编辑界面的截图内分区要求,需分2个主分区。

注:“/”、“/home”、“/swap”都不是主分区,主分区是“/boot/”、“LVM”。因为主分区的挂载直接执行的硬盘,即“/dev/vda2”与“/dev/vda1”。

/dev/vda1 /boot 1024MB

/dev/vda2 lvm 剩余空间

4.查看当前硬盘所有块设备的命名是否和镜像中的分区命名一致。如不一致,以当前硬盘所有块设备名为准进行创建LVM卷,同时编辑可视化编辑界面内的所有块名。

lsblk
#执行后返回结果
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  150G  0 disk 
├─sda1   8:1    0    1G  0 part 
└─sda2   8:2    0  68.4G  0 part 
sr0     11:0    1  17.4G  0 rom  

5.创建sda1分区以存储引导boot

fdisk /dev/sda
#显示sda分区
p
#删除sda1分区
d
#重新创建分区
n
#输入n后会询问创建主分区还是扩展分区,创建为主分区
p
#输入分区编号为1
1
#起始扇区,用默认2048或系统推荐
回车
#再次输入设置空间为2g
+2G
#设置为boot分区
t
1
83
#标记为可引导分区
a
1
#写入刚刚创建的分区表
w

6.重新分区,让sda2拥有扣除sda1后的全部空间。

fdisk /dev/sda
#显示sda分区
p
#删除sda2分区
d
#重新创建分区
n
#输入n后会询问创建主分区还是扩展分区,创建为主分区
p
#输入分区编号为2
2
回车接受默认的第一个扇区
回车接受该分区以使用剩余全部空间
#写入刚刚创建的分区表
w

7.执行lvm命令创建LVM卷

lvm vgchange -an
lvm pvcreate -ff /dev/sda2
#创建/dev/centos卷组
lvm vgcreate centos /dev/sda2
lvm vgchange -a y centos
#/root目录即根目录使用50G空间就行,数据基本都放在/home空间
lvm lvcreate -L 50G -n root centos
lvm lvcreate -L 10G -n swap centos
#/home目录使用剩余空间
lvm lvcreate -l 100%FREE -n home centos
#激活lvm
vgchange -ay

8.对创建好的LVM分区进行格式化。

#分区
mkfs.ext4 /dev/sda1
mkfs.xfs /dev/centos/root
mkswap /dev/centos/swap
mkfs.xfs /dev/centos/home
#创建挂载点,以备/home挂载
mkdir /home
#临时启用swap分区
swapon /dev/mapper/centos-swap 

9.重新进入可视化编辑界面。

mondorestore

10.手动挂载

#选择以下
Interactively
#选择ISO镜像的存储介质
#编辑挂载列表,将vda改为你的硬盘所有块设备命名,这里是sda.将分区类型和空间对照上面fdisk分区的类型和空间填写.

11.保存挂载列表后会询问是否执行分区动作,选择否。是否格式化硬盘,选择否。

12.提示是否初始化引导,选择是。提示是否重新生成initredinitramfs文件,选择是。

13.提示mkinitrd命令重新生成当前服务器适配的initrdinitramfs文件,选择OK进入bash命令。

14.由于系统卷是LVMmondo rescure默认不会打包lvm相关的驱动和命令,需修改/etc/dracut.conf文件来完成安装。

vim /etc/dracut.conf

15.dracut.conf 文件中找到以下内容,并修改如下。

# dracut modules to add to the default
add_dracutmodules+="lvm"
#additional kernel modules to the default
#add_drivers+=""
#list of kernel filesystem modules to be included in the generic initramfs
#filesystems+="”

#build initrd only to boot current hardware 
#hostonly="yes
#

#install local /etc/mdadm.conf 
mdadmconf="yes"

#install local /etc/lvm/lvm.conf 
lvmconf="yes"

16.重新生成initrdinitramfs文件。

dracut -f
cd /boot
#下面的$(uame -r)也可以修改为具体的Linux内核版本号,这里通过$(uame -r)动态获取了当前系统内核版本号
mkinitrd -f -v initramfs-$(uname -r).img $(uname -r)

17.执行完成后按Shift+PgUp向上翻页可以看到initrd已经成功打包了了Lvm

CentOS服务器环境备份方案:将已搭建好的系统打包成镜像-2.webp

18.输入exit退出,提示是否更改了挂载列表或克隆了系统,选择是。

19.提示请输入启动设备。将/dev/vda改为/dev/sda。因为新服务器上的硬盘设备名是sda

20.提示挂载已更改,需要编辑fstab, mtab, device.map,menu.lst/grub.cfg以修复GRUB,选择OK,进入编辑模式。

注:/dev/mapper/卷组名-逻辑卷名,是LVM核心层直接暴露的实际设备节点,/dev/卷组名/逻辑卷名,是系统自动创建的符号链接。故挂载用/dev/mapper/卷组名-逻辑卷名。

#编辑fstab.即/etc/fstab.修改为新服务器格式化的分区信息
/dev/sda1        /mnt/boot                      ext4     defaults        0 0
/dev/mapper/centos-root /mnt                    xfs     defaults        0 0
/dev/mapper/centos-home /mnt/home               xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
#编辑mtab文件,即/etc/mtab.参照fstab一样修改为新服务器格式化的分区信息
1.保存会提示由于文件只读导致无法保存.
2.先:q退出该文件,该文件文件主要用于记录当前系统中已挂载的文件系统信息,不用管它
#编辑grub.cfg文件,即/etc/grub.d或/etc/default/grub.参照fstab一样修改为新服务器格式化的分区信息
#编辑device.map文件,即/boot/grub2/device.map.参照fstab一样修改为新服务器格式化的分区信息

22.后面的一直下一步即可,出现/ext2/ext3/ext4后直接选择OK后进入终端。

23.输入指令进入系统真实环境,手动挂载分区并生成系统引导。

#激活lvm
vgchange -ay
#设置挂载
mount /dev/sda1 /mnt/boot  
mount /dev/mapper/centos-root /mnt  
mkdir /mnt/home
mount /dev/mapper/centos-home /mnt/home  
swapon /dev/mapper/centos-swap  
#绑定设备文件
mount --bind /dev /mnt/dev
#编辑/etc/fstab文件,设置开机自启动挂载
/dev/sda1        /mnt/boot                      ext4     defaults        0 0
/dev/mapper/centos-root /mnt                    xfs     defaults        0 0
/dev/mapper/centos-home /mnt/home               xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
#切换至真实系统环境检查
chroot /mnt
#挂载proc文件系统
mount -t proc proc /proc  
#挂载sysfs文件系统
mount -t sysfs sysfs /sys  
#挂载引导
mount /dev/sda1 /boot  
#绑定设备节点
mount -o bind /dev /dev    
#编辑真实系统内的/etc/fstab文件,设置开机自启动挂载.如果存在/mnt/boot等挂载,则删除
/dev/sda1        /boot                      ext4     defaults        0 0
/dev/mapper/centos-root /                   xfs     defaults        0 0
/dev/mapper/centos-home /home               xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
#查看/boot目录下是否为空,如为空未生成则生成引导
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
#卸载绑定的文件系统
umount /mnt/proc /mnt/sys /mnt/dev
exit

24.如果第23步操作后依然无法进入系统,则重新进入备份的镜像,选择进入专家模式通过终端修复引导或者插入系统镜像进入救援模式通过终端修复引导,执行以下步骤。

#激活lvm
vgchange -ay
#设置挂载
mount /dev/sda1 /mnt/boot  
mount /dev/mapper/centos-root /mnt  
mkdir /mnt/home
mount /dev/mapper/centos-home /mnt/home  
swapon /dev/mapper/centos-swap  
#绑定设备文件
mount --bind /dev /mnt/dev
#切换至真实系统环境检查
chroot /mnt
#挂载proc文件系统
mount -t proc proc /proc  
#挂载sysfs文件系统
mount -t sysfs sysfs /sys  
#挂载引导
mount /dev/sda1 /boot  
#绑定设备节点
mount -o bind /dev /dev    
#修复引导
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
#卸载绑定的文件系统
umount /mnt/proc /mnt/sys /mnt/dev
exit

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  • 3
    1. 支付宝打赏

      qrcode alipay
    2. 微信打赏

      qrcode weixin

评论区