使用 DD 将硬盘从较小的硬盘克隆到较大的磁盘后增加分区大小

使用 DD 将硬盘从较小的硬盘克隆到较大的磁盘后增加分区大小

我有一个 320GB 的硬盘连接到一台 Debian 机器上,还有一个新的 2TB 驱动器,这将是较小驱动器的升级。

我刚刚尝试使用以下命令将较小的驱动器克隆到较大的驱动器:

sudo dd if=/dev/disk5 of=/dev/disk2 bs=4096 conv=sync,noerror

然而,这导致 2TB 驱动器显示为 320GB。

当我运行时(当我从 mac 进行克隆,然后将驱动器插入 debian 机器时,sda 编号已更改):

sudo fdisk -u /dev/sda1

我得到以下输出,显示 2TB 驱动器已缩小为较小的驱动器尺寸。

Disk /dev/sda1: 298.1 GiB, 320071884800 bytes, 625140400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5094580b`

如何扩展驱动器以显示其全部容量,最好不必dd再次扩展,因为这需要很长时间?

我试过了:

sudo resize2fs /dev/sda1

但这没有任何作用。它给出以下输出:

The filesystem is already 78142550 (4k) blocks long.  Nothing to do!

更新:

如果我运行:

sudo fdisk -l

我得到以下信息:

Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x54bd406a

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 625142447 625140400 298.1G 83 Linux

答案1

dd不知道什么是文件系统或什么是分区。您的问题是 resize2fs 只会调整文件系统的大小而不是分区的大小。我建议使用partclone而不是,dd但由于您已经复制了整个磁盘,因此您只需重新创建分区。

确认这/dev/sda是正确的磁盘。我喜欢使用/dev/disk/by-id//dev/disk/by-label/

sudo fdisk /dev/sda

O大写的O!然后另存为backup.mbr

o创建一个新的 DOS 表

p确认扇区大小为512,单位为扇区。

n创建一个新分区。确认第一个扇区位于 2048,这是分区之前开始的位置。

但这一次让最后一个扇区到磁盘的末尾。

它已经默认为 Linux 文件系统,但如果您需要这样做,它t和代码20

p确认分区表是你想要的样子。

w将这些更改写入磁盘。

我建议也运行partprobe

终于跑了resize2fs /dev/sda1

答案2

我已使用 将较小的磁盘克隆到较大的磁盘dd,然后扩展(使用gparted)分区以填充较大目标磁盘上的剩余空间。

答案3

在您的 Mac 上,它似乎/dev/disk2实际上是新磁盘上的一个分区,而不是磁盘本身。结果是您已将旧磁盘克隆到新磁盘上的分区。所以磁盘仍然是 2TB,但它的第一个分区(/dev/sda1在基于 Linux 的系统上)是 300GB 的克隆。

您需要将磁盘复制到磁盘,而不是磁盘到分区。我无法轻松访问 Mac,因此无法建议您如何找到合适的磁盘设备名称。

在基于 Linux 的系统上,您将查找/dev/sdX(whereX是字母) 而不是/dev/sdXN(whereX是字母且N是数字)。

cat /dev/sda >/dev/sdb    # This will clone disk sda to disk sdb

相关内容