如何备份已安装软件包的设置和列表
如果我想备份自新安装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进行升级过程。
-
安装
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
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
虽然这个问题已经回答了一段时间,但我注意到没有人提到过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
您希望备份和目标的磁盘或分区在哪里是备份文件名 (通常是相同的)( sda
, sda1
)。
如果需要进度报告,请将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)。
我没有检查一年; 也许这现在有更多的选项,如一些设置,而不是只列出备份的包。