简而言之,如果我做dd
磁盘到磁盘(例如/dev/sda
to /dev/sdb
),是否也复制了整个磁盘的容量?
例如,如果sda
实际上是 1TB 和sdb
2TB,在 之后dd
,Linux 系统会认为sdb
是 1TB 还是 2TB?
我假设磁盘容量记录在单独的 ROM 或小型非易失性存储器中,而不是磁盘的任何扇区。或者,可能始终保留物理磁盘的几个扇区。
我想以最小的痛苦将旧 1TB 硬盘上的系统迁移到新的 2TB 硬盘。旧磁盘将不会被使用。我想dd
可能会。我唯一不确定的部分是如果我这样做dd
并且磁盘容量的大小就像分区表一样被复制,新的 2TB 磁盘将变为 1TB。我想在实际做之前先确认一下dd
。
我的谷歌搜索没有结果,所以最后我决定在这里发布一个问题。
如果所有系统都是 Linux,我会考虑rsync
分区到分区 & grub-install
。但是,不幸的是,我有一个 Windows 并且没有 Windows 安装 USB。我不确定如何在rsync
.
盘片/磁头的实际“物理”方面的 HDD 大小存储在内部 ROM 中,但用户不可访问。现代 HDD(和 SSD)公开了一种称为 LBA(逻辑块寻址)的抽象,它基本上告诉操作系统磁盘有多少个用户可寻址扇区。
dd
简单地读取直到 EOF(文件结束),它可以是磁盘或分区的结尾。将整个 1 TB 磁盘复制到 2 TB 磁盘后,dd
目标磁盘上的分区空间最多为 1 TB - 即:原始 MBR/GPT 对最后的额外空间一无所知。想想一个放在一个大盒子里的小盒子:小盒子里的物体对可用的外层空间一无所知。同时,要使用 2 TB 磁盘提供的额外空间,您需要修改原始 MBR/GPT,创建额外分区或扩展最后一个分区。
当通过
cp
或工具在用户级别进行复制时rsync
,您不需要这样做,因为您的 2 TB 磁盘将(希望)已经分区以使用所有可用空间,文件系统大小相应。