因此,当我将笔记本电脑 SSD 中的分区 3(下面的分区表)添加到具有相同分区表的更大 USB 驱动器时,出现了一个奇怪的错误。写入约 3-4GB(预计写入 >75GB)后,我收到dd
“设备上没有剩余空间”的错误。
我得到这个结果:
$ sudo dd status=progress if=/dev/sda3 of=/dev/sdb3
[sudo] password for erick:
3977882112 bytes (4.0 GB, 3.7 GiB) copied, 11 s, 362 MB/s
dd: writing to '/dev/sdb3': No space left on device
8016353+0 records in
8016352+0 records out
4104372224 bytes (4.1 GB, 3.8 GiB) copied, 11.3585 s, 361 MB/s
以下分别是 /dev/sda 和 /dev/sdb 的分区表:
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 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: gpt
Disk identifier: 40F4F8E1-63F2-4AE7-B768-4AC7D97A473B
Device Start End Sectors Size Type
/dev/sda1 2048 514047 512000 250M EFI System
/dev/sda2 514048 1538047 1024000 500M Linux filesystem
/dev/sda3 1538048 160374783 158836736 75.8G Linux filesystem
/dev/sda4 160374784 193011711 32636928 15.6G Linux swap
/dev/sda5 193011712 250068991 57057280 27.2G Linux filesystem
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 229.1 GiB, 246021095424 bytes, 480509952 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: gpt
Disk identifier: 40F4F8E1-63F2-4AE7-B768-4AC7D97A473B
Device Start End Sectors Size Type
/dev/sdb1 2048 514047 512000 250M EFI System
/dev/sdb2 514048 1538047 1024000 500M Linux filesystem
/dev/sdb3 1538048 160374783 158836736 75.8G Linux filesystem
/dev/sdb4 160374784 193011711 32636928 15.6G Linux swap
/dev/sdb5 193011712 250068991 57057280 27.2G Linux filesystem
答案1
那么“df -h”(对于 inode 也可以是“df -i”)和“当前”分区上剩余的空间怎么样,即 dd 不会将临时数据存储在某处(例如 /tmp)并在将所有内容移动到最终目的地之前填充它吗?
这可能不是您想要的,但它可能会有所帮助。
除非您希望自动执行此操作,否则我会尝试从实时 CD 运行 ddrescue,而不是从正在运行的操作系统运行“常规”dd。这是我个人为“一次性”复制所做的操作,如果适用,甚至复制整个磁盘。