Filesystems

如何將 1GB USB 記憶棒格式化為 512 字節扇區的 FAT32?

  • August 14, 2014

我正在努力格式化一個 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);
       }
}

是給出第一個警告的程式碼片段。如所見,如果設置了扇區大小,它將獲得設備的最小邏輯扇區大小,如果給定的扇區大小低於最小扇區大小,則會給出警告並將最小扇區大小分配為扇區大小。

引用自:https://unix.stackexchange.com/questions/150197