HOME / コンピュータTips / Solaris / fat,fat32Formatを行う
Date: 2009/05/10 | | Tags: Solaris, OpenSolaris, USBメモリ, FAT, FAT32, pcfs, Format, Zpool名, 消去, フォーマット
FAT/FAT32フォーマットは、古くはMSDOSで作られ、FAT12、FAT16、FAT32と進化してきました。Windows95OSR2の時期からは、市場のHDDのサイズがFAT16のサイズ限界(理論値4G、通常2G)を越えたためFAT32が流通。
現在では、このフォーマットは、Windowsのみならず、様々な用途のデファクトとして使われています。例えばデジカメ、ミュージックプレイヤ、ケータイ電話、テレビ、カーナビ。実に様々なデバイスのデファクトとして利用されています。
このUSBメモリのフォーマットを、Solarisの上で行う方法が、案外わかりにくいのでまとめてみました。ついでに、わかりにくいので、便利ツールを作っておきました。
次の方法で接続されているデバイスの一覧を出力することができます。
rmformat
例
デバイスを探しています... 1. Logical Node: /dev/rdsk/c9t0d0p0 Physical Node: /pci@0,0/pci17aa,20ab@1a,7/storage@3/disk@0,0 Connected Device: Myson SD/MMC/MS Reader 1.00 Device Type: Removable Bus: USB Size: 3.9 GB Label: <None> Access permissions: 媒体は書き込み保護されていません。
この出力で、USBメモリのデバイスノードが、/dev/rdsk/c9t0d0p0で有ることがわかります。複数つけている場合は、誤って大事な方を消さないように注意してください。
領域確保にはfdiskを利用します。
pfexec fdisk c9t0d0p0
ここで、上のrmformatで調べた番号であるc9t0d0p0を入力しました。
No fdisk table exists. The default partition for the disk is: a 100% "SOLARIS System" partition Type "y" to accept the default partition, otherwise type "n" to edit the partition table.
Solarisで全部使うのか?と聞かれますが、nと答えます。
n
画面がクリアされます。
Total disk size is 1951 cylinders Cylinder size is 4096 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === WARNING: no partitions are defined! SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection:
ここで、パーティション作成である1を選び、
Select the partition type to create: 1=SOLARIS2 2=UNIX 3=PCIXOS 4=Other 5=DOS12 6=DOS16 7=DOSEXT 8=DOSBIG 9=DOS16LBA A=x86 Boot B=Diagnostic C=FAT32 D=FAT32LBA E=DOSEXTLBA F=EFI 0=Exit? C
FAT32であるCを選びます。
Specify the percentage of disk to use for this partition (or type "c" to specify the size in cylinders). 100
すると、何パーセント利用するか聞かれるので、100と答えます。
Should this become the active partition? If yes, it will be activated each time the computer is reset or turned on. Please type "y" or "n".
当然yです。
この結果は次の通り。
Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Win95 FAT32 1 1950 1950 100
後は5を選択肢、終了しましょう。
領域確保が終わったら、フォーマットです。サイズにも寄りますが、数秒かかります。
2GBまでならば、FATでフォーマットできます。もし、デバイスがSDカードならば、この形式が限界値です。デバイスノード名は、rmformatで調べた物に置き換えてください。
pfexec mkfs -F pcfs -o fat=16 -o b=volumename /dev/rdsk/c9t0d0p0:c
4G以上のものならば、下記の方法でフォーマット可能です。Windowsのフォーマッタは32GBまでしかサポートしていないのですが、規格上は2Tぐらいまで行けたはずです。デバイスノード名は、rmformatで調べた物に置き換えてください。
pfexec mkfs -F pcfs -o fat=32 -o b=volumename /dev/rdsk/c9t0d0p0:c
USBメモリを一度抜き、差し込めば、rmvolmgrが認識して自動的にマウントするはずです。
zfsで一度フォーマットしてしまったUSBディスクなどは、zpool名が残っていて、これを差し込み時にrmvolmgrが見つけてしまい、異常なダイアログを出すことがあります。実害はないのですが、気持ち悪いのでこれを削除。デバイスノード名は、rmformatで調べた物に置き換えてください。
例)
pfexec dd if=/dev/zero of=/dev/rdsk/c9t0d0p0 bs=1024k
dd: 書き込みサイズが足りません。書き込み 524288 バイト、期待値 1048576 バイト 書き込まれたレコード数 3903+0 読み出されたレコード数 3903+0
何分もかかるので注意してください。
なお、下記を自動でやるシェルスクリプトを書いてみました。
必要であれば、ダウンロードして使ってください。
pfexec usbformat
Found the following USB devices: 0: /dev/rdsk/c7t0d0p0 3.9 GB I-O DATA USB Flash Disk BC01 Enter the number of your choice: 0
0を入力
WARNING: All data on your USB storage will be lost. Are you sure you want to format to /dev/rdsk/c7t0d0p0 ( FAT32 : 3900 MB )? (y/n) y Type Volume Name :ToteBag4G
ToteBag4Gを入力
Construct a new FAT file system on /dev/rdsk/c7t0d0p0:c: (y/n)? y please reconnect usb memory.
あとは、抜いてから、一呼吸して刺せば、rmvolmgrが勝手に認識するはずです。Windowsでももちろん使えます。