LinuxではハードディスクもCD-ROMもフロッピーディスクもネットワーク上のファイルシステムも、/から始まるディレクトリツリーのどこかにマウントして使う。どのようにマウントされているのかを知るにはmountコマンドを実行する。
USER$ mount /dev/hda5 on / type ext2 (rw) none on /proc type proc (rw) /dev/hda7 on /home type ext2 (rw) /dev/hda6 on /usr type ext2 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/scd0 on /home/ftp/pub/cdrom type iso9660 (ro) /dev/hda1 on /mnt/dos type vfat (rw)
この例では、hda5が/にマウントされ、hda7が/home、hda6が/usr、scd0がcdromディレクトリにマウントされていることがわかる(図4)。
図4 複数のファイルシステムにまたがったディレクトリツリー |
各ファイルシステムのマウント方法は、すべて同じである。mountコマンドを用い、tオプションでファイルシステムのフォーマットタイプを指定し、マウントするデバイス名と位置を指定する(画面7)。
root# mount -t ext2 /dev/hda7 /home ハードディスクの場合 root# mount -t iso9660 /dev/scd0 /mnt/cdrom CD-ROMの場合 root# mount -t vfat /dev/fd0 /mnt/floppy フロッピーディスクの場合 root# mount -t nfs 192.168.10.1:/export/share /usr/local/share NFSの場合
画面7 mountコマンドの実行例
tオプションに指定できるフォーマットタイプには、表4のようなものがある。ただし、全部のファイルシステムが標準で使えるとは限らない。カーネルに組み込まれていなければ使えないので注意が必要だ。
名前 | 意味 |
---|---|
ext2 | Linux ext2 |
iso9660 | ISO9660 |
nfs | Networkファイルシステム |
vfat | Microsoft Windows |
msdos | MS-DOS |
hfs | Macintosh HFS |
マウントしてあるファイルシステムを取り外すにはumountコマンドを用いる。引数へ指定するのは、ファイルシステム名でもマウントポイントでも、どちらでもかまわない。
root# /bin/umount /dev/scd0
umountコマンドを実行したとき、誰かのカレントディレクトリがそのデバイス上にあったり、ファイルをアクセスしている場合、次のようなメッセージが表示され、アンマウントできない。
umount: /dev/scd0: device is busy
このときは、fuserコマンドで誰が使っているのかを確認する。
root# /sbin/fuser -vm /dev/scd0 USER PID ACCESS COMMAND /dev/scd0ken-na 10089 ..c.. bash
そして、そのユーザーと協議して、別のディレクトリに移動してもらったり、処理を中断してもらわねばならない。あるいはユーザーの処理が終るのを待ってから取り外すようにする。