使用 tar 命令备份与还原 Linux 系统 |
您所在的位置:网站首页 › linux备份压缩命令tar › 使用 tar 命令备份与还原 Linux 系统 |
下边的教程以 Ubuntu 为例,使用的是 Ubuntu20.04 LiveCD(Desktop or Server版的安装镜像都可以) 准备工作这里假设可以正常进入要备份的系统,如果无法正常进入,可以通过LiveCD的方式启动系统 假设要备份当前整个系统,备份到我的移动硬盘 下面开始分区挂载,挂载移动硬盘中的某个分区 首先使用命令:lsblk 可以查看当前系统中存在的块设备(SATA硬盘,NVMe固态硬盘,U盘等) 然后需要确认,那个设备是你的硬盘,如果不确定那个设备是移动硬盘 可以在插入硬盘前后分别使用 lsblk,这样通过对比 应该就可以确定 插入之前: –one-file-system 选项的含义: 复制文件或目录存放的文件系统必须和tar命令当前执行的文件系统相同,否则不执行; 也就是讲,不处理其他分区的文件。(可忽略mount挂载分区的问题) 备份完成的部分结果,如下所示: 下边是不用 --one-file-system 的备份方式,这样可以手动排除不需要备份的目录 su - cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM / tar -cvpzf /media/vzuer/LDP/backup-`date +%Y-%m-%d`.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/mnt --exclude=/media --exclude=/tmp --exclude=/lost+found --exclude=/var/log --exclude=/var/cache/apt/archives --exclude=/usr/src/linux-headers* --exclude=/home/*/.gvfs --exclude=/home/*/.cache --exclude=/home/*/.local/share/Trash / # time 13:31-13:49 18minshttps://help.ubuntu.com/community/BackupYourSystem/TAR 系统还原这里假设要将系统迁移到,一块全新的硬盘,从零开始恢复: 恢复时,最好选择同一硬件平台,要不然由于显卡驱动之类的问题, 会导致无法通过图形界面进入系统,只能通过 tty 的方式进入 分区、格式化、挂载的操作步骤如下: # 分区前先查看并确定目标磁盘分区的设备名 类似于 /dev/sda 或者 /dev/nvme0n1之类的 fdisk -l lsblk # 以上两个命令都可以 # 选定要分区的块设备 fdisk /dev/sda # 输入 m 可以查看分区工具 fdisk 的使用帮助 : m # help # 新建磁盘分区表 # 我选择的是 GPT + UEFI 因此上边只需要输入 g # 如果是 MBR + Legacy BIOS 的启动方式则只需要键入 o : g # new GPT partition table : o # new MBR/DOS partition table # 建立新分区 : n # new partition # n 之后的分区号和起始扇区号都可以默认,直接回车即可 # 在终止扇区号那里,输入分区大小,如下 : +512M # for ESP partition # 然后,再次输入 n 重复上边的操作,根据需要,新建其他分区 # 最后输入 w 保存操作 : w # save, from RAM write to disk # 格式化 # ESP 分区 需要格式化为 FAT 格式 mkfs.fat -F32 /dev/sda1 # 一般 Linux 系统分区为 ext4 格式 mkfs.ext4 /dev/sda2 # 挂载 mount /dev/sda2 /mnt # /mnt 相当于新系统的根目录 / # 挂载点不存在时,需先创建目录 # mkdir -p /mnt/boot/efi # -p 选项,可以递归地创建层级目录 mount /dev/sda1 /mnt/boot/efi解压镜像 # 挂载移动硬盘 mkdir -p /media/vzuer/LDP mount /dev/sdb4 /media/vzuer/LDP # 解压镜像 cd /mnt tar -xvzpf /media/vzuer/LDP/backup.tar.gz -C /mnt --numeric-owner–numeric-owner 的含义: 以UID和GID代替用户名和组名,这样可以避免 tar 命令去匹配 LiveCD 中的用户和组 LiveCD 中实际上也没有备份文件所属的用户和组 重建引导 # 写入新硬盘的 UUID 以实现开机自动挂载此硬盘 # 如果是 Arch 的 LiveCD 可以使用下面的命令 genfstab -U /mnt >> /mnt/etc/fstab # 不是的话比如 Ubuntu 则需要先查看新硬盘的 UUID sudo blkid # 然后 再通过 nano vim gedit 等编辑器 # 手动写入到 /etc/fstab # 查看是否写入成功 cat /mnt/etc/fstab # 新建 目录 比如 dev proc sys 等备份时排除的目录 cd /mnt mkdir dev proc sys run tmp lost+found mnt media # 将Live CD中的 dev proc sys 绑定到新系统 mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys # 切换到新系统 chroot /mnt # 切换为 root # su - sudo -s # 安装grub 重建引导 # MBR Legacy grub-install --target=i386-pc /dev/sdX # GPT UEFI grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck # 更新配置文件 grub.cfg # update-grub grub-mkconfig -o /boot/grub/grub.cfg # 退出新系统 exit # 重启系统 reboothttps://blog.csdn.net/weixin_26913055/article/details/116703291 https://blog.csdn.net/weixin_28909289/article/details/116577564 https://help.ubuntu.com/community/Fstab 最后是我当时在操作过程中遇到的一些问题: 问题 1: EFI variables are not supported on this system 这个问题发生在给新系统安装 grub时,当时我用的是 ArchLinux LiveCD 推测是 Arch LiveCD 的原因 改用 Ubuntu LiveCD 后问题解决 问题 2: /dev/sda2: clean, 876670 files, 13769241/39193339 blocks Finished Terminate Plymouth Boot Screen Finished Set console scheme主要是因为驱动的问题,因为我将实体机上的系统迁移到了虚拟机上, 而实体机上当时装的是 Nvidia 的图形驱动,如果迁移的硬件平台一致的话,就不会有这个问题 虽然卡在这个界面不动,但是按 Ctrl+Alt+F2,通过没有图形界面的 tty2 就可以登录 登录后,安装 VM ware 虚拟机的显卡驱动 可以直接, 自动检测安装:sudo ubuntu-drivers autoinstall 也可以先查看,再手动安装:sudo ubuntu-drivers devices vzuer@hp-288-pro ~> sudo ubuntu-drivers devices (base) == /sys/devices/pci0000:00/0000:00:0f.0 == modalias : pci:v000015ADd00000405sv000015ADsd00000405bc03sc00i00 vendor : VMware model : SVGA II Adapter driver : open-vm-tools-desktop - distro free安装 VM ware 虚拟机的显卡驱动 sudo apt install open-vm-tools-desktop 也可以安装vm-tools:sudo apt install open-vm-tools 下面是当时参考的链接: https://blog.csdn.net/weixin_38665509/article/details/106919923https://www.cnblogs.com/a208606/p/11062074.htmlhttps://www.vpsdp.net/dev-sda1-clean-files-blocks/问题 3: 在 ubuntu 的 tty 模式下 不能正常显示中文 需要修改语言环境 使用 vim编辑器,将所有的 zh_CN替换为 en_US即可 先打开此文件:sudo vim /etc/default/locale 在命令模式下,查找替换::%s/zh_CN/en_US/g 最后,保存退出::wq |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |