この章では、ファイルシステムをマウントしたり、マウント解除する方法について説明します。
この章で説明する手順は次のとおりです。
ファイルシステムを作成したら、そのファイルシステムをシステムで使用できるようにする必要があります。ファイルシステムを使用できるようにするには、マウントします。マウントしたファイルシステムは、システムのディレクトリツリー内の指定したマウントポイントに接続されます。ルート (/) ファイルシステムは、常にマウントされています。
次の表に、ファイルシステムをその用途に応じてマウントするためのガイドラインを示します。
ファイルシステムを含むメディアは、必要に応じてメディアをドライブに挿入し、volcheck コマンドを実行することによってマウントできます。リムーバブルメディアのマウント方法については、第 17 章「リムーバブルメディアの管理 (概要)」を参照してください。
表 40–1 に、ファイルシステムのマウントとマウント解除に使用する /usr/sbin ディレクトリ内のコマンドを示します。
表 40–1 ファイルシステムのマウントとマウント解除に使用するコマンド
コマンド |
マニュアルページ |
説明 |
---|---|---|
mount |
mount(1M) |
ファイルシステムとリモートリソースをマウントする。 |
mountall |
mountall(1M) |
/etc/vfstab ファイルに指定されているすべてのファイルシステムをマウントする。マルチユーザー実行状態になるときに、mountall コマンドが自動的に実行される。 |
umount |
mount(1M) |
ファイルシステムとリモートリソースをマウント解除する。 |
umountall |
mountall(1M) |
/etc/vfstab ファイルに指定されているすべてのファイルシステムをマウント解除する。 |
mount と mountall の各コマンドは、不整合が認められた読み取り/書き込み用のファイルシステムはマウントしません。mount または mountall コマンドからエラーメッセージが表示される場合は、ファイルシステムをチェックする必要があります。ファイルシステムをチェックする方法については、第 43 章「UFS ファイルシステムの整合性チェック (手順)」を参照してください。
umount と umountall の各コマンドは、使用中のファイルシステムはマウント解除しません。ファイルシステムは、次の場合に使用中であるとみなされます。
ユーザーがファイルシステム内のファイルまたはディレクトリにアクセスしている場合
プログラムがそのファイルシステム上にあるファイルをオープンしている場合
ファイルシステムが共有されている場合
次の表に、mount -o オプションで指定できる汎用オプションを示します。複数のオプションを指定する場合は、コンマ (空白を入れない) で区切ります。たとえば、-o ro,nosuidのようになります。
各ファイルシステムタイプで指定可能なマウントオプションのリストについては、各マウントコマンドのマニュアルページ (mount_ufs(1M) など) を参照してください。
表 40–2 -o で指定する汎用マウントオプション
/etc/vfstab ファイル内のエントリには、次の図に示すように 7 つのフィールドがあります。
表 40–3 /etc/vfstab ファイルのフィールドの説明
フィールド名 |
説明 |
---|---|
device to mount |
このフィールドは、次のいずれかを指定する。
|
device to fsck |
「device to mount」フィールドで指定した UFS ファイルシステムに対応する raw (キャラクタ型) デバイス名 (/dev/rdsk/c0t0d0s0 など)。このフィールドによって、fsck コマンドが使用する raw インタフェースが決まる。読み取り専用ファイルシステムやリモートファイルシステムなど、適用できるデバイスがない場合は、ダッシュ (-) を使用する。 |
mount point |
デフォルトのマウントポイントディレクトリ (/usr など) を指定する。
|
FS type |
ファイルシステムのタイプを指定する。 |
fsck pass |
fsck コマンドがファイルシステムをチェックするか決めるために使用するパス番号。このフィールドでダッシュ (-) を指定すると、ファイルシステムはチェックされない。 このフィールドに 0 が指定されている場合、UFS ファイルシステムはチェックされないが、UFS 以外のファイルシステムはチェックされる。このフィールドに 0 より大きい値が指定されている場合、UFS ファイルシステムは常にチェックされる。 このフィールドに 1 が指定されている場合、すべてのファイルシステムは vfstab ファイル内の順番どおりに 1 つずつチェックされる。このフィールドに 1 より大きな値が指定され、さらに preen (修復) オプション (-o p) が指定されている UFS ファイルシステムが複数ある場合、効率を最大限に高めるために、fsck コマンドは複数のディスク上のファイルシステムを自動的に並行してチェックする。それ以外の場合、このフィールドの値は意味を持たない。 |
mount at boot |
システムのブート時にファイルシステムが mountall コマンドによって自動的にマウントされるかどうかを yes または no で設定する。このフィールドは AutoFS とは連動していないので注意すること。ルート (/)、 /usr、 /var のファイルシステムは最初は vfstab ファイルからマウントされない。これらのファイルシステムおよび /proc や /dev/fd などのような仮想ファイルシステムの場合、このフィールドは常に no に設定しなければならない。 |
mount options |
ファイルシステムのマウントに使用されるオプションを (空白を空けずに) コンマで区切ったリスト。オプションなしを示すにはダッシュ (-) を使用する。汎用マウントオプションについては、表 40–2 を参照。 |
/etc/vfstab ファイル内の各フィールドには必ずエントリが必要です。フィールドに値を指定しない場合は、必ずダッシュ (-) を入力してください。ダッシュを入力しないと、システムが正常にブートしない可能性があります。同様に、フィールドの値に空白文字を使用しないでください。
次の節では、/etc/vfstab ファイルにエントリを追加するか、コマンド行から mount コマンドを使用してファイルシステムをマウントする方法について説明します。
どのファイルシステムがすでにマウント済みであるかを調べるには、mount コマンドを使用します。
$ mount [ -v ] |
-v |
マウントされているファイルシステムのリストを冗長モードで表示する |
この例は、mount コマンドを使用して、現在マウントされているファイルシステムに関する情報を表示する方法を示しています。
$ mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror= ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/onerror= ... /proc on /proc read/write/setuid/dev=4300000 on Fri Nov 30 11:25:13 2001 /etc/mnttab on mnttab read/write/setuid/dev=43c0000 on Fri Nov 30 11:25:13 ... /dev/fd on fd read/write/setuid/dev=4400000 on Fri Nov 30 11:25:17 2001 /var/run on swap read/write/setuid/xattr/dev=1 on Fri Nov 30 11:25:20 2001 /tmp on swap read/write/setuid/xattr/dev=2 on Fri Nov 30 11:25:24 2001 /export on /dev/dsk/c0t0d0s4 read/write/setuid/intr/largefiles/xattr/ ... /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/ ... $ |
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、マウントするファイルシステムのマウントポイントを作成します。
# mkdir /mount-point |
ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
/etc/vfstab ファイルを編集してエントリを追加します。次のことを確認してください。
/etc/vfstab フィールドのエントリについては、表 40–3 を参照してください。
ルート (/) ファイルシステムは、ブートプロセスの過程でカーネルによって読み取り専用としてマウントされます。そのため、remount オプション (および、remount と一緒に使用できるオプション) だけが /etc/vfstab ファイルのルート (/) エントリでは有効です。
次の例は、ディスクスライス /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 になっています。
#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 にマウントする方法を示しています。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/dist をマウントする方法を示しています。
# mount /usr/dist |
次の例は、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 |
マウントが実行される前に、「device to fsck」エントリがあるすべてのファイルシステムがチェックされ、必要であれば修正されます。
次の例は、/etc/vfstab ファイル内に列挙されているすべてのローカルシステムをマウントする方法を示しています。
# mountall -l # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror= ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/ ... /proc on /proc read/write/setuid/dev=38c0000 on Tue Oct 30 15:45:32 2001 /etc/mnttab on mnttab read/write/setuid/dev=3980000 on Tue Oct 30 ... /dev/fd on fd read/write/setuid/dev=39c0000 on Tue Oct 30 15:45:36 2001 /var/run on swap read/write/setuid/xattr/dev=1 on Tue Oct 30 15:45:39 ... /tmp on swap read/write/setuid/xattr/dev=2 on Tue Oct 30 16:05:57 2001 /datab on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/xattr/ ... |
次の例は、/etc/vfstab ファイル内に列挙されているすべてのリモートファイルシステムをマウントする方法を示しています。
# mountall -r # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror= ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/onerror= ... /proc on /proc read/write/setuid/dev=38c0000 on Tue Oct 30 15:45:32 2001 /etc/mnttab on mnttab read/write/setuid/dev=3980000 on Tue Oct 30 ... /dev/fd on fd read/write/setuid/dev=39c0000 on Tue Oct 30 15:45:36 2001 /var/run on swap read/write/setuid/xattr/dev=1 on Tue Oct 30 15:45:39 2001 /tmp on swap read/write/setuid/xattr/dev=2 on Tue Oct 30 16:05:57 2001 /datab on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/xattr/ ... /home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr ... |
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、マウントするファイルシステムのマウントポイントを作成します。
# mkdir /mount-point |
ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
UFS ファイルシステムをマウントします。
# mount [-o mount-options] /dev/dsk/device-name /mount-point |
-o mount-options |
UFS ファイルシステムのマウントに使用できるマウントオプションを指定する。オプションの詳細は、表 40–2 または 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 ファイルにあるものとします。
必要に応じて、マウントするファイルシステムのマウントポイントを作成します。
# mkdir /mount-point |
ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
ファイルシステム内に大規模ファイルが存在しないことを確認します。
# 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 |
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、マウントするファイルシステムのマウントポイントを作成します。
# mkdir /mount-point |
ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
リソース (ファイルまたはディレクトリ) がサーバーから使用可能かどうかを確認します。
NFS ファイルシステムをマウントするには、share コマンドを使用し、サーバー上のリソースを使用可能にしておかなければなりません。リソースの共有方法については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「NFS サービスについて」を参照してください。
NFS ファイルシステムをマウントします。
# mount -F nfs [-o mount-options] server:/directory /mount-point |
-o mount-options |
NFS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションのリストについては、表 40–2 を参照。オプションについては、mount_nfs(1M) のマニュアルページを参照。 |
server:/directory |
共有するリソースを持つサーバーのホスト名と、マウントするファイルまたはディレクトリへのパスを指定する。 |
/mount-point |
ファイルシステムをマウントするディレクトリを指定する。 |
次の例は、サーバー pluto の /export/packages ディレクトリを /mnt にマウントする方法を示しています。
# mount -F nfs pluto:/export/packages /mnt |
次の手順で、PCFS (DOS) ファイルシステムをハードディスクからマウントします。
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、マウントするファイルシステムのマウントポイントを作成します。
# mkdir /mount-point |
ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。マウントポイントとは、マウントされるファイルシステムが接続されるディレクトリのことです。
PCFS ファイルシステムをマウントします。
# mount -F pcfs [-o rw | ro] /dev/dsk/device-name:logical-drive /mount-point |
-o rw | ro |
PCFS ファイルシステムを読み取り/書き込み (rw) または読み取り専用 (ro) にマウントできることを指定する。このオプションを指定しない場合のデフォルトは rw |
/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 コマンドの詳細については、第 43 章「UFS ファイルシステムの整合性チェック (手順)」を参照してください。
ファイルシステムの完全バックアップを実行する前に、マウント解除しておくとよいでしょう。バックアップの実行についての詳細は、第 47 章「ファイルとファイルシステムのバックアップ (手順)」を参照してください。
各ファイルシステムは、ファイルシステムのシャットダウン手順の一部として自動的にマウント解除されます。
umount -f オプションを使用すると、非常時に使用中のファイルシステムを強制的にマウント解除できます。ファイルを開いた状態でファイルシステムをマウント解除すると、データが失われる可能性があるため、非常時以外はこの操作を行わないようにしてください。このオプションは、UFS と NFS のファイルシステムでのみ使用できます。
ファイルシステムをマウント解除する場合の前提条件は次のとおりです。
スーパーユーザーになるか、同等の役割を引き受けていなければならない。
ファイルシステムがマウント解除が可能な状態でなければならない。使用中のファイルシステムはマウント解除できません。ユーザーがそのディレクトリ内に入っているとき、プログラムがそのファイルシステム上のファイルを開いているとき、または共有されているときには、ファイルシステムは使用中とみなされます。次の方法でファイルシステムをマウント解除が可能な状態にできます。
別のファイルシステム内のディレクトリにカレントディレクトリを変更する
システムからログアウトする
fuser コマンドを使用して、そのファイルシステムを使用中のすべてのプロセスを表示し、必要に応じて終了させる。詳細については、ファイルシステムを使用中のすべてのプロセスを終了させる方法を参照。
他のユーザーが使用しているファイルシステムをマウント解除する必要があるときは、各ユーザーに通知してください。
ファイルシステムの共有を解除する。ファイルシステムの共有を解除する方法については、unshare(1M) のマニュアルページを参照してください。
ファイルシステムをマウント解除したことを確認するには、mount コマンドからの出力を調べます。
$ mount | grep unmounted-file-system $ |
どのプロセスを終了させるかがわかるように、ファイルシステムを使用中のすべてのプロセスを表示します。
# 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 の各ファイルシステムは、システムが機能するのに必要であるため、シャットダウン中でなければマウント解除できません。
ファイルシステムをマウント解除する場合の前提条件の前提条件を満たしているかどうかを確認します。
ファイルシステムをマウント解除します。
# umount /mount-point |
/mount-point は、マウント解除するファイルシステムの名前を示します。次のいずれかを指定できます。
ファイルシステムがマウントされているディレクトリ 名
ファイルシステムのデバイス名パス
NFS ファイルシステムのリソース
LOFS ファイルシステムのループバックディレクトリ
次の例は、ローカルのホームディレクトリからファイルシステムをマウント解除する方法を示しています。
# umount /export/home |
次の例は、ローカルディスクの 7 番目のスライス上のファイルシステムをマウント解除する方法を示しています。
# umount /dev/dsk/c0t0d0s7 |
次の例は、/export ファイルシステムを強制的にマウント解除する方法を示しています。
# umount -f /export # |
次の例は、 /etc/vfstab ファイル内のすべてのファイルシステム (ルート (/)、 /proc、/var、/usr を除く) をマウント解除する方法を示しています。
# umountall |
使用中のファイルシステムを除く、すべてのファイルシステムがマウント解除されます。