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が割り当てられるようになる)
以上,動作を確認したうえで,システムの書き換えを行う。
①マウントポイントの作成,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
以上。