「USBメモリをLinuxファイルシステムとして使う」の版間の差分

提供:UnixClassWiki
ナビゲーションに移動 検索に移動
ページの作成:「== USBメモリとLinuxファイルシステム == USBメモリを購入した段階では、おおよそのPCで扱える Windows 95 / FAT32 のファイルシステム...」
 
 
(同じ利用者による、間の2版が非表示)
7行目: 7行目:
その時はW95 FAT32ファイルシステムですので、その形式で自動的にマウントされます。
その時はW95 FAT32ファイルシステムですので、その形式で自動的にマウントされます。


=== ファイルシステムをext4に変更 ===
=== パーティションを確認 ===


以下は、既にUSBメモリが挿入され、/dev/sdgに自動的に割り当てられ、その状態でUSBメモリを(ファイルシステムを)アンマウントしたという前提で話を進めます。
以下は、既にUSBメモリが挿入され、/dev/sdgに自動的に割り当てられ、その状態でUSBメモリを(ファイルシステムを)アンマウントしたという前提で話を進めます。




まずUSBメモリのパーティションをみてみます。
まずUSBメモリのパーティションを確認してみます。
 


<pre class="bash">
<pre class="bash">
28行目: 29行目:


</pre>
</pre>
このように/dev/sdg1のファイルシステムは W95 FAT32 であることが確認できました。
=== ext4 に変更 ===
/dev/sdg1をW95 FAT32からext4にフォーマットし直します。
<pre class="bash">
# 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
</pre>
途中確認のためにリターン入力まちの状態になりますが、この時、本当にこのパーティションをフォーマットしていいか確認してください。
万が一、既に使用しているパーティションをフォーマットしてしまうと、そのパーティションにあったファイルシステムを壊してしまうことになるので、十分に注意してください。
=== 再度マウントした状態 ===
ext4のフォーマットされた後は、そのままでも自動的にマウントされてしまうはずですが、もし、そうでなければ一旦抜いて、また挿入してください。
さて、こちらでは次のようになりました。
<pre class="bash">
$ df
...
/dev/sdg1                      3804348      7672  3583712  1% /media/hironobu/c3b1262f-4af9-43e1-acdc-c5c1cb68f6b7
</pre>
フォーマットされたパーティションに名前を付けなかったので、自動的にそのパーティションについたUUIDがマウントポイントのディレクトリ名になっています。
またマウントされた時点での該当のディレクトリの環境は次のようになっています。
<pre class="bash">
# 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
</pre>
/media/hironobuの下にマウントされていてもデフォルトのファイルシステムのオーナーがrootなのでマウントしてもrootになっています。
USBメモリで、挿入時にバックグラウンドで動作しているサービスプログラムが自動マウントしてくれますが、
アプリケーション側からみた場合、USBメモリもハーディスクも区別なくext4のファイルシステムのパーティションにしか見えません。

2015年9月8日 (火) 09:18時点における最新版

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のファイルシステムのパーティションにしか見えません。