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バイトのセクターが必要です。
さて、コンピュータサイエンスでは、「ここからは行けません」と言うのはあまり好きではありませんが、この場合は四角いペグを丸い穴に合わせようとしています。
セクターサイズは通常[〜#〜] device [〜#〜]によって設定されます。報告されている2048Bのセクターサイズは、CD/DVDドライブではnormalですが、512B(または520B-これが私が通常言った理由です-一部のハードドライブ)実際には512から520に切り替えることができます)。
fdiskを実行すると、メディアセクターのサイズが2048Bであることが明確に示されました。それを簡単に変更することはできません。おそらく、それを変更することはできません期間。 USBドライブの製造元に問い合わせて、そのデバイスのセクターサイズをリセットするために利用できるツールがあるかどうかを確認するか、ストア(Walmart?Target?Staples?名前を付けてください!)にドライブして使用することができます。新しいUSBスティックを購入するには5ドルから10ドル。
にとって:
警告: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);
}
}
最初の警告を出すコードスニペットです。セクターサイズが設定されている場合に見られるように、デバイスの最小論理セクターサイズを取得し、最小セクターサイズよりも小さいセクターサイズを指定すると、警告が表示され、最小セクターサイズがセクターサイズとして割り当てられます。