Filesystems
如何將 1GB USB 記憶棒格式化為 512 字節扇區的 FAT32?
我正在努力格式化一個 1GB 的 USB 記憶棒,以便我可以用它來安裝新的 linux 作業系統。因為磁碟實用程序在創建文件系統時讓我失敗了。我嘗試
fdisk
通過以下步驟手動創建主引導記錄和 1GB 分區:# fdisk /dev/sdc Command (m for help): p Disk /dev/sdc: 994.5 MiB, 1042808832 bytes, 509184 sectors Units: sectors of 1 * 2048 = 2048 bytes Sector size (logical/physical): 2048 bytes / 2048 bytes I/O size (minimum/optimal): 2048 bytes / 2048 bytes Disklabel type: dos Disk identifier: 0x967a68db Device Boot Start End Blocks Id System /dev/sdc1 * 1 509183 1018366 b W95 FAT32 Command (m for help): o Created a new DOS disklabel with disk identifier 0x727b4976. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (512-509183, default 512): Last sector, +sectors or +size{K,M,G,T,P} (512-509183, default 509183): Created a new partition 1 of type 'Linux' and of size 993.5 MiB. Command (m for help): v Partition 1: cylinder 253 greater than maximum 252 Partition 1: previous sectors 509183 disagrees with total 507835 Remaining 511 unallocated 2048-byte sectors. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
然後我嘗試將其格式化為 512 字節扇區大小的 FAT32 文件系統,但它說允許的最小值為 2048 字節。
# mkfs.fat -v -F 32 -S 512 /dev/sdc1 mkfs.fat 3.0.26 (2014-03-07) Warning: sector size was set to 2048 (minimal for this device) WARNING: Not enough clusters for a 32 bit FAT! /dev/sdc1 has 33 heads and 61 sectors per track, hidden sectors 0x0800; logical sector size is 2048, using 0xf8 media descriptor, with 508672 sectors; drive number 0x80; filesystem has 2 32-bit FATs and 8 sectors per cluster. FAT size is 125 sectors, and provides 63548 clusters. There are 32 reserved sectors. Volume ID is 1ab3abc1, no volume label.
我需要 512 字節的扇區,因為
syslinux
不支持更大的扇區大小。
好的,所以在電腦科學中,我不太喜歡說“你不能從這裡到達那裡”,但在這種情況下,你試圖將一個方形釘子安裝到一個圓孔中。
扇區大小通常由DEVICE設置。報告的 2048B 扇區大小對於 CD/DVD 驅動器來說是正常的,而 512B(或 520B——這就是我通常說的原因——一些硬碟驅動器實際上可以從 512 切換到 520 並返回)。
當您執行fdisk時,它清楚地顯示媒體扇區大小為2048B。你不能輕易改變它,而且很可能你也不能改變那個時期。您可以嘗試聯繫 USB 驅動器的製造商,看看是否有可用的工具來重置該設備上的扇區大小……或者您可以開車去商店(沃爾瑪?目標?史泰博?你的名字!)並花費這 $ 5 to $ 10 買一個新的 U 盤。
為了:
警告:32 位 FAT 沒有足夠的群!
您可以在 mkfs.fat 命令中使用 -s2 參數。
另一方面
if (sector_size_set) { if (ioctl(dev, BLKSSZGET, &min_sector_size) >= 0) if (sector_size < min_sector_size) { sector_size = min_sector_size; fprintf(stderr, "Warning: sector size was set to %d (minimal for this device)\n", sector_size); } }
是給出第一個警告的程式碼片段。如所見,如果設置了扇區大小,它將獲得設備的最小邏輯扇區大小,如果給定的扇區大小低於最小扇區大小,則會給出警告並將最小扇區大小分配為扇區大小。