LinuxでUSBメモリをNTFSにフォーマットにするコマンド

先日、USBメモリに4GBを超えるファイルをコピーする必要がありました。
Windowsユーザー、Macユーザーも使うUSBメモリなので、NTFSフォーマットがよいと考えました。MacユーザーもNTFSは標準で読み取りはできますので。

これまで、フォーマットするときにGPartedでやっていました。GUIで簡単ですから。

しかし、今回は、NTFSフォーマットだけでなく、ボリュームラベルも変更する必要がありました。Gpartedでは、これは2段階(NTFSへのフォーマットとラベルの設定)になってしまうので、もっと簡単な方法はないかと思いました。

検索してなかなかすぐに見つけられなかったのですが、以下の方法が簡便とわかったので、紹介します。

  • USBメモリのデバイス名の確認
  • Linuxでは、USBメモリは、/dev/sdc1とか/dev/sdb1などに割り当てられます。どこに割り当てられたかを確認する必要があります。方法として、dmesgを使う方法と、fdisk -lを使う方法があります。

    • dmesg
    • USBメモリをPCにさした時点で、端末に

      $ dmesg
      

      とタイプします。そうすると、以下のようなメッセージが出てきます。

      [ 8939.172114] usb 3-2: New USB device found, idVendor=054c, idProduct=05bb
      [ 8939.172119] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      [ 8939.172120] usb 3-2: Product: Storage Media
      [ 8939.172122] usb 3-2: Manufacturer: Sony
      [ 8939.172124] usb 3-2: SerialNumber: EBA5A08FFF1748
      [ 8939.712192] usb-storage 3-2:1.0: USB Mass Storage device detected
      [ 8939.712398] scsi3 : usb-storage 3-2:1.0
      [ 8939.714168] usbcore: registered new interface driver usb-storage
      [ 8939.717329] usbcore: registered new interface driver uas
      [ 8940.957656] scsi 3:0:0:0: Direct-Access     Sony     Storage Media    0100 PQ: 0 ANSI: 6
      [ 8940.957872] sd 3:0:0:0: Attached scsi generic sg2 type 0
      [ 8940.958666] sd 3:0:0:0: [sdc] 30507008 512-byte logical blocks: (15.6 GB/14.5 GiB)
      [ 8940.959280] sd 3:0:0:0: [sdc] Write Protect is off
      [ 8940.959282] sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
      [ 8940.959779] sd 3:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
      [ 8940.964615]  sdc: sdc1
      [ 8940.966528] sd 3:0:0:0: [sdc] Attached SCSI removable disk
      [ 9741.422259] usb 3-2: USB disconnect, device number 2
      

      ここにUSBとかsdcとか出てきますね。
      これで、/dev/sdcが割り当てられたとわかります。

    • fdisk -l
    • もうひとつの方法はfdiskを用いることです。-lオプションで、デバイスの一覧を表示します。

      $ sudo fdisk -l
      

      とすると、今度は次のように表示されます。

      Disk /dev/sdc: 15.6 GB, 15619588096 bytes
      ヘッド 255, セクタ 63, シリンダ 1898, 合計 30507008 セクタ
      Units = セクタ数 of 1 * 512 = 512 バイト
      セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
      I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
      ディスク識別子: 0xc3072e18
      
      デバイス ブート      始点        終点     ブロック   Id  システム
      /dev/sdc1              48    30507007    15253480    c  W95 FAT32 (LBA)
      

      この方がわかりやすいですね。いずれにしても、/dev/sdc1がUSBメモリのパーティションだということがわかります。ちなみに、sdc1の1はパーティションの番号で、USBメモリの場合、たいていパーティションは1つなので、sdc1がUSBメモリのパーティションになります。

  • NTFSへのフォーマット
  • ここでは、mkfs -t ntfsというコマンドを使います。そして、ラベルは、-Lというオプションですので、以下のようにタイプします。
    (mkfs.ntfsとmkfs -t ntfsは同義です)

    $ sudo mkfs -t ntfs -L usbdisk /dev/sdc1
    

    そうすると、フォーマットがはじまります。もし、クイックフォーマットにしたい場合は、-Qをつけて、

    $ sudo mkfs -t ntfs -Q -L usbdisk /dev/sdc1
    

    とします。(通常はこちらの方が現実的です)

  • ファイルシステムの確認
  • ふつう、する必要はありませんが、きちんとNTFSに変換されたか知りたい人もいることでしょう。

    その場合は、以下のコマンドをタイプします。

    $ sudo parted -l
    

    そうすると、以下のようなメッセージが表示されます。

    モデル: Sony Storage Media (scsi)
    ディスク /dev/sdc: 15.6GB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: msdos
    
    番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
     1    24.6kB  15.6GB  15.6GB  primary  ntfs              lba
    

    きちんとファイルシステムがntfsになっていることが確認できました。