如何制作磁盘映像并稍后从中恢复?

Tor*_*uun 202 backup

我是一个新的 Linux 用户。在过去的几周里,我至少从头重新安装了我的 Wubi十次,因为在启动和运行系统(驱动程序、分辨率等)时,我破坏了一些东西(X、grub、未知数),我无法得到它恢复工作。特别是对于像我这样的新手,重新安装整个 shebang 比尝试解决多层失败的“修复”尝试更容易(也更快)。

来自 Windows,我希望有一些“磁盘映像”实用程序,我可以运行它来制作我的 Linux 安装(以及引导分区!)的快照,然后再处理这些东西。然后,在我对我的机器进行 foobar 处理后,我会以某种方式将我的机器恢复到那个工作快照。

Acronis True ImageNorton Ghost等 Windows 磁盘映像程序相当的 Linux 是什么?


注意:我发现了一个类似的问题:Easy backup/restore of installed system?

cra*_*sic 134

dd

dd是可用于完成此任务的低级实用程序。它本质上是一个低级别的逐字节复制实用程序。如果您想要“UNIX”方式来完成此操作,请继续阅读。

所有对文件系统和硬盘的引用都位于本地虚拟/dev/文件系统上。有许多“节点”,/dev/它们是您计算机上几乎所有设备的接口。例如,/dev/hda/dev/sda将指代系统中的第一个硬盘驱动器(hda 与 sda 取决于硬盘驱动器),并/dev/hda1指代硬盘驱动器上的第一个分区。

制作分区原始映像的最直接方法是使用dd将整个分区转储到单个文件(请记住操作系统/dev/sda1通过文件接口访问分区)。确保您位于更大的分区或辅助驱动器上,然后执行以下命令:

dd if=/dev/hda1 of=./part1.image备份(对不同分区重复) dd if=./part1.image of=/dev/hda1以恢复

您可以使用完全相同的命令备份整个硬盘(替换hda1hda)。然后,您可以使用任何压缩程序(gunzip、zip、bzip)来压缩文件以进行存储。您可以使用相同的技术制作整个分区的机械副本,以制作计算机的克隆。

但是,在恢复备份时有一个限制:分区需要与您从中获取映像的分区大小相同(或更大),因此这会限制您在恢复时的选择。但是,您始终可以在使用gparted或恢复备份后扩展分区parted。当您尝试恢复整个磁盘副本时,图片变得更加混乱。但是,如果您要将备份还原到同一个硬盘驱动器,则完全无需担心。

但是,如果您想要像Norton Ghost那样“更友好”的实用程序,那么此建议可能不适合您。

  • 我几乎期望有一个内置的工具来解决这个问题,但我也期望这个工具......不太友好:-) 一旦我获得更多的 Linux 经验,这可能是一个很好的解决方案。 (3认同)
  • 我可以在系统运行时备份系统吗? (2认同)

小智 109

这是 Clonezilla Live:http : //clonezilla.org/

可以在此处找到 Clonezilla 的教程

  • Clonezilla 不会像 Acronis 或 Ghost 那样对正在运行的文件系统进行映像,因此 Clonezilla 不会执行它们所做的操作。为了使用 Clonezilla,必须停止操作系统,并且第二个操作系统必须挂载它的文件系统并拍摄快照。如果您不停止操作系统,则还原可能无法工作,因为在多任务操作系统中,其他任务可能会使备份处于不自然的状态。 (13认同)
  • +1 更安全的做法。`dd` 使用起来没有什么危险。 (4认同)
  • 嗯,是的,Clonezilla 应该从启动 CD 中使用以具有独占性(就像任何全驱动器映像工具一样。(Windows 通过其卷影复制服务“破解”而成为一个例外)。 (3认同)

小智 41

我们有一个在 Ubuntu 中可用的 GUI,称为“磁盘”( gnome-disks),在以后的 Ubuntu 中是默认的。

或者

sudo apt-get install gnome-disk-utility
Run Code Online (Sandbox Code Playgroud)

作为“磁盘”启动/搜索,或作为gnome-disks.

还需要的是:

  • Gparted

  • 实时 Ubuntu(或衍生产品)实时会话 USB 棒。


准备分区:

显然,一个分区在使用时不能被复制:它需要被卸载,这样它在复制过程中不会受到改变(这是不言而喻的)。因此,为了备份您的系统分区,您必须在 USB 实时系统中启动 - 或者,如上图所示,在单独的(多重启动)系统中启动。系统分区是标有星号的分区。如果您尝试复制系统分区,您很快就会收到错误消息:

在此处输入图片说明

此外,必须注意备份和恢复可引导分区都是有风险的过程,并且应该首先以不同的方式备份有价值/敏感数据(通过复制数据而不是整个分区等)。- 根据我的经验,这适用于 Ubuntu 系统分区,但不适用于 Windows 系统分区。

可选地,为了最小化保存图像占用的空间,可以首先缩小分区(从末尾,即从右),使其不包括空白空间。这是一篇关于此的帖子:创建不大于其文件的分区备份映像

保存分区:

在此处输入图片说明

恢复分区:

遵循这个答案:如何使用“磁盘”正确还原系统分区(iso 映像)。看到那里的问题。主要思想是必须将映像 (iso) 恢复到现有的空分区,即:

  • 格式化

  • 未安装

  • 大于保存的图像

准备恢复的分区以供使用:

有关 Gparted 报告目标分区和恢复分区之间的空间差异为未分配空间这一事实,请参阅上述链接答案下的评论。这可以通过 Gparted 解决:选择分区并应用“检查”操作。

如果恢复的分区是您要用作主分区的系统分区:

  • 如果磁盘正在使用,则不起作用 - 您实际上无法备份系统分区 :( 在您选择该选项之前,它甚至不会警告您,输入您的密码 :( (2认同)

小智 16

Ubuntu 存储库中的“转储”和“恢复”备份实用程序使您能够备份和恢复整个系统的“系统状态”。

可以使用以下命令从存储库安装“转储”和“恢复”实用程序:

sudo apt-get install dump
Run Code Online (Sandbox Code Playgroud)

下面是链接到手册页:
转储
恢复

在您的情况下,您可以将系统备份到便携式驱动器:

dump -0uan -f my_file /
Run Code Online (Sandbox Code Playgroud)

为了恢复,您需要:

  1. 从你的 Ubuntu live CD/DVD/USB 启动。

  2. 安装转储实用程序。

  3. 挂载硬盘。

  4. 恢复(即restore -r -f my_file /my_mount)。

注意:如果要恢复到新磁盘,则需要安装引导加载程序 (GRUB)。

可以在将 linux 移动到另一个硬盘驱动器(转储、恢复、备份)中找到更多信息


jtl*_*sey 12

以下是来自Ubuntu Wiki 的步骤

Backup with dd
The following example will create a drive image of /dev/sda, the image will be backed up to an external drive, and compressed. For example, one may use bzip2 for maximum compression:

sudo dd if=/dev/sda | bzip2 > /media/usb/image.bz2
Run Code Online (Sandbox Code Playgroud)

Restoring a drive image
To restore a drive image, one will want to boot into a live environment. Restoration is quite simple, and really just involves reversing the if and of values. This will tell dd to overwrite the drive with the data that is stored in the file. Ensure the image file isn't stored on the drive you're restoring to. If you do this, eventually during the operation dd will overwrite the image file, corrupting it and your drive.

To restore the drive above with dd:

bzcat /media/usb/image.bz2 | sudo dd of=/dev/sda
Run Code Online (Sandbox Code Playgroud)

When restoring the whole drive, the system will not automatically create the devices (/dev/sda1, /dev/sda2, etc.). Reboot to ensure automatic detection.

If you restored Ubuntu to a new drive, and the UUIDs (see UsingUUID for more) changed, then you must change the bootloader and the mount points. One will want to edit the following via a terminal:

sudo nano /boot/grub/menu.lst
sudo nano /etc/fstab 
Run Code Online (Sandbox Code Playgroud)

To know what the new UUIDs for your drives are, use the following command:

sudo blkid 
Run Code Online (Sandbox Code Playgroud)

From this list, you can cross-reference the information with that of fdisk to know which drive is which. Then simply update the UUIDs in both GRUB and fstab files.

  • @Gqqnbig 添加选项 `status='progress'` 来报告进度,即 `dd status='progess'`。 (3认同)

Big*_*ack 6

我会为此任务推荐 RemasterSys。在此处输入图片说明

它为您的安装创建 iso,使用 Deja Dup 备份用户日期。


归档时间:

查看次数:

728596 次

最近记录:

5 年,4 月 前