如何备份已安装软件包的设置和列表

如果我想备份自新安装Ubuntu以来我所做的一切,有哪些可能的选择? 我应该备份什么? 我想获得我更改的所有设置,我安装的所有软件包等。

程式

备份程序列表的一种快速方法是运行:

 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' )并且在两个安装上都使用相同的用户名(否则修改rs。的目的地)。

 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 

这是为了什么:正常使用计算机的用户,在其主文件夹之外进行了极少配置或没有配置的用户,并没有弄乱启动脚本和服务。 希望将其软件恢复到安装状态的用户,并完成所有自定义并保存在其主文件夹中。

谁不适合:服务器极客,有源安装软件的高级用户(恢复软件包列表可能会破坏您的系统),已更改某些应用程序的启动脚本以更好地满足其需求的用户。 注意:家庭以外的任何修改都有可能被覆盖。

备份当前包和用户设置


准备好系统并对安装的软件感到满意后,可以使用命令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中有一些post可以指导您,以防出现错误,您需要硬重置桌面。 如果出现问题并且您发现自己需要这样做,请查看以下post:

  • 如何将Gnome重置为默认值?
  • 如何重置Compiz / Unity配置?

备份需要一些规划,有几种可行的策略。 您必须决定哪种方法最适合您。

小心“最好的方式”,对一个人最有效的方法可能不是最好的另一个。

在一天结束时,“最佳方法”是经过测试并且已知可行的方法。 您需要在需要之前测试备份策略

使用图像

一种方法是简单地复制和压缩分区的图像。 您可以使用多种工具执行此操作,从dd到partimage再到clonezilla

partimage
Clonezilla的

这种策略的优点是(相对)容易且非常完整。 缺点是备份图像很大。

较小的备份

您只需备份数据和设置即可进行较小的备份。 有几个工具可以做到这一点,从dd到tar再到rsync。

这里的关键是知道你需要备份什么。

优势 – 备份将更小。
缺点 – 这是一种手动方法,因此很容易忘记关键文件(/ etc / passwd)。

将始终需要检查要返回的内容列表,以确保列表完整。

1) 已安装的软件包列表

包列表#创建所有apt-get安装包#的现有安装的文本列表,以便在新安装的发行版上重新安装

 # make the list [old distro] sudo dpkg --get-selections > packages 

然后,您将执行全新安装,并恢复您的包。 以下命令还会更新系统上的所有软件包(以便一次性恢复和完全更新)。

 # Now put them back on the new distro [new distro] sudo dpkg --set-selections < packages [new distro] sudo apt-get dselect-upgrade 

2) 数据 。 通常这将是/ home。 大多数用户数据和自定义都将在您的用户主目录中。 如果您将数据保存在其他位置,请包含该数据(例如/ media / data)。

3) 系统设置 。 这里有一些变化。 就个人而言,如果我编辑任何系统设置,我会在/ root中保留原始配置文件和我的自定义文件的副本。 因此,如果我编辑/etc/fstab ,请在/root/etc/fstab.orig中的/ root / etc / fstab和原始文件中保留一份副本

你还需要/etc/passwd/etc/shadow/etc/group/etc/sudoers/etc/hostname/etc/hosts (你可能需要更多/ etc,如果我忘了我会添加的东西它)

在服务器上,您可能需要包含/var/www或其他数据目录。

我理解这需要一些努力,因此, 包含所有/etc可能更容易

4)磁盘分区表的副本。

 sudo fdisk -l > fdisk.bak 

如果更换硬盘驱动器,则可以使用此信息恢复分区表。

5) MBR的副本

 dd if=/dev/sda of=MBR.bak bs=512 count=1 

然后你将恢复

 dd if=MBR.bak of=/dev/sda bs=512 count=1 

6) 其他文件/目录 - 根据您的系统和自定义,您可能需要包含其他目录。 注意事项可能包括/opt/usr/local ,/ usr / share`和/或.desktop文件。 您在apt-get或软件管理器之外下载或自定义的系统上的任何内容。

7)将所有内容放入存档中

 tar -cvpzf backup.tar.gz /home /root /etc ./MBR.bak ./fsdisk.bak ./packages 

8) rsync

作为tar的替代,您可以使用rsync。

请参阅 - https://help.ubuntu.com/community/rsync

网络备份

另一种选择是使用NFS或Samba备份数据。

克龙

您可以通过编写备份脚本并使用cron运行它(每天/每小时)来自动执行备份。

恢复

1)使用Live CD,使用gparted或fdisk从fdisk.bak中的信息恢复分区
2)安装Ubuntu。
3)启动新安装,更新软件包。
4)恢复您的数据和设置

 tar -xvpzf /home/test/backup.tar.gz -C / 

然后重启

另请参阅 - https://help.ubuntu.com/community/BackupYourSystem/TAR

其他策略

还有许多其他备份策略,一些用于备份主目录,一些用于备份。

请参阅: https : //help.ubuntu.com/community/BackupYourSystem

测试

除非经过测试,否则它不是备份。 当您不使用根分区的映像时,这是最重要的。

测试在VM,备用计算机或备用分区或硬盘驱动器中还原系统。

使用apt-clone选择已安装的软件包

APT-Clone 。 此程序包可用于在基于apt的系统上克隆/恢复程序包。 它将保存/恢复包,sources.list,密钥环和自动安装状态。 它还可以使用dpkg-repack保存/恢复不再可下载的软件包。

ubiquity (Ubuntu安装程序)使用APT-Clone进行升级过程。

  1. 安装

     sudo apt-get install apt-clone 
  2. 做备份

     sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz 
  3. 恢复备份

     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

Duplicity通过生成加密的tar格式卷并将其上载到远程或本地文件服务器来回退目录。 由于duplicity使用librsync,因此增量存档空间有效,并且仅记录自上次备份以来已更改的文件部分。 由于duplicity使用GnuPG来加密和/或签署这些存档,因此它们可以安全地免受服务器的间谍和/或修改。

  1. 安装

     sudo apt-get install duplicity 
  2. 备用

     duplicity full path-to/source_folder/ file:///path_to/duplicity_backups/ 

    或增量备份(它只备份与上次备份的差异):

     duplicity incremental path-to/source_folder/ file:///path_to/duplicity_backups/ 
  3. 恢复

     duplicity restore file:///path_to/duplicity_backups/ path-to/target_folder/ 

参考: man duplicity

虽然这个问题已经回答了一段时间,但我注意到没有人提到过etckeeper。 运行apt-get install etckeeper ,在/etc/etckeeper/etckeeper.conf配置您的VCS, /etc/etckeeper/etckeeper.conf您就可以更好地控制/ etc目录。 这可用于在/ etc目录中恢复配置。

例如,(假设您将git配置为VCS)备份/etc/.git目录。 只要您需要将配置恢复到新的/ etc,就可以将备份的/etc/.git目录复制到新的/ etc目录中。 您现在有许多选项可用于管理修复:

  • 查看差异
    • git diff
  • 保持git分支中“fresh”目录的所有差异
    • git checkout -b new; git add -A; git commit -m 'new etc'
  • 无条件地恢复到您的备份
    • git clean -f

对于那些想要一个好的人。 整洁的GUI …

…介绍Aptik。

您所需要的只是一个备份目录,存储在本地或云端。 Aptik将备份PPA,下载的软件包,软件选择,应用程序设置以及主题和图标。 非常有用。

你可以通过ppa安装它:

 sudo apt-add-repository –y ppa:teejee2008/ppa sudo apt-get update sudo apt-get install aptik 

希望这有助于🙂

要创建所有已安装程序的备份列表: http : //savvyadmin.com/backup-and-restore-package-lists-in-ubuntu/
您显然需要备份其中一些已安装软件包来自的软件源 : 备份软件源

至于你的程序设置,大多数都在你的主文件夹中隐藏(以.开头. )文件夹和文件。 我会备份所有这些。

我想要准备好恢复应用程序及其数据,也要离线。

这违背了“格式化和安装”的目的。 如果您想这样做,只需从现有的Ubuntu安装升级即可。

由于Ubuntu中的“安装”就像进入软件中心(或Synaptic或apt-get )一样简单,并且大多数程序本身都经常更新,因此备份程序,重新安装Ubuntu然后从备份安装没有任何意义。而不只是从存储库获取最新版本。

只要您的数据和程序设置得到备份,您就可以了。 如果您仍然需要系统中所有内容的完整列表,以便了解是否缺少软件包,只需进入终端并键入dpkg --list > mypackages.txt ,并将该文本文件放在安全的地方 – 它包含每个软件包曾经安装在您当前的系统上。

我会假设它是一个新的硬盘驱动器,固态硬盘或新系统,或者你有一个旧的Ubuntu。 现在你想升级到Ubuntu 12.04(精确穿山甲)?

我会假设你讨厌重新安装它们或重新配置? 没有必要。

Ctrl + Alt + T打开终端,然后运行以下命令:

 sudo dpkg --get-selections > app-backup-list.txt 

然后通过以下方式将文本文件cp到您的主目录:

 sudo cp app-backup-list.txt /home/username 

接下来,从侧栏中的系统设置运行备份应用程序。

备份/home Ubuntu One,闪存棒,软盘(oops刮擦)或刻录到CD,或系统或外部HDD驱动器中的其他HDD或使用您想要的任何备份程序。

然后使用还原反转备份,选择您使用的备份程序,现在\ home又回来了。

最后,反转dkpg命令:

 sudo dpkg --get-selections < app-backup-list.txt sudo apt-get -y update sudo apt-get dselect-upgrade 

注意

恢复主页,获取应用程序的所有设置。 我安装了SSD,并复制了所有文件,但为了以防万一,我仍然做了备份。

PS :这可以避免,实际上备份,大量应用程序的机器代码等。确保您的下载文件夹是干净的。 没有机器代码或video,然后使用k3B将download文件夹刻录到DVD。

如果不考虑存储空间,使用dd或dc3dd将完全备份目标磁盘或您指定的分区上的所有内容。 您不希望在已安装的驱动器上尝试此操作,因此您可以从可启动的USB或DVD(或选择“尝试Ubuntu”的安装媒体)执行此操作:

 sudo dd if=/dev/ of=/path/.img 

您希望备份和目标的磁盘或分区在哪里是备份文件名 (通常是相同的)( sdasda1 )。

如果需要进度报告,请将dc3dd替换为dd 。 要访问备份中的特定文件,通常可以将生成的.img文件作为循环设备挂载:

mount -o loop,ro,offset=32256 filename.img /mnt/dir这适用于具有单个分区的驱动器,您已备份整个驱动器。

或者mount -o loop,ro filename.img /mnt/dir如果备份了分区mount -o loop,ro filename.img /mnt/dir

您可以通过交换if =和of =参数来恢复整个磁盘或分区,如下所示:

sudo dd if=/path/.img of=/dev/

您希望还原的映像文件在哪里,是您要将其还原到的驱动器或分区。

优点:易于备份,易于恢复一切。 与其他一些解决方案不同的是,由于您要备份所有内容而不需要担心是否需要它,因此在规划方面并不是很重要。

缺点:耗时(计算机时间,不属于您),不适合日常备份(无增量选项)

来源:经验; 我在开始工作之前使用这种方法来备份客户端系统,并且从未丢失过一些客户端数据。

我找到了另一个解决方

查看APTonCD 。 它将备份所有应用程序并将它们放入ISO映像中。

我发现最简单的过程是使用两个程序:

回到备份/家庭和/等

Aptik支持程序

编辑:

根据用户@Izzy,这个答案不再适用


我上面有同样的问题!! 然后我找到了这个网站:

点击这里

我将复制网站上用于备份程序的内容:

除了备份我的/ home分区之外,我还使用Synaptic Package Manager定期创建所有已安装软件包(应用程序及其依赖项)的备份列表。为此,您需要使用基于Ubuntu的发行版或者一个使用Synaptic。我不熟悉在使用不同包管理器的其他发行版中执行此操作。但在Bodhi Linux,Linux Mint或任何其他Ubuntu / Debian衍生物中,只需打开Synaptic;转到文件>保存标记。确保检查“保存完整状态,不仅仅是更改”的小方框,然后将该文件保存到您想要的任何位置(最好是保存/ home备份的位置)。然后当您需要重新安装操作系统时,应用所有更新后,您可以打开Synaptic,转到文件>读取标记并选择已保存的包文件。只要您连接到互联网,它将自动下载并安装您最初安装的所有应用程序和其他包。这当然可以节省人 没有时间和麻烦,所以你不必搜索并重新安装你的所有应用程序

干杯

要使用GUI备份所有已安装的软件包,您可以使用Ubuntu软件中心。 进入菜单(然后登录)并同步所有包裹。 当您需要重新安装时,从机器中选择所有包,然后从同一菜单中单击“安装”。

从命令行(CLI),您还可以使用OneConf(oneconf)。

我没有检查一年; 也许这现在有更多的选项,如一些设置,而不是只列出备份的包。