以下是针对 CentOS 5 系统的备份与恢复详细指南,适配其老旧环境和依赖:
一、备份方法
1. 使用 tar
备份关键目录
适用场景:手动备份系统配置和用户数据,兼容性强。
步骤:
# 切换到根目录
cd /
# 创建压缩备份文件(排除临时文件系统)
sudo tar cvpzf /path/to/backup/centos5-backup-$(date +%Y%m%d).tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev \
--exclude=/tmp --exclude=/media --exclude=/mnt \
--exclude=/lost+found --exclude=/selinux /
说明:
- CentOS 5 默认无
/run
目录(排除/sys
,/dev
等即可)。 --exclude=/selinux
:避免备份 SELinux 上下文问题(如恢复后策略冲突)。
备份软件包列表:
# 导出已安装的 RPM 包列表
rpm -qa > ~/rpm-package-list.txt
2. 使用 rsync
增量备份
适用场景:定期同步数据,支持增量备份。
命令:
# 同步至备份目录(排除动态文件)
sudo rsync -aAXv --delete \
--exclude={"/proc/*","/sys/*","/dev/*","/tmp/*","/lost+found"} \
/ /path/to/backup/
选项说明:
-aAXv
:保留权限、ACL、扩展属性等。--delete
:保持备份与源目录严格一致。
3. 使用 dd
完整磁盘备份
适用场景:克隆磁盘/分区(需大存储空间)。
示例:
# 备份整块磁盘(如 /dev/sda)
sudo dd if=/dev/sda of=/path/to/backup.img bs=4M conv=noerror,sync
# 备份单分区(如 /dev/sda1)
sudo dd if=/dev/sda1 of=/path/to/backup-sda1.img bs=4M
注意事项:
conv=noerror,sync
:忽略磁盘错误并填充对齐块。- 恢复时反向操作:
dd if=backup.img of=/dev/sda
。
二、恢复方法
从 tar
备份恢复
前提:目标硬盘已分区并挂载至 /mnt
(例如使用 Live CD)。
步骤:
-
挂载目标分区并解压备份:
sudo mount /dev/sda1 /mnt # 假设根分区为 /dev/sda1 sudo tar xvpzf /path/to/backup.tar.gz -C /mnt --numeric-owner
-
重建排除的目录:
sudo mkdir /mnt/{proc,sys,dev,tmp}
-
修复引导(Legacy BIOS + GRUB):
- 使用 Live CD 启动后挂载原系统:
sudo chroot /mnt grub # 进入 GRUB 命令行环境 root (hd0,0) # 根据实际分区调整(例如 /dev/sda1 对应 hd0,0) setup (hd0) quit
- 退出并重启:
exit reboot
- 使用 Live CD 启动后挂载原系统:
-
恢复软件包依赖:
# 导入 RPM 列表并批量安装 sudo yum clean all sudo yum install -y $(cat ~/rpm-package-list.txt)
从 dd
镜像恢复
- 写入镜像至磁盘:
sudo dd if=/path/to/backup.img of=/dev/sda bs=4M
- 扩展文件系统(若分区大小变化):
sudo resize2fs /dev/sda1 # 仅限 ext2/3/4 文件系统
三、注意事项
-
老旧系统兼容性:
- CentOS 5 仅支持 Legacy BIOS,若恢复至 UEFI 设备需调整分区类型。
- 内核与驱动:恢复至不同硬件可能导致启动失败(需手动安装驱动或更新内核)。
-
数据一致性:
- 备份前停止 MySQL、PostgreSQL 等服务,避免数据损坏。
- 使用 LVM 快照(如需要):
sudo lvcreate --snapshot -L 1G -n snap_root /dev/VolGroup/lv_root sudo mount /dev/VolGroup/snap_root /mnt/snapshot # 备份 /mnt/snapshot 下的数据后删除快照 sudo lvremove /dev/VolGroup/snap_root
-
备份验证:
- 检查 tar 备份内容:
tar -tzvf backup.tar.gz | less
- 确保
rpm-package-list.txt
完整可用。
- 检查 tar 备份内容:
-
替代工具:
- Clonezilla:适用于全盘克隆(需外置 USB 引导)。
- Amanda:企业级备份工具(需手动配置源)。
四、快速命令总结
# 备份系统关键文件
sudo tar cvpzf centos5-backup.tar.gz --exclude=/proc --exclude=/sys ...
# 恢复时解压
sudo tar xvpzf centos5-backup.tar.gz -C /mnt
# 导出和恢复 RPM 包列表
rpm -qa > rpm-list.txt
sudo yum install -y $(cat rpm-list.txt)
五、故障排查
-
系统无法启动:
- 检查
/boot/grub/grub.conf
是否匹配分区 UUID。 - 使用 Live CD 修复 GRUB:
grub-install --root-directory=/mnt /dev/sda
- 检查
-
软件包依赖冲突:
- 使用
rpm -ivh --replacepkgs
强制覆盖安装。
- 使用
通过以上方法,可在 CentOS 5 系统上实现可靠的备份与恢复。建议优先使用 tar
或 rsync
备份关键数据,结合定期测试确保恢复流程有效。