USBメモリ


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

USBメモリ

USBのMBRを確認するためのDiskmapプログラムをここから入手。
実行すればC:/Program Files/Resorce Kit/にdiskmapがインストールされる。
コマンドプロンプトから

C:/Program Files/Resorce Kit>diskmap /d0 

これでまず内臓HDDのMBRが見れる。
今回試してみるUSBメモリをさしてdiskmapしてみる。

C:/Program Files/Resorce Kit>diskmap /d2 

(何番目のドライブか分からないので片っ端から試すとd2で出た)


C3000に戻ってマウントポイントを作成。

# cd /mnt 
# mkdir usbmem 

USBメモリをさして,/proc/scsi以下にusb-storage-0というディレクトリができているのを確認。

# ls /proc/scsi/ 
scsi	sg	usb-storage-0 

(USBメモリをSCSIドライブにみせかけ,これをLinuxのファイルシステムとして扱うため)
USBメモリは/dev/sdaに割り当てられている。パーティションを見てみる。

# fdisk -l /dev/sda 
(これで/dev/sda1に割り当てられているのを確認)~

※パーティションが1つしかないUSBメモリを1つだけ接続すると/dev/sda1となる。
※デバイス自体を表す/dev/sdaと個々のパーティションを表す/dev/sda1を混同しないように注意。
マウントしてみる。

# mount -t vfat /dev/sda1 /mnt/usbmem 

マウント状態を確認。

# df 
Filesystem           1k-blocks      Used Available Use% Mounted on
rootfs                    5120      5120         0 100% /
/dev/root                 5120      5120         0 100% /
/dev/mtdblock3            4096      2152      1944  53% /home
/dev/ram1                   44        29        15  66% /dev
none                      1024        60       964   6% /dev/shm
/dev/hda1                99521     50387     43995  53% /hdd1
/dev/hda2              1976524     48176   1827944   3% /hdd2
/dev/hda3             13315956    882564  12433392   7% /hdd3
/dev/sda1              1007328    686080    321248  68% /home/system/var/mnt/usbmem

(/dev/sda1が/home/system/var/mnt/usbmemにマウントされているのでOK)
確認したらアンマウントする。

# cd / 
# umount /mnt/usbmem 

ローダブルモジュールをアンロードする。

# rmmod usb-storage 

(USBメモリ用ドライバと/dev/sdaとの関係が無くなり,次回接続したUSBメモリに/dev/sdaが割り当てられるようになる)


以上,動作を確認したうえで,システムの書き換えを行う。

  1. マウントポイントを作成し,マウントオプションなどを指定した行をfstabに追加する。
  2. USBメモリを利用するために,SubsystemプログラムとREMOVERプログラムを用意する。

 →Subsystemプログラムでは,マウントの処理とREMOVERの登録を行なう。
 →REMOVERプログラムでは,アンマウント処理とローダブルモジュールの解放を行なう。


①マウントポイントの作成,fstab編集
マウントポイントはさっき/mnt/usbmemとして作ったのでパス。 fstabを編集する。

# vi /etc/fstab 

最終行に以下を追加。

/dev/sda1 /mnt/usbmem vfat noauto,umask=000,noatime,iocharset=utf8,codepage=932 0 0


②Subsystemプログラム,REMOVERプログラム
Subsytemプログラムから。
/etc/hotplug/usbにusb-storageというファイルを作る。

# cd /etc/hotplug/usb 
# vi usb-storage 

以下を記述する。

#!/bin/sh 
# Created by Shinji Shioda 
. /etc/hotplug/hotplug.functions 
if [ ! -L /var/run/usb/%proc%bus%usb%* ]; then 
	mesg Try to Mount 
	mount /mnt/usbmem 
	if [ $? = 0 ]; then 
		ln -s /etc/hotplug/usb/usb-storage.off $REMOVER 
		mesg make REMOVER in $REMOVER 
	fi 
fi 

モードを変えておく。

# cd /etc/hotplug/usb 
# chmod 755 usb-storage 


続いてREMOVERプログラムを作る。
/etc/hotplug/usbにusb-storage.offというファイルを作る。

# cd /etc/hotplug/usb 
# vi usb-storage.off 

以下を記述する。

#!/bin/sh 
# Created by Shinji Shioda 
. /etc/hotplug/hotplug.functions 
mesg Removing /mnt/usbmem 
umount /mnt/usbmem 
rmmod usb-storage 

同様にモードを変えておく。

# cd /etc/hotplug/usb 
# chmod 755 usb-storage.off 


動作確認をする。
USBメモリを接続して少し置いてから

# df 
Filesystem           1k-blocks      Used Available Use% Mounted on
rootfs                    5120      5120         0 100% /
/dev/root                 5120      5120         0 100% /
/dev/mtdblock3            4096      2156      1940  53% /home
/dev/ram1                   44        29        15  66% /dev
none                      1024        60       964   6% /dev/shm
/dev/hda1                99521     50387     43995  53% /hdd1
/dev/hda2              1976524     48176   1827944   3% /hdd2
/dev/hda3             13315956    882564  12433392   7% /hdd3
/dev/sda1              1007328    686080    321248  68% /home/system/var/mnt/usbmem

(/dev/sda1が/home/system/var/mnt/usbmemにマウントされているのでOK)

# ls /mnt/usbmem 

→マウントされていればルートディレクトリの内容が表示される。
USBメモリが使用されていないことを確認したらUSBメモリを抜いて,
アンマウントされたかどうかをdfで確認する。

# df 
Filesystem           1k-blocks      Used Available Use% Mounted on
rootfs                    5120      5120         0 100% /
/dev/root                 5120      5120         0 100% /
/dev/mtdblock3            4096      2156      1940  53% /home
/dev/ram1                   44        29        15  66% /dev
none                      1024        60       964   6% /dev/shm
/dev/hda1                99521     50387     43995  53% /hdd1
/dev/hda2              1976524     48176   1827944   3% /hdd2
/dev/hda3             13315956    882564  12433392   7% /hdd3

以上。

ref