如何将硬盘驱动器克隆到以后可以打开的映像?


14

我需要制作一个(最好是)80GB Hdd的可挂载映像,并将其存储在另一个硬盘驱动器上。有什么方法可以做到这一点而又不会丢失数据吗?

感谢您到目前为止收到的答复。由于电源按钮:( [ugh!])有问题,当前无法使用所讨论的系统,但是该信息确实很有用=)!感谢到目前为止所有回答的人,如果还有其他人想给我一些提示,我将对此稍作讨论,因为我仍然无法克隆该驱动器。



要覆盖出现故障的电源按钮,只需用螺丝起子或其他工具短短连接两根电源按钮电线的插针,但仅那两个不会同时碰到那两个!
marc-andre benoit 2011年

Answers:


8

使用dd(将sda1替换为要保存的分区):

sudo dd if=/dev/sda1 of=/home/user/backup.img

这将使分区的可安装映像。请注意,这可能需要一段时间,并且映像将具有分区的大小,而不是分区上的文件。在您的情况下,这将是80GB。如果压缩图像,则其大小应约为硬盘使用空间的大小。

有关更全面的说明,请参考DriveImaging:使用dd创建光盘映像


这将克隆分区/ dev / sda1而不是硬盘驱动器/ dev / sda。为了进行救援和恢复,最好复制整个硬盘驱动器,而不只是复制分区
fabricator4

3

我的首选方法是使用CloneZilla实时CD。下载.iso,使用Brasero将其刻录到磁盘,将其放入要进行映像的计算机中,重新启动,连接目标驱动器,然后按照提示进行操作。使用dd时请务必小心,这是一个非常低级的工具,错误可能会轻易破坏数据。如果要逐字节复制图像,请选择CloneZilla的“分区到分区”选项。


+1。为此,Clonezilla是一个很好的工具。您也可以将Clonezilla iso文件克隆到USB Pendrive并从USB启动。另请参见此链接以获取更多详细信息。
sudodus

3

Remastersys是一个程序,可以创建整个硬盘驱动器的备份,然后将其保存到LiveCD。您也可以使用它来创建自定义的Ubuntu发行版。它具有CLI和GUI,因此请选择。在GUI中,选择第一个选项“备份”

Remastersys

要安装它,请打开软件中心,然后编辑->软件源->其他软件(Tab),然后单击添加和粘贴。

deb http://www.geekconnection.org/remastersys/repository karmic/

现在关闭软件源窗口,等待刷新存储库并安装remastersys。


糟糕,似乎重灾必须是“业障”的
Peter.O 2010年

嗨,Lyrositor。您可以将其更新为使用relinux而不是remastersys吗?
RolandiXor

3

通过局域网成像

在备用计算机上运行:

nc -l -p 12345 | dd of=mybackup.img

在源计算机上运行:

dd if=/dev/sda | nc server2 12345

很有趣的方式来做^^!我目前正在尝试让系统重新打开大声笑(愚蠢的电源按钮)!
RolandiXor

0

最简单的方法是使用dd,但常见的抱怨是dd在复制大磁盘时没有进度条。您可以将管道查看器(pv)与dd结合使用以显示进度条和完成的ETA。用以下命令安装PV

sudo apt-get install pv

不需要挂载要复制的驱动器,如果要从损坏的驱动器中恢复数据,则最好不要以读取/写入模式挂载它。您对驱动器所做的任何操作都有可能覆盖已删除的数据或对文件系统造成进一步的损害。此时进行位复制的目的是在不使数据遭受进一步风险的情况下实现恢复。

在继续操作之前,您需要了解两件事,即要复制的驱动器的设备名称及其实际大小。这两个都可以通过发出命令来找到

sudo fdisk -l

它将在MiB中显示连接到系统的驱动器及其大小。

将磁盘复制到当前目录中的文件rescue.dd的最简单命令是:

sudo dd if=/dev/sdx of=rescue.dd

需要将/ dev / sdx更改为要复制的实际设备名称。您可能需要更改raid.dd的所有权,因为它将由root拥有。

要获得方便的进度条和预计到达的时间,请通过pv传递dd命令:

sudo dd if=/dev/sdX | pv -s 99999m -bpae | dd of=rescue.dd 

其中/ dev / sdX是要复制的驱动器的设备名称,99999是设备的大小,以MiB(不是MB)为单位。由于第二次调用dd写入输出文件是您的用户,而不是root用户,因此您的用户将拥有文件rescue.dd。数据显示为平均数据速率,进度条,已完成百分比和完成所需的ETA。


我已经成功使用单独的pv,例如:sudo pv / dev / sdb | xz -9> sdcard.img
Fordi

0

如果您想查看进度并且也不介意命令行,PV是您的朋友。我正在Raspberry Pi 2上试用Ubuntu MATE,我想备份我的SD卡并编写新的SD卡,但是我讨厌运行一个大型IO,而不知道发生了什么事情。这是最快的工作方式:

$ sudo su
# pv /dev/sdb | xz > my-pi.img.xz
# pv ubuntu-mate-15.04-desktop-armhf-raspberry-pi-2.img.bz2 | bzip2 -d > /dev/sdb

还原同样容易

# pv my-pi.img.xz | xz -d > /dev/sdb

在所有情况下,发生的是 pv是将输入文件/设备发送到stdout并向stderr提供进度报告。然后,xz或bzip2从管道中获取标准输入(上一条命令的标准输出)并充当过滤器。输出重定向将文件放置到设备或图像文件中。

我完全不知道它与块一起运行,但是我怀疑Linux正在为我做所有缓冲,并在硬件级别按块读取/写入数据。

因此,使用dd有很大的优势吗?我可以看到我们是否正在读取或写入磁盘的特定部分(例如,如果要从映像中提取分区,将端点从fdisk上撕下或分开),但是为了向整个磁盘发送垃圾邮件,我真的更喜欢简单的磁盘命令。


我刚刚测试过,它可以工作。只需添加一点,您就可以替换xzpixz,以利用您的所有内核,从而加快流程。apt-get install pixz
Leandro N
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.