如何将所有软件备份到文件中以便在另一个 Linux 系统上重新安装?

如何将所有软件备份到文件中以便在另一个 Linux 系统上重新安装?

有没有一种方法可以在 Linux 系统上备份我的所有程序、软件,甚至库及其数据,就像使用 TitaniumBackup 在 root Android 上备份应用程序及其数据一样?我想将当前的所有程序备份到文件中,然后在另一个 Linux 系统上再次激活它们。

答案1

在 UNIX 类型系统上备份系统文件通常不是逐个文件地完成的。

如果您尝试将系统迁移到新硬件,只需使用实时映像(例如 knoppix)启动旧计算机,然后将dd硬盘驱动器分区映像到网络上的远程计算机或外部硬盘驱动器。然后,您可以在新计算机上启动实时映像并将dd磁盘映像写入新分区。请注意,新机器将具有与旧机器相同的配置,因此,如果您尝试“克隆”系统,同时保留旧系统,那么您将需要更改一些配置设置,例如主机名和任何静态 IP地址。如果要同时使用这两个系统,根据您使用的软件,您可能需要进行其他一些小的更改。

如果完全克隆系统不是您想要的,并且新系统与旧系统是相同的 Linux 发行版,那么使用包管理器来获取已安装软件的列表。然后,新系统上的包管理器可以使用该列表来安装所有软件和库。之后只需将数据和配置文件从旧机器复制到新机器即可。以下是描述各种发行版的此过程的 URL。

任何未使用包管理器安装的软件都需要手动复制。在这种情况下scprsync就是您正在寻找的工具。此类软件通常安装在/opt(对于较旧的“遗留”软件)或/usr/local/.您可以通过这种方式克隆整个系统,但是如果您错过了任何重要的内容,您将会遇到问题(因此为什么我提到的前两种方法是首选)。在基于 Debian 的发行版上,所有重要文件应包含在以下文件夹中:/bin/etc/home/lib/lib64/lib32/opt(如果不为空)、/root/srv/sbin/usr/var。从实时映像启动来执行此操作也是一个好主意,因为它将确保/var/log在您尝试复制文件时没有任何文件被修改(尤其是在 )。这看起来像:

rsync --progress -a -r /bin /etc /home /lib /lib64 /lib32 /opt /root /srv /sbin /usr /var [email protected]:/

相关内容