我对 Ubuntu 还不熟悉,想创建一个备份。我真的不知道要包含哪些文件和文件夹,以便恢复系统时系统能恢复到现在的样子。我似乎在任何地方都找不到这方面的详细资料。希望有人能帮我。是否可以备份现在的所有内容,以便在系统恢复时我不必重新安装程序和设置?
答案1
我的备份集当前包含
/etc
/home
/root
/srv
/usr (/usr/local only, nothing else)
/var (except /var/run, /var/cache, /var/tmp)
注意这是针对服务器的,因此备份以下内容/ETC保存我服务的所有配置,我有网络服务器/srv(尽管如果你有它们/var/www,它们仍然会在这个备份集中),我有各种脚本和设置的东西/usr/本地等备份/家代替/home/我的用户名这样我就可以保存所有用户。如果您只想保留用户数据,则只需要您的主目录。
编辑:如果你有任何东西,/opt
你可能也应该把它包括进去。感谢@GabrielStaples 指出这一点。
答案2
您需要备份的内容取决于您的特定系统*。
所以这需要你花点功夫来解决。首先要弄清楚不是需要备份。首先查看根目录,然后反向操作。
例如,cd /; ls -F
给我:
bin/ initrd.img@ mnt/ snap/ vmlinuz@
boot/ initrd.img.old@ opt/ srv/ vmlinuz.old@
cdrom/ lib/ proc/ sys/
dev/ lib64/ root/ tmp/
etc/ lost+found/ run/ usr/
home/ media/ sbin/ var/
/cdrom
、、/media
和/mnt
是挂载点,所以不需要备份。
/dev
,,,,并在重启时自动重新创建。[我猜测链接:,,,/ vmlinuz.old /lost+found
@在启动 ubuntu 重新安装时重新创建(我不确定是哪一个)。/proc
]/run
/sys
/tmp
/initrd.img@
/initrd.img.old@
/vmlinuz@
在我的系统上/root
是空的(使用sudo -s
以 root 用户身份打开 shell 来查看它...exit
检查后请立即小心/root
。)
/snap
也是空的。也许它是一个挂载点。
/var
包含可变数据,如系统日志文件、邮件和打印机假脱机目录以及瞬时文件和临时文件。”我现在备份它,除了 /var/log。参考:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/var.html)
/bin
,,,,,除非您/boot
正在进行系统开发工作或类似工作,/lib
否则可能会通过重新安装 Ubuntu 重新加载。您可以备份这些文件或依靠全新安装来恢复它们。/lib64
/sbin
/home
应该在它自己的备份中。有时您可能只想恢复/home
。
剩下的就是您对系统所做的其他更改,包括/etc
、、/opt
和/srv
,/usr
您也需要备份这些更改,可以一起备份,也可以单独备份。
以下几页可能有助于理解这些目录:
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/the-root-directory.html http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html#sect_03_01_03
相关的思路是: 假设您刚刚安装了全新的 Ubuntu。您需要备份什么?答案:什么都没有。您还没有更改任何内容,因此您可以简单地重新安装 Ubuntu。它会恢复 /bin、/etc、/root、/usr 等。
因此,您可能想要备份 /bin 的唯一原因是您已更改或添加了内容。因此,备份的一部分是了解内容在哪里以及何时创建和修改。要知道,我们其他人也为此而苦苦挣扎。
*****虽然您没有问,但您可以制作完整的磁盘或分区映像。这些映像需要花费大量时间来备份和恢复,并且可能会在工作进行期间导致系统瘫痪。这就是我使用 Acronis 备份 Windows 系统的方法。他们为您提供的只是分区图以及来自非 Linux 分区的映像。我现在会在重新组织分区之前以及测试备份恢复功能之前制作这些映像。
(我非常乐意接受有关如何改进这一点的建议。)
答案3
如果我重新安装桌面系统,我会备份
/etc
/var
,我懒得排除一些子文件夹/opt
/home
位于单独的分区上并已备份每天。
重新安装后,我从备份中恢复了我真正需要的部分。
通过这种策略,我的所有配置、本地邮件和 crontab 配置都是安全的,我只需要重新安装我需要的应用程序。
我的个人脚本保存在我的主文件夹中(记得吗,每天都备份),因此我不使用/usr/local
。