Centos7 用 tar 备份恢复 (迁移)

Centos7 用 tar 备份恢复 (迁移)

备份

1.tar压缩打包
cd /
#tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/media /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system / 
#这里的boot单独打包。 为了以后方便修复引导。
tar -cvpzf boot.tar.gz /boot

–one-file-system - 不要在不同的文件系统上包含文件。如果您希望其他文件系统(如单独的 / boot分区 单独的 / home分区 须要单独的备份)

2.备份信息
cd /
blkid > uuid.txt
df -h > df.txt
fdisk -l > fdisk.txt
3.挂载磁盘(移动硬盘)保存压缩包
cd /
mount /dev/sdb1 /mnt
cp backup.tar.gz boot.tar.gz uuid.txt df.txt fdisk.txt /mnt

恢复

1.进入修复模式

用光盘镜像引导,选择:

Troubleshooting => 
Rescue a CentOS system => 
1 => //Continue
Please press <return> to get a shell. =>
sh-4.2#
2.挂载磁盘(移动硬盘)导出压缩包
mkdir 4444
mount /dev/sdb1 /4444
3.创建新磁盘分区并挂载
fdisk /dev/sda
#根据之前保存的 df.txt fdisk.txt 创建相同格式分区。大小可不一样。
mkfs.xfs /dev/sda1
mkfs.ext4 /dev/sda2
#格式化新分区
mkdir /0000
mount /dev/sda2 /0000
mkdir /0000/boot
mount /dev/sda1 /0000/boot
#根据df.txt挂载相同目录。0000为模拟根目录。
4.解压tar包 & 创建系统目录
cd /4444
tar -xvpzf backup.tar.gz -C /0000/. --numeric-owner
tar -xvpzf boot.tar.gz -C /0000/. --numeric-owner
cd /0000
mkdir proc sys mnt media

–numeric-owner - 此选项告诉tar恢复归档中文件的数字所有者,而不是匹配要还原的环境中的任何用户名。这是因为您要恢复的系统中的用户ID:s不一定与您用于恢复的系统匹配(例如,Live CD)。

5.修改启动UUID
cd /0000
blkid
vi etc/fstab
#根据blkid数据修改对应分区启动项UUID
# 就是 sda1 和 sda2  UUID

修复grub2引导

#切换根目录
chroot /0000
#重新安装引导
grub2-install /dev/sda
#修复引导
grub2-mkconfig -o /boot/grub2/grub.cfg

单独修复引导

必须重启电脑,重新进入修复模式
#切换根目录
chroot /mnt/sysimage/
#重新安装引导
grub2-install /dev/sda
#修复引导
grub2-mkconfig -o /boot/grub2/grub.cfg
### Docker 容器封装、迁移和部署操作指南 #### 一、环境准备 确保已成功安装并启动Docker服务,在CentOS 7环境下可以通过如下命令完成基本的Docker安装工作[^1]。 ```shell $ yum install -y docker-ce $ systemctl start docker $ systemctl enable docker ``` 验证安装是否成功可以尝试运行官方提供的测试镜像`hello-world`来确认: ```shell $ docker run hello-world ``` 如果一切正常,则说明已经具备了执行后续工作的基础条件。 #### 二、构建自定义镜像 为了创建可移植的应用程序包,需要先编写一个名为`Dockerfile`的文字文件用于描述如何组装目标应用程序所需的全部依赖关系以及配置细节。下面是一个简单的例子展示怎样基于Debian发行版制作包含Emacs编辑器和支持Web服务器Apache2的基础开发环境镜像[^3]。 ```dockerfile FROM debian:buster-slim RUN apt-get update && \ apt-get install -y --no-install-recommends \ emacs \ apache2 \ && rm -rf /var/lib/apt/lists/* CMD ["/bin/bash"] ``` 保存上述内容到当前目录下的`Dockerfile`之后,可以在同一路径下执行以下指令来进行实际编译过程: ```shell $ docker build -t my-custom-image . ``` 这将会读取本地存在的`Dockerfile`按照指示逐步处理直至最终产出一个新的镜像实例供以后调用。 #### 三、导出与导入容器快照 当完成了特定业务逻辑对应的容器化改造后,可能希望将其状态固定下来以便于分发给其他机器使用或是作为备份存档保留。此时就可以利用`docker save`/`load`工具组合达成目的。 要将现有的某个正在运行或停止的服务转换成tarball压缩包形式存储起来,只需指定好待打包的目标名称即可: ```shell # 导出为 tar 文件 $ docker save -o myapp.tar.gz my-app-container-id-or-name ``` 相反地,接收端接收到该档案后可通过加载的方式恢复原始形态: ```shell # 加载 tar 文件 $ docker load -i myapp.tar.gz ``` 值得注意的是,这种方式仅适用于静态数据集场景;对于涉及实时交互性质较强的工作负载而言则需考虑更复杂的方案比如采用卷(volume)机制同步外部持久层资源变化情况。 #### 四、跨平台迁移实践要点 考虑到不同Linux发行版本之间可能存在细微差别影响兼容性表现,建议尽可能选用通用性强的标准格式如OCI(Open Container Initiative),并且提前规划好网络连接策略以适应新环境中可能出现的不同IP地址分配模式等问题。另外,针对某些特殊情况下要求保持原有进程ID空间一致性的场合,还可以探索研究有关CRIU(Checkpoint/Restore In Userspace)[^4]技术的可能性解决方案。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值