使用 tar 备份整个 Linux 系统
基本用法:
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
选项解释:
c 创建归档 v 啰嗦模式,打印详细的压缩过程 p 保持文件的权限,以便将来恢复 z 指定用 gzip 压缩 f <filename> 指定备份文件名 --exclude= 指定要排除的文件或目录,至少要排除掉备份文件本身 --one-file-system 只备份根目录,排除掉所有别的文件系统,包括挂载的其它分区。 例如:/home /sys /proc /run /dev /media / 指定备份的目标,这里就是根目录
tar 的选项可以以短横开头,也可以省略短横。如果使用了短横的话,f
选项必需位于最后,后面跟着压缩文件名。它实际上是参数,而不是选项。
变形, 使用 xz 或 bzip2 压缩:
tar -cvpjf backup.tar.xz --exclude=/backup.tar.xz --one-file-system /
如果 /home, /boot 等目录位于不同的分区,使用 --one-file-system
会将它们排除掉,如果要包含这些目录,只能省略掉 --one-file-system
选项,再用 --exclude
分别指定要排除的目录:
cd / # 这一步很重要,下面的长命令行假定从 / 运行 tar -cvpzf backup.tar.gz \ --exclude=/backup.tar.gz \ --exclude=/proc \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/dev \ --exclude=/sys \ --exclude=/run \ --exclude=/media \ --exclude=/var/log \ --exclude=/var/cache/apt/archives \ --exclude=/usr/src/linux-headers* \ --exclude=/home/*/.gvfs \ --exclude=/home/*/.cache \ --exclude=/home/*/.local/share/Trash /
恢复:
用 Live CD 或其它方式开机,在文件管理器中点击将要恢复的根分区,通常它会自动挂载在 /media
目录下面。
sudo tar -xvpzf /path/to/backup.tar.gz -C /media/whatever --numeric-owner
--numeric-owner
恢复文件原来的权限
如果创建归档时没有使用--one-file-system
选项,且归档中包含了另外分区中的文件,比如 /boot
/home
,则在恢复前需要先手动创建目录并挂载相应的分区,再进行恢复。
恢复完成后,可能还需要创建归档文件中没有包含的目录
mkdir proc sys mnt media
修复 GRUB
sudo -s for f in dev dev/pts proc ; do mount --bind /$f /media/whatever/$f ; done chroot /media/whatever dpkg-reconfigure grub-pc
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂