Partition
帶有硬編碼分區的 USB 快閃記憶體驅動器
我有一個金士頓 DataTraveler 2.0 16GB USB 快閃記憶體驅動器:
這個 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 #
..它仍然代表自己,就像它有一個分區:
# 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
為和顯示不同的 GUID/dev/sdc1
。如果我 grepdmesg
for sdc1 的輸出,那麼只有輸出是:[21329562.191413] sdc: sdc1
如何理解這種快閃記憶體驅動器?
核心在記憶體中維護分區表的副本。它實際上並不記得分區表儲存在哪裡,因此它不會檢測到分區表在磁碟上發生了變化。這就是為什麼您仍然看到以前存在的分區的原因。
您需要告訴核心再次解析磁碟以更新其記憶體分區表。執行
partprobe /dev/sdc
。諸如分區工具之類的分區工具fdisk
在將新的分區表寫入磁碟時會為您執行此操作,但是如果您直接寫入磁碟,則需要手動通知核心。