无法克隆硬盘,dd 无空间

无法克隆硬盘,dd 无空间

我正在尝试将基本操作系统从主硬盘移动到外部硬盘。因此,我可以从外部硬盘启动基本操作系统并在主硬盘上安装 Windows 10。

休博特开启超级用户堆栈交换建议我使用这个命令:

$ dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync

然而,在复制了相当长的时间后,该命令失败了。说没有空间了。我想这就像将磁盘克隆到另一个磁盘,甚至是可用空间。

我的主硬盘较大,外部硬盘较小,但主硬盘上的数据很少。

斯达

在此输入图像描述

答案1

dd只是将其输入复制到输出。如果输入是磁盘映像,则输出是相同大小的磁盘映像。您无法将磁盘复制到较小的磁盘。相反,您需要在目标磁盘上创建较小的分区,在这些分区上创建较小的文件系统,然后复制文件。

这里最简单的方法是收缩/home文件系统,然后收缩包含它的分区,以便您想要复制的所有内容都适合目标磁盘。我认为 GParted 可以做到这一点。如果不能,或者如果您更喜欢命令行解决方案,请首先运行resize2fs以收缩文件系统/dev/sda3(必须卸载),然后/dev/sda3使用parted或收缩分区fdisk。调整分区大小时要非常小心:如果您不小心使其小于文件系统,文件系统可能会变得不可用。

一旦所有分区都适合目标磁盘的大小,您就可以进行直接复制(cat /dev/sda >/dev/sdb-不要使用dd,它是慢点容易出错)。

答案2

您的命令正在尝试将整个磁盘 (if=/dev/sdX) 复制到外部驱动器。我猜测您的 Linux 安装与 Windows 安装位于不同的分区上。因此您需要指定该分区。例如if=/dev/sda1。您可能不需要为外部磁盘指定分区,所以of=/dev/sdY应该没问题。

要找出分区,您可以启动 Linux 操作系统,df -h或者(以 root 身份)fdisk -l将为您提供分区信息。

相关内容