■ このページでは Linux
でのUSBフラッシュメモリーの使い方を説明しています。
USBフラッシュメモリー ( 以降は USBメモリーと呼びます )
は、フロッピーディスクよりも記憶容量が大きく、書き込み・読み出しの時間が短いので便利です。 このページでは、Red Hat Linux
9でのUSBメモリーの利用手順を書いてあります。ほかの Linux
では未確認ですが、ほぼ同じ方法で利用できるでしょう。
またUSBの仕様には、Ver.1.0、1.1、2.0
などのバージョンがありますが、古い 1.0 か1.1
に対応したUSBメモリー製品を選べば利用できます。 ( USBの Ver.2.0 の製品は持っていないのでテストしてません。 )
■
Linux では USB フラッシュメモリーもマウントして扱うので注意が必要です!
USBフラッシュメモリーは、Windows だけでなく Linux
でも利用することができます。市販のUSBメモリー製品は、あらかじめ MS-DOS
フォーマットされています。そのため MS-Windows などの
OSからはフロッピーディスクと同じように、MS-DOSフォーマットを指定してマウントすれば利用できます。ただし、Linux では
USBメモリーを
SCSI にデバイスとして ( SCSI エミュレートして ) 認識するので、SCSI デバイスとしてマウントして利用します。
USBフラッシュメモリーは、マザーボードのUSBコネクターに接続し、mount コマンドでマウントして利用します。また利用後は
unmount コマンドでアンマウントしてから抜き
取ってください。マウントとアンマウントを正しく実行しない場合は、書き込んだファイルなどのデータを破壊してしまう危険があります。USBプラグの抜き
差しはプラグアンドプレー
の感覚で気軽にできますが、OSと接続に際しては慎重に操作してください。
このページの情報は自己責任で利用してください!
このページに書いた手順は、すべての Linux での
USBフラッシュメモリー の動作を保証するものではありません。1つの実行事例であり、参考事例として利用してください。
設定の手順の実行は、自己責任において行ってください。
この手順によって発生した障害や損害については、一切の責任を負いません。
|
■ この
ページのメニュー
- USB
フラッシュメモリーを認識させる
- コマンドでマウントする
- fstab に登録する
- 日
本語ファイル名の文字化け対策
- Linux
のUSBメモリー認識状況を知るには?
Red Hat Linux
8 では、OSがUSBデバイスに対応しているのでPCにUSBフラッシュメモリーをさすと自動認識します。
USBメモリーは、OSのLinux からは SCSI デバイスとして認識されます。
認識されるデバイスファイル名は、/dev/sda1 になります。PCに他の SCSI や USB
機器を接続している場合は、デバイスファイル名が違ってきます。コマンドラインを使用中にUSBメモリーを差すと、「自動認識メッセージ」が画面表示され
るで確認できます。
この「自動認識メッセージ」が表示されれば、表示されたデバイスをマウントすることで利用できます。
X-Window
を使用中にUSBメモリーを差した場合は、認識されますが「自動認識メッセージ」は表示されません。
今回動作を確認したのは次の組み合わせです。
|
Princeton
Xiao Jr. (16MB) |
Xmind
XM-ST16 (16MB) |
FedoraCore
1
|
○
|
○
|
Red
Hat Linux 9
|
○
|
○
|
Red
Hat Linux 8
|
○
|
○
|
テストした Red Hat Linux 9
は、インストール時のインストールタイプは「サーバー」でしたが、USBデバイスは問題なく使えました。Linux を起動して Kudzu や
murasaki などのハードウェア管理デーモンが起動していれば、プラグアンドプレイの感覚で、Linux を起動後でも抜き差しできます。

写真 (左)Xiao Jr 32MB (右) XM-ST16 16MB
マウント コマンドを実行するには root
権限が必要です。以下のコマンドは root 権限で実行してください。
@ 起動中の Linux のマシンに、USBメモリーを接続します。
USBメモリーを差して、画面にメッセージ( 自動認識された情報
)が表示されればAのステップすすむ。
もしもメッセージが表示されない場合は、次の chckconfig コマンドを使い、kudzu を起動します。
# chckconfig
--llevel 345 kudzu
on #
OS起動時にkudzuを起動させる
# /etc/rc.d/initd/kudzu start
# kudzu
を起動する
|
A USBメモリーをマウントするマウントポイントを作成する。(
1度だけ作成すればOK )
[root@cobalt2
root]# mkdir
/mnt/usbfm
|
B
コマンドで、マウントポイントに USBメモリーを刺した後に、次のコマンドでマウントする。
[root@cobalt2
root]# mount # マウント前の状態を知る
/dev/hda5 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda7 on /home type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda2 on /usr type ext3 (rw)
/dev/hda3 on /var type ext3 (rw)
[root@cobalt root]# mount -t
vfat /dev/sda1 /mnt/usbfm # マウントする
[root@cobalt2 root]# mount # マウント後の状態を知る
/dev/hda5
on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda7 on /home type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda2 on /usr type ext3 (rw)
/dev/hda3 on /var type ext3 (rw)
/dev/sda1 on
/mnt/usbfm type vfat (rw) # USBメモリーがマウントされている
[root@cobalt2 root]#
|
※ コマンドオプションの -t は、USBメモリーのフォーマットタイプの指定で、vfat、msdos などが利用できる。
C
USBメモリーの内容を、ls コマンドでたしかめる
[root@cobalt2
root]# ls /mnt/usbfm
Win98DriverV1.41.exe #
内容が表示されればマウントは成功です。
|
D USBメモリーにファイルをコピーしてみる
[root@cobalt2
root]# cp
wiredview-inst-01.txt /mnt/usbfm
[root@cobalt2
root]# ls /mnt/usbfm
Win98DriverV1.41.exe
wiredview-inst-01.txt
|
※ コピーや削除は、通常の Linux でのファイルイシステムと同じように利用できます。
書き込みエラーが出た場合は、
マウントオプション
-o を
使って再マウントし明示的に書き込み可能にする。
[root@cobalt
root]# umount
/mnt/usbfm #
一度アンマウントする
[root@cobalt
root]# mount -t vfat -o rw
/dev/sda1 /mnt/usbfm #再度
マウント
|
E
アンマウントする
USBメモリーの利用が終わった
ら、必ずコマンドで アンマウントしてからUSBメモリーをPCから抜いてください。
[root@cobalt2
root]# umount /mnt/usbfm
# アンマウントする
[root@cobalt2
root]# mount # マウントの状態を確認する
/dev/hda5 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda7 on /home type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda2 on /usr type ext3 (rw)
/dev/hda3 on /var type ext3 (rw)
|
※ USBメモリーを抜く前にアンマウントしない場合、書き込んだファイルが正常に利用できません!
コマンド操作で
USBメモリーのマウントとアンマウントが問題なくできたら、次は /etc/fstab に設定を登録します。
/etc/fstab に設定を登録することで、コマンド入力時にオプション設定を付けずにマウントできるようになります。
@
/etc/fstab に設定を登録します
vi 、emacs、ee
などのテキストエディターを利用して次のように設定を1行追加します。
LABEL=/
/
ext3
defaults 1 1
LABEL=/boot
/boot
ext3
defaults 1 2
none
/dev/pts devpts
gid=5,mode=620 0 0
LABEL=/home
/home
ext3
defaults,usrquota,grpquota 1 2
none
/proc
proc
defaults 0 0
none
/dev/shm
tmpfs defaults 0 0
LABEL=/var
/var
ext3
defaults 1 2
/dev/hda5
swap
swap
defaults 0 0
/dev/cdrom
/mnt/cdrom udf,iso9660
noauto,owner,kudzu,ro 0 0
/dev/sda1
/mnt/usbfm
auto noauto,user 0 0
|
A
上記の USBフラッシュメモリーの設定を登録後は、はオプションなしてマウントできます。
[root@cobalt2
root]# mount /mnt/usbfm
# マウントする
[root@cobalt2
root]# mount
/dev/hda5
on / type ext3 (rw)
none
on /proc type proc (rw)
usbdevfs
on /proc/bus/usb type usbdevfs (rw)
/dev/hda1
on /boot type ext3 (rw)
none
on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda7
on /home type ext3 (rw)
none
on /dev/shm type tmpfs (rw)
/dev/hda2
on /usr type ext3 (rw)
/dev/hda3
on /var type ext3 (rw)
/dev/sda1
on /mnt/usbfm type vfat (rw,noexec,nosuid,nodev) # マウントされた
[root@cobalt2
root]#
[root@cobalt2
root]# umount /mnt/usbfm
# 使用後はアンマウントする
|
]※ fstab で設定しても、使用後にアンマウントしてから USBメモリーを抜かないと壊れます!
WIndowsのパソコン使う「日本語名のファイル」は、Linux
では日本語文字コードが違うので文字化けします。
Windows ではデフォルトで「シフトJIS」コードを使用しますが、Linux では 「EUCコード」がデフォルトになっているのが原因です。
Windows
で作成した「日本語ファイル名」を正常な日本語表記で表示するには、マウントする際に文字コードを「シフトJIS」でプションを指定します。
LABEL=/
/
ext3
defaults 1 1
LABEL=/boot
/boot
ext3
defaults 1 2
none
/dev/pts devpts
gid=5,mode=620 0 0
LABEL=/home
/home
ext3
defaults,usrquota,grpquota 1 2
none
/proc
proc
defaults 0 0
none
/dev/shm
tmpfs defaults 0 0
LABEL=/var
/var
ext3
defaults 1 2
/dev/hda5
swap
swap
defaults 0 0
/dev/cdrom
/mnt/cdrom udf,iso9660
noauto,owner,kudzu,ro 0 0
/dev/sda1
/mnt/usbfm
auto
noauto,user,iocharset=euc-jp
0 0
|
※ 文字コードのオプションは Red Hat では、euc-jp 、Fedora Core では utf-8 を指定する。
※ 上記のように user オプションを追加することで、一般ユーザーもマウントコマンドでマウント可能になる。
Linux の認識しているハードウェアの状況は、/proc
以下のファイルに記録されています。
[root@cobalt2 root]# more
/proc/bus/usb/devices
T: Bus=02 Lev=00
Prnt=00 Port=00 Cnt=00 Dev#= 1
Spd=12 MxCh= 2
B: Alloc=
0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00
Cls=09(hub ) Sub=00 Prot=00 MxPS= 8
#Cfgs= 1
P: Vendor=0000
ProdID=0000 Rev= 0.00
S: Product=USB
UHCI Root Hub
S:
SerialNumber=a000
C:* #Ifs= 1 Cfg#= 1
Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0
#EPs= 1 Cls=09(hub ) Sub=00 Prot=00
Driver=hub
E: Ad=81(I)
Atr=03(Int.) MxPS= 8 Ivl=255ms
<< 途中を省略 >>
T: Bus=01
Lev=01
Prnt=01 Port=01 Cnt=01 Dev#= 2
Spd=12 MxCh= 0
D: Ver= 1.10
Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=
1
P: Vendor=0693
ProdID=000e Rev= 1.00
C:* #Ifs= 1 Cfg#= 1
Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0
#EPs= 3 Cls=08(stor.) Sub=06 Prot=50
Driver=usb-storage
E: Ad=81(I)
Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O)
Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I)
Atr=03(Int.) MxPS= 8 Ivl=255ms
|
このファイルに表示されている場合は、ハードウェアは Linux には認識されています。
もどる