如果我想备份自全新安装 Ubuntu 以来所做的一切,有哪些可能的选择?我应该备份什么?我想获取我更改的所有设置、我安装的所有软件包等。
答案1
程式
备份程序列表的快速方法是运行以下命令:
dpkg --get-selections > ~/Package.list
sudo cp -R /etc/apt/sources.list* ~/
sudo apt-key exportall > ~/Repo.keys
它将以 dpkg 重新安装后可以读取的格式备份它们,如下所示:
sudo apt-key add ~/Repo.keys
sudo cp -R ~/sources.list* /etc/apt/
sudo apt-get update
sudo apt-get install dselect
sudo dselect update
sudo dpkg --set-selections < ~/Package.list
sudo apt-get dselect-upgrade -y
*您可能需要更新 dpkg 的可用软件包列表,否则它将忽略您的选择(请参阅这个 Debian 错误了解更多信息)。您应该在 之前执行此操作sudo dpkg --set-selections < ~/Package.list
,如下所示:
apt-cache dumpavail > ~/temp_avail
sudo dpkg --merge-avail ~/temp_avail
rm ~/temp_avail
设置和个人数据
在重新安装之前,您可能应该备份某些程序的设置,这可以通过从 /etc 中获取文件夹以及来自用户目录的所有内容(而不仅仅是您在 nautilus 中看到的内容!)轻松完成:
rsync --progress /home/`whoami` /path/to/user/profile/backup/here
重新安装后,您可以使用以下方式恢复它:
rsync --progress /path/to/user/profile/backup/here /home/`whoami`
因此所有内容都作为伪 bash 脚本。
这假设机器上只有一个用户(/'whoami'
否则删除)并且您在两个安装中使用了相同的用户名(否则修改 rsync 的目标)。
dpkg --get-selections > ~/Package.list
sudo cp -R /etc/apt/sources.list* ~/
sudo apt-key exportall > ~/Repo.keys
rsync --progress /home/`whoami` /path/to/user/profile/backup/here
## Reinstall now
rsync --progress /path/to/user/profile/backup/here /home/`whoami`
sudo apt-key add ~/Repo.keys
sudo cp -R ~/sources.list* /etc/apt/
sudo apt-get update
sudo apt-get install dselect
sudo dpkg --set-selections < ~/Package.list
sudo dselect
答案2
适用对象:正常使用计算机的用户,在主文件夹之外只进行过极少的配置或没有进行过任何配置,没有弄乱启动脚本和服务。用户希望将软件恢复到安装时的状态,所有自定义设置都已完成并保存在主文件夹中。
不适合人群:服务器极客、使用源安装软件的高级用户(恢复软件包列表可能会破坏您的系统)、已更改某些应用程序的启动脚本以更好地满足其需求的用户。注意:任何外部修改都很有可能被覆盖。
备份当前的软件包和用户设置
一旦您准备好系统并对安装的软件感到满意,您可以使用命令获取已安装软件包的列表dpkg --get-selections
,并将输出保存到日志文件中。
backup
在你的家中创建一个文件夹
sudo mkdir ~/backup
保存当前安装的软件包列表
dpkg --get-selections > ~/backup/installed_packages.log
备份你的 apt 源文件
sudo cp /etc/apt/sources.list ~/backup/sources.bak
以及你的 apt 可信密钥列表的副本
sudo apt-key exportall > ~/backup/repositories.keys
使用 Ubuntu 中集成的备份工具 Deja-dup 备份您的主文件夹。
- 设置备份文件夹
- 确认它是否会备份你的主文件夹并添加你可能不想要的任何文件夹,例如文件
Trash
夹
- 在概览选项卡上按立即备份备份你的主文件夹
- 备份工具会询问您是否要为备份添加密码,您可以选择。按继续
完成后,您将获得与您的用户相关的软件包和配置文件的备份。如有必要,您将能够从~/backup
文件夹中恢复文件。
恢复备份
首先从备份中恢复源文件
sudo cp ~/backup/sources.bak /etc/apt/sources.list
备份密钥
sudo apt-key add ~/backup/repositories.keys
更新您的来源列表
sudo apt-get update
从已保存的installed_packages.log
sudo dpkg --clear-selections
sudo dpkg --set-selections < ~/backup/installed_packages.log && sudo apt-get dselect-upgrade
sudo dpkg --clear-selections
将标记所有当前安装的软件包以供删除,这样,当您恢复已保存的软件包列表时,不在列表中的软件包将从系统中删除。
从您的主目录中删除当前配置,并创建当前状态下的文件夹备份(毕竟,如果还有其他文件会影响配置,那么恢复新文件有什么用呢?)
mkdir ~/.old-gnome-config/ && mv ~/.gnome* ~/.old-gnome-config/ && mv ~/.gconf* ~/.old-gnome-config/ && mv ~/.metacity ~/.old-gnome-config/ && mv ~/.cache ~/.old-gnome-config/ && mv ~/.dbus ~/.old-gnome-config/ && mv ~/.dmrc ~/.old-gnome-config/ && mv ~/.mission-control ~/.old-gnome-config/ && mv ~/.thumbnails ~/.old-gnome-config/ && ~/.config/dconf/* ~/.old-gnome-config/
完成后,恢复使用 Deja-dup 创建的备份。
- 打开备份工具,在概览选项卡上按“恢复”
- 按照提示将文件恢复到原来的位置
完成后,您的软件包将恢复为保存的选择,我们的配置将恢复,并且希望有一个可以工作的桌面,所有这一切都无需安装任何额外的应用程序和使用 Ubuntu 默认工具。
剩下唯一要做的事情就是进行一些清理并检查一切是否正常。
出了点问题,我的桌面不见了
Ask Ubuntu 中有几篇帖子可以指导您,以防出现问题并需要硬重置桌面。如果出现问题并且您发现自己需要这样做,请查看这些帖子:
答案3
使用以下方式选择已安装的软件包apt-clone
APT克隆。此软件包可用于在基于 apt 的系统上克隆/恢复软件包。它将保存/恢复软件包、sources.list、密钥环和自动安装状态。它还可以使用 dpkg-repack 保存/恢复不再可下载的软件包。
(Ubuntu 安装程序)使用 APT-Cloneubiquity
进行升级过程。
安装
sudo apt-get install apt-clone
进行备份
sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
恢复备份
sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
恢复到较新的版本:
sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
参考: man apt-clone
主页数据,配置/etc
,..使用duplicity
表里不一通过生成加密的 tar 格式卷并将其上传到远程或本地文件服务器来备份目录。由于 duplicity 使用 librsync,因此增量存档节省空间,并且仅记录自上次备份以来发生变化的文件部分。由于 duplicity 使用 GnuPG 来加密和/或签署这些存档,因此它们不会被服务器监视和/或修改。
安装
sudo apt-get install duplicity
备份
duplicity full path-to/source_folder/ file:///path_to/duplicity_backups/
或增量备份(它将仅备份与上次备份的差异):
duplicity incremental path-to/source_folder/ file:///path_to/duplicity_backups/
恢复
duplicity restore file:///path_to/duplicity_backups/ path-to/target_folder/
参考: man duplicity
答案4
虽然这个问题已经回答了一段时间,但我注意到没有人提到etckeeper。运行apt-get install etckeeper
,在/etc/etckeeper/etckeeper.conf
,从此你将更好地控制你的 /etc 目录。这可以还用于恢复 /etc 目录中的配置。
例如,(假设您将 git 配置为 VCS)备份您的/etc/.git
目录。任何时候您需要将配置恢复到新的 /etc,您都可以将备份的 /etc/.git 目录复制到新的 /etc 目录中。现在,您有许多选项可以管理恢复:
- 查看差异
git diff
- 将所有差异保存在 git 分支的“新鲜”目录中
git checkout -b new; git add -A; git commit -m 'new etc'
- 无条件恢复到您的备份
git clean -f