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