如果我想备份我的整个操作系统(包括但不只是我的主目录),我该怎么做?
是否像备份所有内容一样简单/
,然后当我遇到崩溃时,只需将文件复制回来?
这会涵盖 grub,当系统无法运行时,我该如何实际操作?
evg*_*eny 110
档案
请参阅此操作方法:http : //ubuntuforums.org/showthread.php? t= 35087
简单来说,备份命令是:sudo tar czf /backup.tar.gz --exclude=/backup.tar.gz --exclude=/dev --exclude=/mnt --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/lost+found /
。--exclude=
如果需要,添加更多参数。
它将在 中创建所有文件的存档/backup.tar.gz
,然后您可以将其复制到另一台计算机/驱动器并在安装过程中恢复您的文件。您可以从 LiveCD 执行此操作,方法是在/media
或下安装“坏”系统/mnt
并运行tar xf /path/to/drive/with/backup.tar.gz -C /mnt
(替代“坏”系统的实际路径)。
格鲁布
这不会涵盖 GRUB,但是您可以按照此处的指南轻松地重新安装它。您只需要执行步骤三和四。
mre*_*req 24
没有人注意到clonezilla。它可以为您的硬盘制作完整的映像,因此它绝对可以备份所有内容。就像刻录 ISO 或创建可引导闪存驱动器一样简单。
实际备份需要一段时间,但最可靠。
New*_*wbi 18
将您的系统克隆到另一个系统。或者做一个备份。在终端类型中:
dpkg --get-selections | grep -v deinstall > ubuntu-files
Run Code Online (Sandbox Code Playgroud)
此命令创建系统中所有已安装软件包的文件列表(并将其存储在当前工作目录中)。在硬盘、电子邮件等中备份此文件...(此文件非常小)。
在新安装的 ubuntu 系统中运行:
sudo dpkg --set-selections <./ubuntu-files (will set it up and)
apt-get -y update
apt-get dselect-upgrade
Run Code Online (Sandbox Code Playgroud)
这将仅安装您apt-get
在旧系统中安装(使用)的那些软件包。
(OR)
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法备份所有.deb
软件包/var/cache/apt/archives/
并手动安装它们:
dpkg -i *.deb
Run Code Online (Sandbox Code Playgroud)
之后运行更新周期。
afr*_*ish 14
这是我与 SquashFS 一起使用的解决方案。它与之前提出的 TAR.GZ 解决方案非常相似,但具有一些主要优点。
SquashFS 是一种压缩文件系统,它完全存储在一个文件中。该文件可以挂载到现有系统并以通常的方式访问,就像任何其他分区一样。与 TAR.GZ 的不同之处在于 SquashFS 是一个成熟的文件系统,可以随机访问文件,而 TAR 只是一个大的连接文件。
这意味着,如果您想挂载整个文件系统的一些大型备份,对于 TAR.GZ 将需要 5 个小时(根据我的经验),而对于 SquashFS,它只需要几分钟/秒。压缩/备份操作也是如此,SquashFS 快很多倍。
更新 2017-01-31:看来您不仅可以挂载 squashfs 文件,还可以使用熟悉的应用程序(如 Linux 上的 File Roller 和 Windows 上的 7-Zip 等)将其作为普通存档打开。
所以这是我用来备份根文件夹的命令:
sudo mksquashfs / /path/to/backup/hdd/root-backup.sqsh -e home media dev run mnt proc sys tmp
Run Code Online (Sandbox Code Playgroud)
其中“-e”开关排除了要排除的文件夹(例如我的示例中的虚拟和外部 Linux 文件夹)。
备份完成后,我现在可以挂载它:
sudo mkdir /mnt/root_backup
sudo mount /path/to/backup/hdd/root-backup.sqsh /mnt/root_backup -t squashfs -o loop
Run Code Online (Sandbox Code Playgroud)
现在只需等待几分钟(取决于存档的大小)并享受 /mnt/root_backup 文件夹中的所有文件。
对 /home/myname 文件夹也可以这样做,例如
sudo mksquashfs /home/myname /path/to/backup/hdd/home-backup.sqsh -e Dropbox GoogleDrive
Run Code Online (Sandbox Code Playgroud)
我在这里排除了 Dropbox 和 GoogleDrive 以避免将来出现任何潜在问题,以防我从备份中恢复这些文件夹并且它们与云中的实际文件混淆。
在http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html查看更多信息
您可以使用Remastersys创建可启动的 Live CD/DVD 映像。这将像普通的 Ubuntu CD 一样安装。
要安装 Remastersys,您首先需要添加一个存储库:
deb http://www.geekconnection.org/remastersys/repository karmic/
Run Code Online (Sandbox Code Playgroud)
然后您可以像往常一样从软件中心安装它。
安装后,使用它进行“dist”备份。这意味着用户数据将从 ISO 映像中排除。
这通常用于创建自定义分发,但对于您想到的备份任务仍然很有用。一个警告是,如果/
(减去 中的用户数据/home
)的内容占用太多内存,它可能会失败,因为 ISO 文件格式只能容纳约 4GB 的数据。Remastersys 使用一个名为 squashfs 的文件系统来压缩您的数据,因此您应该可以使用高达约 8GB 的数据。
试试Remastersys。
使用该程序,您可以执行系统的 liveCD(与 Ubuntu 安装 iso 文件相同),并能够将其安装在硬盘驱动器上。工作非常简单(如果您知道如何将 iso 刻录到 USB/CD/DVD)。
在我的 11.10 和 11.04 以及较旧的版本上完美运行。
安装:
编辑文件 /etc/apt/sources.list
添加:# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/
并保存
然后在终端中运行:
sudo apt-get update
sudo apt-get install remastersys
我们还可以使用 rsync 备份系统并排除我们不想要的文件和文件夹。这是执行此操作的以下命令:
#rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder
Run Code Online (Sandbox Code Playgroud)
使用这-aAX
组选项,文件以存档模式传输,确保符号链接、设备、权限和所有权、修改时间、ACL 和扩展属性得到保留
该--exclude
选项将导致排除与给定模式匹配的文件。
小智 5
时移。
TimeShift 通过定期拍摄文件系统的增量快照来保护您的系统。稍后可以恢复这些快照,使您的系统恢复到拍摄快照时的准确状态。
打开终端并运行以下命令
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
Run Code Online (Sandbox Code Playgroud)
截图
我把阿夫里什的出色回答变成了自己的剧本。认为它对于那些希望实现自动化的人来说可能很有用。好处是,由于脚本可以驻留在 NAS 上,因此只有在连接时才会执行。
该脚本(可以复制到任何位置 - 最好是 NAS 本身)并将在同一文件夹中构建备份。
make_backups_root_and_home.sh
#!/usr/bin/env bash
set -e
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
log="log.txt"
power=$(cat /sys/class/power_supply/AC/online)
start_date=$(date +%Y%m%d_%H%M%S)
if (( $power == 1 )); then
echo "Starting backup $log at $start_date" >> $log
# ROOT IMAGE
root_backup_file=$start_date-root-backup.sqsh
sudo mksquashfs / $root_backup_file -e home media dev run mnt proc sys tmp nfs
# ALL HOMES IMAGE
home_backup_file=$start_date-home-backup.sqsh
sudo mksquashfs /home $home_backup_file -e Dropbox GoogleDrive
finish_date=$(date +%Y%m%d_%H%M%S)
echo "Completed $root_backup_file and $home_backup_file at $finish_date" >> $log
else
echo "Power is not plugged in... skipped on $start_date" >> $log
fi
Run Code Online (Sandbox Code Playgroud)
别忘了chmod +x make_backups_root_and_home.sh
!
要启用 cronjob:
sudo su
crontab -e
Run Code Online (Sandbox Code Playgroud)
对于周日凌晨 1 点,请附加:
00 01 * * sun /nas_path/to/your/make_backups_root_and_home.sh >> /nas_path/to/your/log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
与所有好的备份一样,应该对它们进行测试!最后,我们可以创建一个脚本来安装最后一个可用的备份(因为它们是按日期排序的)。
mount_last_backup.sh
#!/usr/bin/env bash
sudo mkdir -p /mnt/root_backup
sudo mkdir -p /mnt/root_home
#UMOUNT ANY
sudo umount /mnt/root_backup
sudo umount /mnt/home_backup
last_root=$(ls -Xrt -1 *root-backup* | head -n 1)
last_home=$(ls -Xrt -1 *home-backup* | head -n 1)
sudo mount $last_root /mnt/root_backup -t squashfs -o loop
sudo mount $last_home /mnt/home_backup -t squashfs -o loop
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
257811 次 |
最近记录: |