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

我需要制作一个80GB硬盘的(最好)可安装的图像,并将其存储在另一个硬盘上。 有没有办法可以做到这一点而不会丢失数据?

感谢我到目前为止收到的答案。 由于电源按钮问题,现在无法使用该系统:( [唉!],但信息真的很有用=)! 感谢所有回答到目前为止的人,如果有人想给我一些提示,我会暂时保持开放状态,因为我还没有能够克隆驱动器。

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

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

这将生成分区的可安装映像。 请注意,这可能需要一段时间,图像将具有分区的大小,而不是其上的文件。 在你的情况下,这将是80GB。 如果压缩图像,它应该与硬盘的已用空间大小相当。

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

通过LAN成像

在备份机器上运行:

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

在源机器上运行:

 dd if=/dev/sda | nc server2 12345 

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

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

Remastersys

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

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

现在关闭软件源窗口并等待刷新并重新安装remastersys。

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

 sudo apt-get install pv 

您正在复制的驱动器不需要安装,如果要从损坏的驱动器恢复数据,最好不要以读/写模式安装。 您对驱动器所做的任何操作都有可能覆盖已删除的数据或导致进一步损坏文件系统。 此时进行一点复制的目的是在不使数据处于进一步风险的情况下启用恢复。

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

 sudo fdisk -l 

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

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

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

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

为了获得一个方便的进度条和ETA完成,通过pv管道dd命令:

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

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

如果你想看到进展,也不介意命令行,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从管道(前一个命令的stdout)获取stdin并充当filter。 输出重定向将文件放到设备或图像文件中。

我不知道它是用块运行的,但我怀疑Linux正在为我做所有缓冲,并在硬件级别通过块读取/写入数据。

那样,使用dd有一个很大的优势吗? 我可以看到我们是在读取还是写入磁盘的特定部分(例如,如果你想从图像中提取分区,将端点从fdisk中删除或分开),但是为了垃圾邮件整个磁盘,我真的更喜欢简单命令。