用 tar 备份 linux

像我这种把 debian 当做 arch 来用的人,把系统搞挂是常有的事,虽然备份和恢复的步骤不复杂,还是想记录一下。

name=`date +%Y%m%d`
tar -zcpf $name.tar.gz --exclude=/proc/* --exclude=/dev/* --exclude=/sys/* --exclude=/run/* --exclude=/tmp/* --exclude=/mnt/* --exclude=/media/* --exclude=/home/* -P /

这里的一连串 --exclude 就是不需要备份的目录。和以前不同,以前只要系统不启动,这些目录大都是空的,直接 tar 根目录就行,备份正在运行的系统的话就要排除这些目录了。

恢复的步骤是先用 livecd 挂载根目录(以 sda1 为例):

mount /dev/sda1 sda1

然后解压备份的内容:

cd sda1
tar -xf 20240206.tar.gz

然后挂载一下运行时的目录:

mount --bind /proc proc
mount --bind /dev dev
mount --bind /sys sys

然后切换到解压后的环境,更新 grub:

chroot . /bin/bash
grub-install /dev/sda # 如果恢复到新硬盘需要重新安装 grub,否则这一步不需要
update-grub

重启即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注