この章では、ファイルシステムをマウントしたり、マウント解除する方法について説明します。この章で説明する手順は次のとおりです。
ファイルシステムを作成したら、そのファイルシステムをシステムで使用できるようにする必要があります。ファイルシステムを使用できるようにするには、マウントします。マウントしたファイルシステムは、システムのディレクトリツリー内の指定したマウントポイントに接続されます。ルート (/) ファイルシステムは常にマウントされています。他のファイルシステムは、ルート (/) ファイルシステムに接続したり切り離したりできます。
表 36-1 に、ファイルシステムの用途に応じてファイルシステムをマウントするためのガイドラインを示します。
表 36-1 ファイルシステムのマウント方法の決定
ファイルシステムを含む CD-ROM は、単にドライブに挿入するだけでマウントできます (ボリューム管理が自動的にマウントします)。ファイルシステムを含むフロッピーディスクは、ドライブに挿入して volcheck(1) コマンドを実行することによってマウントできます。詳細は、第 14 章「CD とフロッピーディスクの使用方法 (概要)」を参照してください
表 36-2 に、ファイルシステムのマウントとマウント解除に使用する /usr/sbin ディレクトリ内のコマンドを示します。
表 36-2 ファイルシステムのマウントとマウント解除に使用するコマンド
コマンド |
説明 |
---|---|
mount(1M) |
ファイルシステムとリモート資源をマウントする。 |
mountall(1M) |
/etc/vfstab ファイル内で指定されたすべてのファイルシステムをマウントする。マルチユーザー実行状態になる時に、mountall コマンドが自動的に実行される。 |
umount(1M) |
ファイルシステムとリモート資源をマウント解除する。 |
umountall(1M) |
/etc/vfstab ファイル内で指定されたすべてのファイルシステムをマウント解除する。 |
mount コマンドは、不整合がある読み取り/書き込み用のファイルシステムはマウントしません。mount または mountall コマンドからエラーメッセージが表示される場合は、ファイルシステムをチェックする必要があります。ファイルシステムをチェックする方法については、第 39 章「ファイルシステムの整合性チェック」を参照してください。
umount コマンドは、使用中のファイルシステムはマウント解除しません。ユーザーがファイルシステム内のファイルにアクセスしているか、ディレクトリをカレントディレクトリにしているか、あるいは、プログラムがそのファイルシステム上にあるファイルをオープンしている場合、そのファイルシステムは、使用中であると認識されます。
表 36-3 に、mount コマンドの -o オプションで指定できる汎用マウントオプションを示します。複数のオプションを指定する場合は、-o ro,nosuid のようにコンマ (空白を入れない) で区切ります。
各ファイルシステムタイプで指定可能なマウントオプションのリストについては、各マウントコマンドのマニュアルページ (たとえば、mount_ufs(1M)) を参照してください。
表 36-3 -o で指定する汎用マウントオプション
どのファイルシステムがマウントされているかを調べるには、mount(1M) コマンドを使用します。
$ mount -v |
-v |
マウントされているファイルシステムのリストを冗長モードで表示する |
$ mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/onerror=panic on ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/onerror=panic on ... /proc on /proc read/write/setuid on Fri Sep 10 16:09:48 1999 /dev/fd on fd read/write/setuid on Fri Sep 10 16:09:51 1999 /etc/mnttab on mnttab read/write/setuid on Fri Sep 10 16:10:06 1999 /var/run on swap read/write/setuid on Fri Sep 10 16:10:06 1999 /tmp on swap read/write/setuid on Fri Sep 10 16:10:09 1999 /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/onerror=panic ... $ |
/etc/vfstab ファイル内のエントリには、表 36-4 に示すように 7 つのフィールドがあります。
表 36-4 /etc/vfstab ファイルのフィールドの説明
フィールド名 |
説明 |
---|---|
device to mount |
|
device to fsck |
「device to mount」フィールドで指定した UFS ファイルシステムに対応する raw (キャラクタ型) デバイス名 (/dev/rdsk/c0t0d0s0 など)。これによって、fsck が使用するインタフェースが決まる。読み取り専用ファイルシステムやリモートファイルシステムなど、適用できるデバイスがない場合は、ダッシュ (-) を使用する。 |
mount point |
デフォルトのマウントポイントディレクトリ ( /usr など) を指定する。
|
FS type |
「device to mount」 フィールドで指定したファイルシステムのタイプを指定する。 |
fsck pass |
fsck がファイルシステムをチェックするか決めるために使用するパス番号。このフィールドでダッシュ (-) を指定すると、ファイルシステムはチェックされない。 このフィールドに 0 が指定されている場合、UFS ファイルシステムはチェックされないが、フィールドに 0 より大きい値が指定されている場合に UFS 以外のファイルシステムはチェックされる。 このフィールドに 1 が指定されている場合、すべてのファイルシステムは vfstab ファイル内の順番どおりに 1 つずつ検査される。このフィールドに 1 より大きな値が指定され、さらに preen (修復) オプション (-o p) が指定されている UFS ファイルシステムが複数ある場合、効率を最大限に高めるために、fsck は複数のディスク上のファイルシステムを自動的に並行してチェックする。それ以外の場合、このフィールドの値は意味を持たない。fsck pass フィールドでは、ファイルシステムをチェックする順序を明示的には指定できない。 |
mount at boot |
システムのブート時にファイルシステムが mountall によって自動的にマウントされるかどうかを表す。yes または no に設定。このフィールドは AutoFS とは連動していないので注意してください。ルート (/)、 /usr、 /var のファイルシステムは最初は vfstab ファイルからマウントされない。これらのファイルシステムおよび /proc や /dev/fd などのような仮想ファイルシステムの場合、このフィールドは常に no に設定しなければならない。 |
mount options |
ファイルシステムのマウントに使用されるオプションを (空白を空けずに) コンマで区切ったリスト。オプションなしを示すにはダッシュ (-) を使用する。汎用オプションについては、表 36-3 を参照。 |
/etc/vfstab ファイル内の各フィールドには必ずエントリが必要です。フィールドに値を指定しない場合は、必ずダッシュ (-) を入力してください。そうしなければ、システムが正常にブートしない可能性もあります。同様に、フィールドの値に空白文字を使用しないでください。
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
/etc/vfstab ファイルを編集してエントリを追加します。
ルート (/) ファイルシステムは、ブートプロセスの過程でカーネルによって読み取り専用としてマウントされます。そのため、remount オプション (および、remount と一緒に使用できるオプション) だけが /etc/vfstab ファイルのルート (/) エントリでは有効です。
/etc/vfstab のフィールドエントリの詳細は、 表 36-4 を参照してください。次のことを確認します。
各フィールドを空白 (空白文字またはタブ) で区切る。
フィールドで値を指定しない場合はダッシュ (-) を入力する。
変更結果を保存します。
次の例では、デフォルトのマウントオプション (読み取り/書き込み) を使用して、ディスクスライス /dev/dsk/c0t3d0s7 を UFS ファイルとして、マウントポイントディレクトリ /files1 にマウントします。また、「device to fsck」として raw キャラクタ型デバイス /dev/rdsk/c0t3d0s7 を指定します。「fsck pass」の値が 2 なので、ファイルシステムは順不同でチェックされます。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /files1 ufs 2 yes - |
次の例では、システム pluto 上のディレクトリ /export/man を、NFS ファイルシステムとしてマウントポイント /usr/man にマウントします。ファイルシステムが NFS であるため、「device to fsck」や「fsck pass」は指定されません。この例では、「mount options」は ro (読み取り専用) と soft になっています。信頼性を高めるために、読み取り/書き込みの NFS ファイルシステムでは hard マウントオプションを指定します。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options pluto:/export/man - /usr/man nfs - yes ro,soft |
次の例では、ルート (/) ファイルシステムをループバックマウントポイント /tmp/newroot にマウントします。「mount at boot」には yes を指定し、「device to fsck」と「fsck pass」の番号は指定しません。LOFS ファイルシステムをマウントするときは、LOFS を構成するのに使用されるファイルシステムを先にマウントし、その後で LOFS をマウントします。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # / - /tmp/ newroot lofs - yes - |
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
/etc/vfstab ファイル内に列挙されているファイルシステムをマウントします。
# mount mount-point |
mount-point |
/etc/vfstab ファイル内の「mount point」または「device to mount」フィールド内のエントリ。通常は、マウントポイントを指定する方が簡単です。 |
次の例では、/etc/vfstab ファイル内に列挙されているファイルシステム /usr/vfstab をマウントします。
# mount /usr/dist |
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
/etc/vfstab ファイル内に列挙されたファイルシステムをマウントします。
# mountall [-l | -r] [-F fstype] |
オプションを指定しなければ、/etc/vfstab ファイル内で「mount at boot」フィールドに yes を指定したすべてのファイルシステムがマウントされます。
-l |
/etc/vfstab ファイル内で「mount at boot」フィールドに yes を指定したすべてのローカルファイルシステムがマウントされる |
-r |
/etc/vfstab ファイル内で「mount at boot」フィールドに yes を指定したすべてのリモートファイルシステムがマウントされる |
-F fstype |
/etc/vfstab ファイル内で「mount at boot」フィールドに yes を指定した fstype タイプのすべてのファイルシステムがマウントされる |
マウントが実行される前に、「device to fsck」エントリがあるすべてのファイルシステムがチェックされ、必要であれば修正されます。
次の例は、mountall コマンドを実行したときに、すでにファイルシステムがマウントされている場合に表示されるメッセージを示します。
# mountall /dev/rdsk/c0t0d0s7 already mounted mount: /tmp already mounted mount: /dev/dsk/c0t0d0s7 is already mounted, /export/home is busy, or the allowable number of mount points has been exceeded |
次の例では、/etc/vfstab ファイル内に列挙されているすべてのローカルシステムをマウントします。
# mountall -l # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/onerror=panic on ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/onerror=panic on ... /proc on /proc read/write/setuid on Fri Sep 10 16:09:48 1999 /dev/fd on fd read/write/setuid on Fri Sep 10 16:09:51 1999 /etc/mnttab on mnttab read/write/setuid on Fri Sep 10 16:10:06 1999 /var/run on swap read/write/setuid on Fri Sep 10 16:10:06 1999 /tmp on swap read/write/setuid on Fri Sep 10 16:10:09 1999 /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/onerror=panic on ... |
次の例では、/etc/vfstab ファイル内に列挙されているすべてのリモートファイルシステムをマウントします。
# mountall -r # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/onerror=panic on ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/onerror=panic on ... /proc on /proc read/write/setuid on Fri Sep 10 16:09:48 1999 /dev/fd on fd read/write/setuid on Fri Sep 10 16:09:51 1999 /etc/mnttab on mnttab read/write/setuid on Fri Sep 10 16:10:06 1999 /var/run on swap read/write/setuid on Fri Sep 10 16:10:06 1999 /tmp on swap read/write/setuid on Fri Sep 10 16:10:09 1999 /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/onerror=panic on ... /usr/dist on mars:/usr/dist remote/read/write/setuid on Tue Sep 14 15:32:18 1999 |
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
mount(1M) コマンドで、UFS ファイルシステムをマウントします。
# mount [-o mount-options] /dev/dsk/device-name mount-point |
-o mount-options |
UFS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションについては、表 36-3を参照。すべてのオプションについては、mount_ufs(1M) のマニュアルページを参照。 |
/dev/dsk/device-name |
ファイルシステムを保持するディスクスライス用のディスクデバイス名 (/dev/dsk/c0t3d0s7 など)。ディスクデバイス名を調べる方法については、「ディスクスライス情報を表示する方法」を参照。 |
mount-point |
ファイルシステムをマウントするディレクトリ |
次の例では、/dev/dsk/c0t3d0s7 を /files1 ディレクトリにマウントします。
# mount /dev/dsk/c0t3d0s7 /files1 |
UFS ロギングによってファイルシステムの整合性が保たれるために、システムのリブート時間が大幅に短縮されます。次の例は、ログを有効にして、/dev/dsk/c0t3d0s7 を /files1 ディレクトリにマウントします。
# mount -o logging /dev/dsk/c0t3d0s7 /files1 |
ファイルシステムをマウントするときには、largefiles オプションがデフォルトで選択されるため、2G バイトを超えるファイルを作成できます。大規模ファイルを作成した後で、nolargefiles オプションを指定してファイルシステムを再マウントするには、あるいは Solaris 2.6 およびその互換バージョンを実行するシステム上にマウントするには、大規模ファイルをすべて削除して、fsck を実行して状態を「nolargefiles」にリセットしなければなりません。
以下の手順では、ファイルシステム用のエントリが /etc/vfstab ファイルにあるものとします。
スーパーユーザーになります。
ファイルシステム内に大規模ファイルが存在しないことを確認します。
# cd mount-point # find . -xdev -size +20000000 -exec ls -l {} ¥; |
mount-point |
大規模ファイルがあるかどうかをチェックするファイルシステムのマウントポイントを指定する。 |
大規模ファイルが当該ファイルシステム内に存在する場合は、そのファイルを削除するか、他のファイルシステムに移動します。
ファイルシステムのマウントを解除します。
# umount mount-point |
ファイルシステムの状態をリセットします。
# fsck mount-point |
nolargefiles オプションを指定してファイルシステムを再マウントします。
# mount -o nolargefiles mount-point |
次の例は、/datab ファイルシステムをチェックし、nolargefiles オプションを指定して再マウントしています。
# cd /datab # find . -xdev -size +2000000 -exec ls -l {} ¥; # umount /datab # fsck /datab # mount -o nolargefiles /datab |
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
資源 (ファイルまたはディレクトリ) がサーバーから使用可能かどうかを確認します。
NFS ファイルシステムをマウントするには、share(1M) コマンドを使用し、サーバー上の資源を使用可能にしておかなければなりません。資源を共有する方法については、『Solaris のシステム管理 (第 3 巻)』を参照してください。
mount(1M) コマンドで、NFS ファイルシステムをマウントします。
# mount -F nfs [-o mount-options] server:/directory mount-point |
-o mount-options |
NFS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションのリストについては、表 36-3を参照。オプションについては、mount_nfs(1M) のマニュアルページを参照。 |
server:/directory |
共有する資源を持つサーバーのホスト名と、マウントするファイルまたはディレクトリへのパスを指定する。 |
mount-point |
ファイルシステムをマウントするディレクトリを指定する。 |
次の例は、サーバー pluto の /export/packages ディレクトリを /mnt にマウントしています。
# mount -F nfs pluto:/export/packages /mnt |
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
mount(1M) コマンドで、S5FS ファイルシステムをマウントします。
# mount -F s5fs [-o mount-options] /dev/dsk/device_name mount-point |
-o mount-options |
S5FS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションについては、表 36-3 を参照。オプションについては、mount_s5fs(1M) のマニュアルページを参照。 |
/dev/dsk/device-name |
ファイルシステムが存在するディスクスライスのデバイス名 (/dev/dsk/c0t3d0s7 など) 。ディスクデバイス名を調べる方法については、「ディスクスライス情報を表示する方法」を参照。 |
mount-point |
ファイルシステムをマウントするディレクトリを指定する。 |
次の例では、/dev/dsk/c0t3d0s7 を /files1 ディレクトリにマウントします。
# mount -F s5fs /dev/dsk/c0t3d0s7 /files1 |
次の手順で、PCFS (DOS) ファイルシステムをハードディスクからマウントします。
スーパーユーザーになります。
ファイルシステムをマウントするには、ローカルのシステムにマウントポイントが必要です。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
mount(1M) コマンドで、PCFS ファイルシステムをマウントします。
# mount -F pcfs [-o rw | ro] /dev/dsk/device-name:logical-drive mount-point |
-o rw | ro |
PCFS ファイルシステムを読み取り/書き込みまたは読み取り専用にマウントできるように指定する。このオプションを指定しなければ、デフォルトは読み取り/書き込みになる |
/dev/dsk/device-name |
ディスク全体のデバイス名 (/dev/dsk/c0t0d0p0 など) |
logical-drive |
DOS の論理ドライブ名 (c から z まで) または 1 から 24 までのドライブ番号を指定する。ドライブ C はドライブ 1 に相当し、ディスク上の基本 DOS スライスを表す。他のすべてのドライブ名やドライブ番号は、拡張 DOS スライス内の DOS 論理ドライブを表す |
mount-point |
ファイルシステムをマウントするディレクトリ |
「device-name」と「logical-drive」とは、コロンで区切る必要があります。
次の例では、基本 DOS スライス内のドライブが /pcfs/c ディレクトリにマウントされます。
# mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c |
次の例では、ディスク上の拡張 DOS スライス内の最初の論理ドライブが、/mnt に読み取り専用としてマウントされます。
# mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt |
ファイルシステムをマウント解除すると、ファイルシステムのマウントポイントから削除され、そのエントリが /etc/mnttab ファイルから削除されます。マウントされているファイルシステム上では、一部のファイルシステム管理作業を実行できません。次の場合には、ファイルシステムをマウント解除する必要があります。
ファイルシステムが不要になった場合、またはより新しいソフトウェアが入ったファイルシステムに交換された場合
fsck コマンドを使用してファイルシステムを検査し、修復する場合 (fsck コマンドについての詳細は、第 39 章「ファイルシステムの整合性チェック」を参照)
ファイルシステムの完全バックアップを実行する前に、マウント解除しておくとよいでしょう。バックアップの実行についての詳細は、第 43 章「ファイルとファイルシステムのバックアップ (手順)」を参照してください。
各ファイルシステムは、ファイルシステムのシャットダウン手続きの一部として自動的にマウント解除されます。
ファイルシステムをマウント解除する場合の前提条件は次のとおりです。
スーパーユーザーでなければならない
ファイルシステムがマウント解除が可能な状態でなければならない。使用中のファイルシステムはマウント解除できません。ユーザーがそのディレクトリ内に入っているとき、プログラムがそのファイルシステム上のファイルを開いているとき、または共有されているときには、ファイルシステムは使用中とみなされます。次の方法でファイルシステムをマウント解除が可能な状態にできます。
別のファイルシステム内のディレクトリにカレントディレクトリを変更する
システムからログアウトする
fuser コマンドを使用して、そのファイルシステムを使用中のすべてのプロセスを表示し、必要に応じて終了させる。詳細は、「ファイルシステムを使用中のすべてのプロセスを終了させる方法」を参照
他のユーザーが使用しているファイルシステムをマウント解除する必要があるときは、各ユーザーに通知してください。
ファイルシステムの共有を解除する
ファイルシステムをマウント解除したことを確認するには、mount コマンドからの出力を調べます。この手順については、「どのファイルシステムがマウントされているかを調べる方法」を参照してください。
どのプロセスを終了させるかがわかるように、ファイルシステムを使用中のすべてのプロセスを表示します。
# fuser -c [ -u ] mount-point |
-c |
ファイルシステムのマウントポイントとなっているファイルと、マウントされているファイルシステム内のファイルが表示される |
-u |
プロセス ID ごとにユーザーのログイン名が表示されます |
mount-point |
プロセスを終了させたいファイルシステム名 |
ファイルシステムを使用しているすべてのプロセスを終了させます。
ユーザーのプロセスを終了させるときには、必ず事前に警告してください。
# fuser -c -k mount-point |
ファイルシステムを使用中のプロセスに SIGKILL が送信されます。
ファイルシステムを使用中のプロセスがないことを確認します。
# fuser -c mount-point |
次の例では、/export/home ファイルシステムを使用中のプロセス 4006c を終了させます。
# fuser -c /export/home /export/home: 4006c # fuser -c -k /export/home /export/home: 4006c # fuser -c /export/home /export/home: |
次の手順で、ファイルシステム (/、/usr または /var を除く) をマウント解除します。
ルート (/)、/usr および /var の UFS ファイルシステムは特殊な場合です。システムが機能するにはルートが必要なので、ルート (/) のファイルシステムはシャットダウン中でなければマウント解除できません。
「前提条件」 の前提条件を満たしているかどうかを確認します。
ファイルシステムをマウント解除します。
# umount mount-point |
mount-point |
マウント解除したいファイルシステム名。ここでは、ファイルシステムがマウントされているディレクトリ名、ファイルシステムのデバイス名パス、NFS ファイルシステムの資源、LOFS ファイルシステムのループバックディレクトリのいずれかを指定できる |
次の例では、ローカルのホームディレクトリからファイルシステムがマウント解除されます。
# umount /export/home |
次の例ではローカルディスクの 7 番目のスライス上のファイルシステムのマウントが解除されます。
# umount /dev/dsk/c0t0d0s7 |
次の手順で、/、/proc、/var、/usr のファイルシステムを除き、/etc/vfstab ファイルに列挙されているすべてのファイルシステムをマウント解除します。
「前提条件」の前提条件を満たしているかどうかを確認します。
/etc/vfstab ファイルに列挙されているすべてのファイルシステムをマウント解除します。
# umountall |
可能なファイルシステムがすべてマウント解除されます。使用中のファイルシステムはマウント解除されません。
使用中だったためにマウント解除されなかったファイルシステムについては、「ファイルシステムを使用中のすべてのプロセスを終了させる方法」で説明した手順に従って、マウント解除できるようにします。
必要に応じて、すべてのファイルシステムがマウント解除されるまで手順 2 を繰り返します。