我有一个 320GB 的硬盘连接到一台 Debian 机器上,还有一个新的 2TB 驱动器,这将是较小驱动器的升级。
我刚刚尝试使用以下命令将较小的驱动器克隆到较大的驱动器:
sudo dd if=/dev/disk5 of=/dev/disk2 bs=4096 conv=sync,noerror
Run Code Online (Sandbox Code Playgroud)
然而,这导致 2TB 驱动器显示为 320GB。
当我运行时(当我从 mac 进行克隆,然后将驱动器插入 debian 机器时,sda 编号已更改):
sudo fdisk -u /dev/sda1
Run Code Online (Sandbox Code Playgroud)
我得到以下输出,显示 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`
Run Code Online (Sandbox Code Playgroud)
如何扩展驱动器以显示其全部容量,最好不必再次扩展,dd因为这需要很长时间?
我试过了:
sudo resize2fs /dev/sda1
Run Code Online (Sandbox Code Playgroud)
但这没有任何作用。它给出以下输出:
The filesystem is already 78142550 (4k) blocks long. Nothing to do!
Run Code Online (Sandbox Code Playgroud)
更新:
如果我运行:
sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
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
Run Code Online (Sandbox Code Playgroud)
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
在您的 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
Run Code Online (Sandbox Code Playgroud)