像桌面版的Clonezilla应用程序?


11

我正在寻找一种在保留在Ubuntu OS内部的同时克隆硬盘驱动器(主要是Windows分区)的方法。我不想在硬盘驱动器上创建要启动的分区,也不想使用启动CD。我什至能想到的唯一的事情就是可以从Windows桌面运行的32位版本的Ghost。

它不一定是clonezilla,但是那是我使用过的唯一的linux克隆软件,并且自从发现它以来几乎就一直使用它。如果无法从桌面使用clonezilla,那么我将接受替代程序。最主要的是,它克隆了驱动器并从Ubuntu内部运行。

谢谢你的时间

Answers:


6

Clonezilla dd在后台使用。

关于磁盘和分区

整个磁盘就是类似的设备/dev/sda。这是第一盘,第二盘是/dev/sdb,第三/dev/sdc等通过IDE电缆连接的较早的磁盘被命名为喜欢hdahdb...的盘可以有像多个分区/dev/sda1。磁盘上的第二个分区/dev/sda/dev/sda2,依此类推。可以从分区和磁盘上制作图像(字节的文字副本)。请注意,磁盘的前512个字节包含MBR(主引导记录)。

创建或还原映像时,不应挂载分区,否则从其读取(创建映像)时可能会丢失数据,或者如果您正在写入分区(从映像还原),则可能会发生意外的行为和数据损坏。

在以下示例中,/dev/sda1是应从中创建映像的分区。

分区和磁盘设备/dev只能由超级用户(root)和该disk组的用户写入。我不喜欢以root用户身份运行所有内容,因此为了安全起见(例如,如果您输入错字),我将组临时更改为自己,这样我就可以对其进行读写:

sudo chgrp my_user_name /dev/sda1

如果您跳过上述命令,则必须在以下dd命令前面加上sudo

基本

从分区创建映像的基本命令是:

dd if=/dev/sda1 of=disk.img

if表示“输入文件”,of表示“输出文件”。Linux中的所有内容都是文件,甚至是设备。

要还原此类图像,请运行:

dd if=disk.img of=/dev/sda1

顺序无关紧要,您也可以编写以上内容dd of=/dev/sda1 if=disk.img

压缩图像

由于分区通常很大,因此建议先压缩数据,然后再将其写入映像:

dd if=/dev/sda1 | gzip > disk.img.gz

of是可行的,因为如果省略,则将输出写入“标准输出”,这是连接到compress程序的管道gzip。的输出将写入disk.img

要恢复这样的压缩映像,请运行:

gunzip -c disk.img.gz | dd of=/dev/sda1

gunzip是gzip的反向命令。-c导致将输出写入标准输出,该标准输出是dd命令的管道。因为if在上省略了dd,所以将从“标准输入”(即的输出)读取输入gunzip

从图像读取而不还原图像

可以装入未压缩的图像,以便您可以读取它。如果您已经压缩了分区映像,请先解压缩它们(disk.img.gz将被删除,disk.img将被创建。请确保有足够的空间!):

gunzip disk.img.gz

或者,解压缩图像而不触摸图像本身:

gunzip -c disk.img.gz > disk.img

现在创建一个可以在其上安装磁盘的目录,并以只读方式安装映像(ro):

sudo mkdir /mnt/wind
sudo mount -o ro disk.img /mnt/wind

您现在可以在中查看文件/mnt/wind。完成后,卸载它并删除过时的安装点:

sudo umount /mnt/wind
sudo rmdir /mnt/wind

尺寸更小,CPU使用率更高,备份和还原时间更长

如果时间不是问题,并且您没有太多存储空间,则可以使用bzip2压缩格式。只需在上面替换gzipbzip2.bz2对bzip2压缩的文件使用扩展名是很常见的,因此请这样做。


作为那个clonezilla使用dd,那实际上就是我想要的。我假设第一篇文章中的命令是有效的,因为我要磁盘到磁盘。感谢您的澄清。
Ctuchik 2011年

第一个答案是正确的,但没有提到管道方法。我需要从运行tinycorelinux的4GB闪存驱动器中备份只有150MB数据的20GB磁盘。显然,20GB的未压缩数据无法满足此要求,因此我不得不使用此管道方法。
Lekensteyn 2011年

@Lekensteyn使用管道方法节省空间的好方法。感谢您的见解
Amey Jah

全部写完之后,答案是-否:)另外,“在创建或还原映像时不应挂载分区(...)”,因此无法对系统分区/磁盘进行映像。
2012年

感谢您提供非常有教育意义的指南。我运行了这些命令并进行了压缩,但是图像文件的大小比我的系统(!)大。你知道为什么吗?@Lekensteyn
Heisenberg

4

是否要将一个硬盘克隆到另一个硬盘?有几种方法可以做到这一点。我通常更喜欢dd命令。请注意,要使用此命令,您将需要sudo访问。

  1. 要将硬盘1克隆到硬盘2中。请注意,硬盘2的大小必须大于硬盘1的大小。如果源硬盘是sda,目标硬盘是sdb,则可以使用以下命令将sda的所有内容复制到sdb中命令。

    dd if=/dev/sda of=/dev/sdb
    
  2. 要将整个硬盘1克隆到映像中,请使用以下命令。请注意〜/ disk1.img应该位于其他磁盘上

    dd if=/dev/sda of=~/disk1.img
    
  3. 要将单个分区克隆到映像中,请使用以下命令。请注意,映像文件不应位于同一分区上。

    dd if=/dev/sda1 of=~/drive1.img
    
  4. 要还原映像,请使用以下命令。

    dd if=drive1.img of=/dev/sda1 - For Partition
    dd if=disk1.img of=/dev/sda   - For whole hard disk
    
  5. 您还可以通过压缩图像文件来节省空间。

    gzip disk1.img  - This will generate disk1.img.gz
    bzip2 disk1.img - This will generate disk1.img.bz2
    

礼貌:Linux备份:带有“ dd”的硬盘克隆


我实际上是想从一个驱动器转到另一个驱动器。我需要工作的主要内容是复制后在Windows驱动器上维护注册表。我对DD的问题是,我听说过一些故事,在克隆过程中可能要花费非常长的时间,有时甚至是一天。我根本没有时间克隆驱动器。对于幽灵,我知道平均时间约为2-3小时(我使用同事的Windows计算机)。我真的不需要成像功能,尽管很高兴知道这是可能的。如果DD满足这些要求,尽管我一定会试一试。
Ctuchik

@Ctuchik dd将简单地从一个字节复制到另一个字节。因此,IMO应该保留注册表,因为它可以精确复制硬盘。虽然我不知道如果窗口在注册表上维护硬盘信息会有什么影响。因为我确实记得Windows具有启动配置文件,所以它实际上会记住您的引导扇区和硬盘信息。试试看,让我们知道。
Amey Jah

@Ctuchik我读了一些书。Windows似乎足够聪明(:P)来检测新硬盘。因此,如果克隆硬盘,请确保卸下旧硬盘并连接最新的硬盘。根据先前的配置和mbr的位置,您可能必须使用Windows cd进行fixmbr或fixboot。遵循此线程获取克隆xp(使用dd)的实际说明和过程justlinux.com/forum/showthread.php?threadid=134457
Amey Jah

好的,可能要过几天,我才需要为客户端进行克隆,但是如果这样做,那么我将使用结果更新此线程。感谢您的迅速答复。
Ctuchik

将映像还原到新的(更大)磁盘时,我必须重新激活WinXP。请记住,类似的事情可能会发生。
Lekensteyn 2011年
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.