Ref: create-backup-image-of-running-ubuntu
Linux中我们有权访问所有系统文件,因此,最简单且直接的备份方法是将整个根目录打包:
sudo su
tar -cpzf /path/to/backup.tar.gz --exclude=/tmp --one-file-system /
其中-cpzf
表示建立压缩归档文件,并保持所有的权限信息。--one-file-system
表示忽略挂载点和非文件路径(如/dev
)。
可借助pigz工具启用多线程压缩,加快执行速度:
tar -cpf - --exclude=/tmp --one-file-system / | pigz > /path/to/backup.tar.gz
要从backup.tar.gz
文件恢复,只需将其解压到根目录即可。
sudo su
cd /
tar -xpzf /path/to/backup.tar.gz
如果系统boot已经损坏,无法正常启动,可借助live cd来修复。
首先制作一个ubuntu镜像启动盘(推荐使用rufus工具)。插入启动盘,BIOS选择从U盘启动,点击Try Ubuntu进入一个临时系统。
在这个临时系统中我们可以访问到原系统盘(应该会挂载到/media),进入原系统的根目录,将备份文件解压到跟路径:
tar -xpzf /path/to/backup.tar.gz --numeric-owner
注意:由于我们现在是在live cd系统中,故必须加上--numeric-owner
参数,表示在不转换用户id的情况下恢复文件所有权。
结束后,关机,拔掉启动盘,重新启动,就可以正常进入原ubuntu系统了。