Zhenyuan Yang Operating Systems & ML Systems

Ubuntu 22.04 系统备份与还原

一、备份系统文件

  • /proc,是内存文件,个头太大,不需要备份
  • /sys,无法备份,总报错,事实上不用备份
  • /lost+found,不用备份,可以直接删除
  • /mnt/media,如果里面挂载了硬盘,别备份,个头太大了,无法备份

二、压缩系统文件

tar cvpzf /tmp/system.img --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/media --exclude=/sys --exclude=/tmp /

注意:将备份文件system.img拷贝至其他电脑或U盘存储

2.1 tar命令参数:

  • -c:新建一个备份文档
  • -v:显示详细信息
  • -p:保存权限,并应用到所有文件
  • -z:用gzip压缩备份文档,减小空间
  • -f:指定压缩包名称(带路径),只能做最后一个参数
  • –exclude:排除指定目录,不进行备份

2.2 文件目录介绍:

  • /proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份的必要了。
  • /lost+found:系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
  • /media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
  • /mnt:临时挂载点,你可以自己挂载一些文件系统到这里。

三、还原系统文件

3.1 使用root账号执行命令

su

3.2 解压备份文件

  • 将备份文件system.img,拷贝至/tmp目录
      scp system.img /tmp/
    
  • 解压system.img文件至/tmp/backup目录
      tar xvpfz /tmp/system.img -C /tmp/backup
    
  • 删除原有文件
      rm -rf /usr /var /opt /media /home /etc /srv /sbin /root /boot /lost+found
    
  • 删除文件后可以查看系统占用空间变小
      df -lh
    

    四、同步还原特殊目录

    针对无法直接删除的目录,采用同步还原(去掉新增的内容,保留文件的属主,属组,权限等)

    rsync -avz --delete /tmp/backup/run/ /run/
    rsync -avz --delete /tmp/backup/dev/ /dev/
    rsync -avz --delete /tmp/backup/bin/ /bin/
    rsync -avz --delete /tmp/backup/lib/ /lib/
    

    五、解压备份还原

    将备份文件解压到根目录,还原系统文件:

    tar xvpfz /tmp/system.img -C /
    

强制重启:

reboot -f

把之前没有备份的目录手动创建:

mkdir proc lost+found media mnt sys