我有一个16 USB的金斯敦DataTraveler2.0闪存盘:

这个USB闪存的奇怪之处在于,尽管我的闪存盘是零填充的:
# dd if=/dev/zero of=/dev/sdc bs=10M
dd: writing `/dev/sdc': No space left on device
1490+0 records in
1489+0 records out
15614803968 bytes (16 GB) copied, 3837.37 s, 4.1 MB/s
# ..it仍然表示自己,就像它有一个分区:
# fdisk -l /dev/sdc*
Disk /dev/sdc: 15.6 GB, 15614803968 bytes
64 heads, 32 sectors/track, 14891 cylinders, total 30497664 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
Disk identifier: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdc1: 241 MB, 241172480 bytes
64 heads, 32 sectors/track, 230 cylinders, total 471040 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
Disk identifier: 0x00000000
Disk /dev/sdc1 doesn't contain a valid partition table
# gdisk为/dev/sdc和/dev/sdc1显示了不同的GUID。如果我将dmesg的输出用于sdc1,那么只有输出是:
[21329562.191413] sdc: sdc1如何理解这样的闪存?
发布于 2016-02-06 23:30:49
内核在内存中维护分区表的副本。它实际上不记得分区表的存储位置,因此它无法检测到磁盘上的分区表是否发生了更改。这就是为什么你仍然看到以前的分区。
您需要告诉内核再次解析磁盘以更新其内存分区表。运行partprobe /dev/sdc。分区工具(如fdisk )在将新的分区表写入磁盘时为您执行此操作,但如果直接写入磁盘,则需要手动通知内核。
https://unix.stackexchange.com/questions/260110
复制相似问题