web-dev-qa-db-ja.com

1GBのUSBスティックを512バイトのセクターでFAT32にフォーマットする方法は?

1GBのUSBスティックをフォーマットして、新しいLinuxOSをインストールできるようにしようとしています。ファイルシステムの作成時にディスクユーティリティが失敗したためです。 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.

syslinuxはより大きなセクターサイズをサポートしていないため、512バイトのセクターが必要です。

1

さて、コンピュータサイエンスでは、「ここからは行けません」と言うのはあまり好きではありませんが、この場合は四角いペグを丸い穴に合わせようとしています。

セクターサイズは通常[〜#〜] device [〜#〜]によって設定されます。報告されている2048Bのセクターサイズは、CD/DVDドライブではnormalですが、512B(または520B-これが私が通常言った理由です-一部のハードドライブ)実際には512から520に切り替えることができます)。

fdiskを実行すると、メディアセクターのサイズが2048Bであることが明確に示されました。それを簡単に変更することはできません。おそらく、それを変更することはできません期間。 USBドライブの製造元に問い合わせて、そのデバイスのセクターサイズをリセットするために利用できるツールがあるかどうかを確認するか、ストア(Walmart?Target?Staples?名前を付けてください!)にドライブして使用することができます。新しいUSBスティックを購入するには5ドルから10ドル。

1
IT4SOHO

にとって:

警告: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);
        }
}

最初の警告を出すコードスニペットです。セクターサイズが設定されている場合に見られるように、デバイスの最小論理セクターサイズを取得し、最小セクターサイズよりも小さいセクターサイズを指定すると、警告が表示され、最小セクターサイズがセクターサイズとして割り当てられます。

2
alpert