Answers:
Clonezilla dd
在后台使用。
整个磁盘就是类似的设备/dev/sda
。这是第一盘,第二盘是/dev/sdb
,第三/dev/sdc
等通过IDE电缆连接的较早的磁盘被命名为喜欢hda
,hdb
...的盘可以有像多个分区/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
如果时间不是问题,并且您没有太多存储空间,则可以使用bzip2
压缩格式。只需在上面替换gzip
为bzip2
。.bz2
对bzip2压缩的文件使用扩展名是很常见的,因此请这样做。
是否要将一个硬盘克隆到另一个硬盘?有几种方法可以做到这一点。我通常更喜欢dd命令。请注意,要使用此命令,您将需要sudo访问。
要将硬盘1克隆到硬盘2中。请注意,硬盘2的大小必须大于硬盘1的大小。如果源硬盘是sda,目标硬盘是sdb,则可以使用以下命令将sda的所有内容复制到sdb中命令。
dd if=/dev/sda of=/dev/sdb
要将整个硬盘1克隆到映像中,请使用以下命令。请注意〜/ disk1.img应该位于其他磁盘上
dd if=/dev/sda of=~/disk1.img
要将单个分区克隆到映像中,请使用以下命令。请注意,映像文件不应位于同一分区上。
dd if=/dev/sda1 of=~/drive1.img
要还原映像,请使用以下命令。
dd if=drive1.img of=/dev/sda1 - For Partition
dd if=disk1.img of=/dev/sda - For whole hard disk
您还可以通过压缩图像文件来节省空间。
gzip disk1.img - This will generate disk1.img.gz
bzip2 disk1.img - This will generate disk1.img.bz2