USBメモリをLinuxファイルシステムとして使う
USBメモリとLinuxファイルシステム
USBメモリを購入した段階では、おおよそのPCで扱える Windows 95 / FAT32 のファイルシステムになっています。
クライアント向けディストリビューションが入っているGNU/LinuxマシンにUSBメモリを挿入した時、自動的に/dev/sd?に割り当てられ、その中にあるパーティションが自動的にオープンします。
その時はW95 FAT32ファイルシステムですので、その形式で自動的にマウントされます。
パーティションを確認
以下は、既にUSBメモリが挿入され、/dev/sdgに自動的に割り当てられ、その状態でUSBメモリを(ファイルシステムを)アンマウントしたという前提で話を進めます。
まずUSBメモリのパーティションを確認してみます。
# fdisk -l /dev/sdg ディスク /dev/sdg: 4027 MB, 4027580416 バイト ヘッド 128, セクタ 62, シリンダ 991, 合計 7866368 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0xc3072e18 デバイス ブート 始点 終点 ブロック Id システム /dev/sdg1 * 3112 7866367 3931628 b W95 FAT32
このように/dev/sdg1のファイルシステムは W95 FAT32 であることが確認できました。
ext4 に変更
/dev/sdg1をW95 FAT32からext4にフォーマットし直します。
# mkfs -t ext4 /dev/sdg1 mke2fs 1.42.9 (4-Feb-2014) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 245760 inodes, 982907 blocks 49145 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1006632960 30 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: (リターンまち) done
途中確認のためにリターン入力まちの状態になりますが、この時、本当にこのパーティションをフォーマットしていいか確認してください。 万が一、既に使用しているパーティションをフォーマットしてしまうと、そのパーティションにあったファイルシステムを壊してしまうことになるので、十分に注意してください。
再度マウントした状態
ext4のフォーマットされた後は、そのままでも自動的にマウントされてしまうはずですが、もし、そうでなければ一旦抜いて、また挿入してください。
さて、こちらでは次のようになりました。
$ df ... /dev/sdg1 3804348 7672 3583712 1% /media/hironobu/c3b1262f-4af9-43e1-acdc-c5c1cb68f6b7
フォーマットされたパーティションに名前を付けなかったので、自動的にそのパーティションについたUUIDがマウントポイントのディレクトリ名になっています。
またマウントされた時点での該当のディレクトリの環境は次のようになっています。
# ls -al 合計 24 drwxr-xr-x 3 root root 4096 Sep 8 18:05 . drwxr-x---+ 3 root root 4096 Sep 8 18:08 .. drwx------ 2 root root 16384 Sep 8 18:05 lost+found
/media/hironobuの下にマウントされていてもデフォルトのファイルシステムのオーナーがrootなのでマウントしてもrootになっています。 USBメモリで、挿入時にバックグラウンドで動作しているサービスプログラムが自動マウントしてくれますが、 アプリケーション側からみた場合、USBメモリもハーディスクも区別なくext4のファイルシステムのパーティションにしか見えません。