dd 命令写入 /dev/sdc 更改了磁盘大小

dd 命令写入 /dev/sdc 更改了磁盘大小

我使用dd命令直接写入/dev/sdc(外挂硬盘1TB大小),以测试原始模式下的各种写入速度。 (我不关心磁盘上的任何数据)。现在 fdisk 或 gparted 报告的磁盘大小是我写入的数据的大小,我不知道如何恢复完整的磁盘大小。

我使用的命令是:

dd if=/dev/urandom of=/dev/sdc bs=4096 count=[大数]

如下所示,如果我使用此命令写入 128KB 数据,则 fdisk 会报告驱动器大小仅为 128KB。当我尝试写入最多 1TB 的数据时,它会停止在 30GB,并出现设备已满错误。

我尝试过删除并重新创建分区表,但由于该软件仅识别较小的驱动器大小,因此没有帮助。

如何恢复完整的驱动器大小?

PS 我也尝试从 if=/dev/zero 写入。速度为 5GB/s,最终停在 32GB 位置。

PPS 我还尝试断开驱动器的电源并重新启动它,认为内存中有某些东西导致了问题。同样的问题。

# fdisk -l /dev/sdc

Disk /dev/sdc: 29.5 GiB, 31633203200 bytes, 61783600 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

#try to write to entire drive:
# dd if=/dev/zero of=/dev/sdc bs=65536 count=15258788 status=progress

26753171456 bytes (27 GB, 25 GiB) copied, 5.00001 s, 5.4 GB/s
dd: error writing '/dev/sdc': No space left on device
482685+0 records in
482684+0 records out
31633203200 bytes (32 GB, 29 GiB) copied, 5.89003 s, 5.4 GB/s

# dd if=/dev/urandom of=/dev/sdc bs=65536 count=2 status=progress
2+0 records in
2+0 records out
131072 bytes (131 kB, 128 KiB) copied, 0.000660426 s, 198 MB/s

# fdisk -l /dev/sdc
Disk /dev/sdc: 128 KiB, 131072 bytes, 256 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

# dd if=/dev/urandom of=/dev/sdc bs=65536 count=15258788 status=progress
31624462336 bytes (32 GB, 29 GiB) copied, 136 s, 233 MB/s     
dd: error writing '/dev/sdc': No space left on device
482685+0 records in
482684+0 records out
31633203200 bytes (32 GB, 29 GiB) copied, 136.038 s, 233 MB/s

答案1

由于某种原因,块特殊设备文件 /dev/sdc 不存在,可能是因为当时未连接驱动器。然后,该dd命令将文件创建为普通文件,可能在根文件系统上,这给出了观察到的结果。

相关内容