コマンドを使ってLinux上でUSBメモリをフォーマット
Linux上でUSBメモリをフォーマットする機会があった。Linuxであれば、コマンドを使ってUSBメモリをフォーマットできる。コマンドからUSBメモリをフォーマットするには、以下の2つの工程が必要になる。
- パーティショニングテーブルの種類を決めて、パーティショニングする
- フォーマット形式を決めて、フォーマットする
コマンドを使わないと、パーティショニングもフォーマットも一緒に行われてしまうので、気にしたことがないかもしれないが、実際は「パーティショニング」と「フォーマット」の2つの工程が必要となる。また、「パーティショニング」と「フォーマット」の種類も自分で選ばなければならない。
今回は、パーティショニングテーブルの種類は、現在一般的に使われているGPT(GUIDパーティショニングテーブル)で行うことした。また、フォーマット形式は、Linux、Winodws、Mac、いずれのOSでも認識できるFAT32形式でフォーマットすることとした。
この記事では、コマンドを使って、GPTパーティショニングとFAT32形式でUSBメモリをフォーマットする方法を紹介する。
USBメモリをパーティショニングする
今回使用するパーティショニングツールは、gdisk。もし、gdiskのパッケージがインストールされていなければ、インストールする。gdiskを使ってパーティショニングを行えば、自動的にGPTでパーティショニングされる。
パーティショニングを行う際は、USBメモリはアンマウントされてなければならない。Linuxのデスクトップ環境でGNOMEを使っていると、PCに接続したUSBメモリは「/run/media/ユーザー名/USBメモリ名」に自動的にマウントされてしまっている。
まずアンマウントすべきUSBメモリの、マウントポイントをlsblkコマンドやdfコマンドで確認する。
$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT ... sdf └─sdf1 vfat TRANSCEND 1B17-B118 /run/media/zero/TRANSCEND ...
今回フォーマットしたいUSBメモリ(TRANSCEND)は、「/run/media/zero/TRANSCEND」(=マウントポイント)にマウントされていることが分かった。また、USBメモリのデバイスファイルの名前も確認しておく(ここでは、sdf。接続されているストレージデバイスの数によって、名前は異なってくるので、必ず確認する。)。
USBメモリのアンマウントは、umountコマンドで行う。アンマウントしたいマウントポイントを指定する。
$ umount /run/media/zero/TRANSCEND
USBメモリをアンマウントできたら、gdiskでパーティショニングを行う。パーティショニングを行うには、gdiskに先程確認したUSBメモリのデバイスファイル名を指定すればよい。
# gdisk /dev/sdf GPT fdisk (gdisk) version 1.0.3 The protective MBR's 0xEE partition is oversized! Auto-repairing. Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help):
gdiskが起動したら、以下の要領でUSBメモリをパーティショニングする。ちなみに、USBメモリをパーティショニングする際のHex codeは0700(Microsoft basic data)となる。MBRパーティショニングで使われるHex codeのb(W95 FAT32 (LBA))は使えない。
Command (? for help): o(新しくGPTパーティションテーブルを作る) This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): n(パーティションテーブルに新しいパーティションを追加) Partition number (1-128, default 1): (デフォルトでの値を使うので、何も入力せずエンター) First sector (34-15826910, default = 2048) or {+-}size{KMGTP}: (デフォルトでの値を使うので、何も入力せずエンター) Last sector (2048-15826910, default = 15826910) or {+-}size{KMGTP}: (デフォルトでの値を使うので、何も入力せずエンター) Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 0700(Microsoft basic dataのHex codeを入力) Changed type of partition to 'Microsoft basic data' Command (? for help): w(ディスクにパーティションテーブルを書き込み) Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdf. The operation has completed successfully.
USBメモリをフォーマットする
次に、USBメモリをFAT32でフォーマットする。フォーマットはmkfs.vfatコマンドで行う。コマンドオプションの意味は、以下の通り。
- -v:進捗を表示
- -c:不良ブロックの精査を行う
- -F 32: FATサイズを指定。他に12 bit、16 bitが指定可能。
- -n:ボリューム名(ラベル)を指定。
mkfs.vfatには、GPTによってさくせいされたパーティションのデバイスファイル名を作成する。パーティション後は、パーティション前のデバイスファイルにパーティション番号が付与された名前となる。
# mkfs.vfat -v -c -F 32 -n TRANSCEND /dev/sdf1 mkfs.fat 4.1 (2017-01-24) /dev/sdf1 has 250 heads and 62 sectors per track, hidden sectors 0x0800; logical sector size is 512, using 0xf8 media descriptor, with 15824863 sectors; drive number 0x80; filesystem has 2 32-bit FATs and 8 sectors per cluster. FAT size is 15424 sectors, and provides 1974247 clusters. There are 32 reserved sectors. Volume ID is 1321cb19, volume label TRANSCEND . Searching for bad blocks 69856...
あとは、適当なマウントポイントにUSBメモリをマウントすれば、使えるようになる。
参考:
[1]USB ストレージデバイス - ArchWiki
スポンサーリンク
0 件のコメント:
コメントを投稿