这可能更像是一个学术问题,但我还是想问一下。几年后我重新使用 Linux,在一台小型 PC 上安装了 Ubuntu 15.04 Desktop。
环顾文件系统,我看到了“真实文件”,例如 中的程序/bin
,/usr/bin
但我还记得 Linux 通过文件系统处理设备 IO。所以有一个/dev
目录,里面有明显的文件。我在 中看到了“文件” /proc
。
如果我想保留我的文件系统(例如,在磁盘死亡后 Linux 复活的情况下),我可以轻松地保存和目录tar
的内容并恢复这些类型的文件。/bin
/usr/bin
计算机启动时会写入哪些文件?作为备份的一部分可以安全地忽略这些文件吗?另外,特殊权限或硬链接等怎么样?
答案1
如果您的问题实际上是关于崩溃后恢复系统,您可以放心地忘记tar
:它对格式规范中硬编码的路径的最大长度有限制,并且它不处理硬链接。出于类似的原因,您不应尝试使用cp
、pax
、cpio
或进行备份rsync
。一个合理的解决方案是使用dump
/ restore
,或者更好的是,使用专用的备份包。但这仅解决了保存文件的问题。它不能解决与新旧磁盘之间的大小差异或使磁盘可引导相关的问题。
答案2
备份 Linux 机器的一种非常常见且简单的方法是使用rsync
.对于你的问题,是的,你可以备份文件系统树,但是所谓的伪文件系统(如 /dev 或 /proc)通常被排除在此类备份的文件列表中。
请参阅以下命令:
$ rsync -aHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/dir
它rsync
以存档模式运行-a
(等于 -rlptgoD (无 -H、-A、-X)),显示详细输出-v
,并保留硬链接-H
。还有一个从备份中排除的目录列表。