在本教程中,我们将参考Linux dd命令的一个实际示例,系统管理员可以使用该命令将以MBR或GPT布局样式分区的较大HDD的Windows操作系统或Linux操作系统迁移到较小的SSD。 在本节摘录中,我们将使用安装在具有多个分区的硬盘上的Windows系统作为示例。 在HDD以MBR方案分区并且包含具有多个逻辑分区的扩展分区或分区无序的情况下,该方法可能变得相当复杂。 如果是这样,我建议你不要使用这种方法。 在这种情况下,使用ddrescure更安全,它可以克隆整个磁盘布局(分区表和每个分区内的已使用块),而不会实际传输空的空间。 可以通过从Ubuntu主存储库安装gddrescue包获得DDrescure。

第一步 - 收缩分区

您可以使用实时Linux发行版(如Gparted)或从Ubuntu Desktop Live ISO映像运行gparted GUI实用程序,将Linux或Windows分区(缩小)调整到最小大小。 可以使用操作磁盘分区文件系统大小(ext2,ext4,NTFS,xfs)的其他付费Linux发行版是分区向导或Parted Magic 。 您还可以使用Microsoft Windows diskmgmt.msc实用程序来缩小NTFS分区。 通过缩小分区的可用空间,在巨大的分区的情况下,dd将复制未使用的磁盘块所需的时间将大大减少。 如果大型分区只占用空间的一小部分,建议缩小文件系统,因为dd实用程序还将复制进程中未使用的空间(dd还将复制所有空闲块的100GB或1 TB分区,少于使用空间的10%)。

第二步 - 克隆盘

将分区调整到最小值后,将第二个磁盘或SSD物理插入机器SATA / SCSI等控制器,并使用Live Linux发行版启动机器。 一旦Live Linux发行版已经加载到RAM中,打开Linux控制台并运行fdisk -l / dev / sda(在Windows环境中,/ dev / sda是您的Windows安装磁盘或C:驱动器),并记下最后一个“结束“部门(44898303如下图所示):

- 示例一 - 克隆MBR磁盘(Windows操作系统安装在第二个分区上)

在这段摘录中,磁盘被反转,因此/ dev / sdb表示Windows安装磁盘,并且/ dev / sda表示空的SSD。

然后使用root权限运行以下命令,以将Windows安装盘从HDD( / dev / sdb )克隆到SSD( / dev / sda )。 默认情况下,Ubuntu没有安装pv实用程序。 您可以通过运行安装它:

sudo apt install pv

然后通过发出以下命令启动克隆过程:

sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

注意:目标磁盘必须至少等于从源磁盘(包括Windows分区)直到Windows分区的所有分区占用的总空间大小。

解释上面例子中使用的命令:

dd - dd代表“复制和转换”。 有些人可能会说它代表“数据毁灭者”(如果您误导命令可能会发生严重损害)或数据重复或数据描述。 使用适合您需要的任何描述!

如果 - 源盘(in / input file)

bs - 从fdisk输出的扇区大小值(块大小或要读/写一次的字节数)

count - 从fdisk输出的最后一个“End”扇区增加一个整数(+1) - 在停止之前应复制多少个512个大小的块。 在这里,它应该传输大小为512字节的44099584扇区。

conv = sync,noerror - 同步I / O,如果在源磁盘上遇到块错误,请勿停止

| - Linux管道(Linux或FIFO中的进程间通信通道)

pv -s 21GB - 监视克隆进度 - 大约21GB应通过管道传输

的 - 管道数据实际写入的目标磁盘(输出/输出文件)

如果要使用比标准磁盘块大小(512)更大的块大小进行操作,则假定标准块大小(2048)的大小是四倍,为了加快速度,您可以进行一些简单的数学和乘法通过四个盘的标准块大小(512x4),然后将最后一个分区的+1的总数除以四。

例:

在本示例中, sda2 :44898303 + 1除以4. dd的“End”将以2048字节的块大小运行。

sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

流程完成后(取决于您的磁盘大小和速度,可能需要十分钟甚至几个小时),使用相同的sfdisk命令验证目标磁盘,并比较两个磁盘的输出。 结果应该是相似的。

- 示例二 - 克隆GPT磁盘(Windows操作系统安装在第四个分区上)

在这个摘录中, dd将以大小达到标准块大小(4096)的8倍的块大小运行,以便一次传输更多的块。 Windows操作系统驻留在硬盘的第四个分区中。 所有以前的Windows分区也必须被克隆。 磁盘将被完全复制,直到最后一个19855359扇区,代表Windows分区边界的结尾。 19855359 + 1扇区之后的数据表示Windows中的D: partition,所以这个分区对我们没有兴趣,因为我们只想克隆操作系统分区。

乘以8的标准块大小(512×8),然后将最后一个分区的+1的总数除以8,如下图所示。 代表Windows分区的sda4的“End”为19855359 + 1除以8. dd以块大小为4096字节进行操作。

sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

在这个例子中,因为我们只复制Windows操作系统,而不是第四个分区之后的整个磁盘数据,我们需要删除最后一个分区。 我们可以通过直接从控制台运行cgdisk命令行实用程序来删除它,如下面的截图所示

通过发出fdisk命令验证两个磁盘上的分区表的差异。 分区表应该类似,除了应该从克隆磁盘( / dev / sdb )中删除的/ dev / sda中的第5个分区。

第三步 - 测试克隆盘

最后,关闭机器,拔下旧硬盘,并使用新的克隆磁盘启动计算机电源。 它应该在任何时候在您的操作系统中启动。 如果机器拒绝启动,请物理验证主板上的SATA连接器,并尝试将其反转或转到BIOS / UEFI设置,并确保在启动顺序中启用了相应的磁盘。

尝试不启动机器,两个磁盘插入,因为它可能会混淆引导程序,使您的机器无法启动操作系统。 在您确认操作系统正常启动后,请使用与缩小文件系统相同的工具,通过添加未分配的空间来扩展克隆的分区。

使用这种dd方法,您可以将所有自定义设置,安装的程序和文件的所有变体的Windows或Linux操作系统从较大的HDD传输到较小的SSD,而无需从头开始安装操作系统的负担,并花费大量时间来自定义。

linux dd 硬盘克隆,如何使用Linux dd命令克隆磁盘相关推荐

  1. linux 缩小硬盘镜像,缩小qcow2格式kvm虚拟镜像磁盘大小[转]

    qcow2格式的虚拟磁盘初始容量设置过大,虽然并不会实际占用主机这么大的磁盘空间,只占用客户机实际使用的空间大小,但有时候还是有些不太方便,所以需要将其收缩(shrink)以下. qemu-img命令 ...

  2. linux系统硬盘数据恢复软件下载,Linux硬盘数据恢复软件

    DiskInternals Linux Recovery是一款为Linux系统用户准备的硬盘数据恢复工具,相较于windows系统来说Linux系统的用途大部分还是用于办公,所以硬盘中的数据文件都比较 ...

  3. linux添加硬盘分区设置柱面,Linux添加硬盘并分区格式化

    一.Linux的硬盘识别 2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如: sda        表示第1块SCSI硬盘. hda        表示第 ...

  4. grub 硬盘安装linux,Grub4Dos硬盘安装Fedora/CentOS Linux操作系统

    从硬盘安装Linux/GNU操作系统,有不需要光盘驱动器及刻录光盘等便利特点,因而具有实用价值.本文描述了Windows XP环境下使用Grub4Dos进行硬盘安装Fedora/CentOS Linu ...

  5. linux添加硬盘分区设置柱面,linux 下添加新硬盘设备和硬盘分区格式化挂载使用磁盘配额限制...

    磁盘管理 1.查看硬盘设备信息 fdisk -l 2.磁盘分区.格式化.挂载使用 1).查看硬盘信息:fdisk -l [root@localhost ~]# fdisk -l Disk /dev/s ...

  6. linux系统硬盘ghost吗,将linux硬盘ghost到另一颗去

    将linux硬盘ghost到另一颗去 发布时间:2005-09-29 00:04:16来源:红联作者:cha 要将linux完完全全的备份到另一颗抽取式硬盘,如果linux挂了,可以立刻升上来备援!! ...

  7. linux 在硬盘中创建文件系统,linux mkfs命令创建Linux文件系统

    功能描述 使用mkfs命令可以在分区上创建各种文件系统.mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.这里的文件系统是要指定的,如ext4.ext3.vfat或msdos等. ...

  8. linux系统硬盘设置密码,LUKS:Linux下磁盘加密

    Linux下磁盘加密 LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令.因为它的加密密钥独立于口 ...

  9. linux对硬盘进行分区吗,Linux下如何对硬盘进行分区

    免费资源网,https://freexyz.cn/在linux系统下,如想使用一块新的硬盘,需要经历分区.格式化.挂载等操作,然后才能够使用该硬盘.如想学好如何进行分区,需要掌握好几个相关的命令才行. ...

  10. linux挂载硬盘的分区创建,Linux 新增硬盘、新建分区、格式化硬盘、挂载硬盘的操作...

    今天学校有一台机器发现有块硬盘没有挂载,然后叫我挂载一下,这里记录一下 Linux 下新增硬盘分区.格式化硬盘.挂载硬盘的操作. 查看当前硬盘 首先我们查看一下当前的硬盘配置.使用命令 sudo fd ...

最新文章

  1. Linux自动化测试monkey,APP自动化测试中Monkey和 MonkeyRunner
  2. docker 的资源控制和数据管理
  3. 快手app sig3算法分析
  4. MySql连接异常解决
  5. java生成flash_web-flash发布了代码生成插件
  6. java spring hiberate_Java程序员:Spring Boot和Hibernate一起使用的技巧
  7. curd日志记录php,ThinkPHP学习之CURD操作(一)
  8. 尾调用优化 java_基于Java8函数式编程求一个List的全部子集|尾调用优化解决递归性能问题...
  9. [转载] OpenCV-Python 图像处理(二):图像的读取、显示与保存
  10. PowerDesigner 11 一些小技巧
  11. OpenCV人工智能图像处理学习笔记 第4章 线段文字绘制
  12. 【POJ 3281】Dining【最大匹配、拆点】
  13. coon's patch
  14. Spring MVC 接口返回406错误
  15. 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了
  16. 将svg编译成字体图标
  17. 这几个消除笔软件,值得你们收藏
  18. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单
  19. android studio将一个页面信息传送到另一个页面并显示
  20. java斗地主发牌代码_[Java源码]扑克牌——斗地主发牌实现

热门文章

  1. ssm实战(1)------数据库表结构
  2. 那些年,我们一起做过的 Java 课后练习题(51 - 55)
  3. Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
  4. 供应链管理的五大策略
  5. 时间序列分析学习笔记:时间序列的预处理(平稳性检验、纯随机性检验)
  6. 国庆福利大放送:12本《码农翻身》+18本经典书包邮免费送
  7. 推荐 :快速掌握spacy在python中进行自然语言处理(附代码链接)
  8. php计算一年多少周,同时计算出这一周的开始时间和结束时间(可选返回时间戳或日期)
  9. excel单元格数字拆分比较
  10. RAKsmart:美国服务器租用对建站有哪些帮助?