Solaris のシステム管理

ファイルシステムのマウント

ファイルシステムを作成したら、使用可能にする必要があります。ファイルシステムを使用可能にするには、マウントします。マウントしたファイルシステムは、システムディレクトリツリー内の指定したマウントポイントに接続され、システムに使用できるようになります。ルート (/) ファイルシステムは常にマウントされています。他のファイルシステムは、ルート (/) ファイルシステムに接続したり切り離したりできます。

ローカルファイルシステムは、次の方法でマウントできます。

ファイルシステムをサーバーから共有する場合に、クライアントは次の 3 つの方法のいずれかで NFS ファイルシステムとしてマウントできます。

CD-ROM 上のファイルシステムは、CD-ROM を挿入するとマウントされます。フロッピーディスク上のファイルシステムは、volcheck(1) コマンドを実行してマウントします。

前提条件

ファイルシステムをマウントする場合の前提条件は次のとおりです。

マウントされたファイルシステムの確認

ファイルシステムや多数のファイルシステムをマウントしたかどうかを検査するには、mount コマンドからの出力を調べます。この手順については、「どのファイルシステムがマウントされているかを調べる方法」を参照してください。

ファイルシステムのマウントとマウント解除に使用するコマンド

表 28-1 は、ファイルシステムのマウントとマウント解除に使用する /usr/sbin ディレクトリ内のコマンドを示しています。

表 28-1 ファイルシステムのマウントとマウント解除に使用するコマンド

コマンド 

説明 

mount(1M)

ファイルシステムとリモート資源をマウントする 

mountall(1M)

/etc/vfstab ファイル内で指定されたすべてのファイルシステムをマウントする。マルチユーザー実行状態に入ると、mountall コマンドが自動的に実行される

umount(1M)

ファイルシステムとリモート資源をマウント解除する 

umountall(1M)

/etc/vfstab ファイル内で指定されたすべてのファイルシステムをマウント解除する

umount コマンドは、整合性のない読み取りや書き込み用のファイルシステムはマウントされません。mount または mountall コマンドからエラーメッセージが表示される場合は、ファイルシステムをチェックする必要があります。ファイルシステムをチェックする方法については、第 31 章「ファイルシステムの完全性チェック」を参照してください。

umount コマンドでは、使用中のファイルシステムはマウント解除されません。ファイルシステムは、ユーザーがそのディレクトリ内にいる場合や、プログラムがその中のファイルを開いている場合に使用中と見なされます。

汎用マウントオプション

表 28-2 は、mount コマンドの -o オプションで指定できる汎用マウントオプションを示しています。複数のオプションを指定する場合は、-o ro,nosuid のように (空白ではなく) コンマで区切ります。

表 28-2 汎用マウントオプション

オプション 

ファイルシステム 

説明 

-rw | ro

CacheFS、NFS、PCFS、UFS、S5FS 

読み取り/書き込みまたは読み取り専用と指定する。このオプションを指定しなければ、デフォルトは読み取り/書き込み 

-nosuid

HSFS、NFS、UFS 

setuid を実行不可にし、ファイルシステム上のデバイスが開かれないようにする。デフォルトでは、setuid は実行可能であり、デバイスを開くことができる

-remount

NFS、UFS、S5FS 

rw とともに、読み取り/書き込み権を持つファイルシステムをマウントし直す

-f

UFS、S5FS 

/etc/mnttab 内のエントリを作成するが、実際にはファイルシステムをマウントしない

-n

UFS、S5FS 

/etc/mnttab 内でエントリを作成せずにファイルシステムをマウントする

-bg | fg

NFS 

最初の試行に失敗すると、バックグラウンド内 (bg) またはフォアグラウンド内 (fg) で再試行する。デフォルトは fg

-soft | hard

NFS 

サーバーが応答しない場合の手続きを指定する。soft は、エラーが返されることを示す。hard は、サーバーが応答するまで再試行要求が継続されることを示す。デフォルトは hard

-intr | nointr

NFS 

ハードマウントされたファイルシステムに関する応答を待つ間にハングしたプロセスを、キーボード割り込みで消去できるか指定する。デフォルトは intr (割り込み可能)

-retry=n

NFS 

マウント操作に失敗した場合に再試行する。n は再試行回数

/etc/vfstab ファイルのフィールドの説明

/etc/vfstab ファイル内のエントリには、表 28-3 のように 7 つのフィールドが入っています。

表 28-3 /etc/vfstab ファイルのフィールドの説明

フィールド名 

説明 

device to mount

マウントできるデバイスは次のとおり 

  • ローカル UFS ファイルシステム用のブロック特殊ファイル (/dev/dsk/c0t0d0s0 など)

  • リモートファイルシステム用の資源名 (NFS ファイルシステム用の myserver:/export/home など)。リモートファイルシステムの詳細は、『NFS の管理』を参照してください

  • スワップするスライス名 (/dev/dsk/c0t3d0s1 など)

  • /proc ディレクトリと proc ファイルシステムのタイプ

device to fsck

device to mount」フィールドで指定したファイルシステムに対応する raw (キャラクタ型) 特殊デバイス (/dev/rdsk/c0t0d0s0 など)。これにより、fsck に使用されるインタフェースが決まる。読み取り専用ファイルシステムやリモートファイルシステムなど、適用できるデバイスがない場合は、ダッシュ (-) を使用する

mount point

デフォルトのマウントポイントディレクトリ (/dev/dsk/c0t0d0s6 の場合は /usr など)

 

FS type

「device to mount」 フィールドで指定したファイルシステムのタイプ

fsck pass

fsck がファイルシステムをチェックするか決めるために使用するパス番号。このフィールドでダッシュ (-) を指定すると、ファイルシステムはチェックされない。このフィールドに 0 より大きい値が入っていると、ファイルシステムがチェックされる。fsck pass の値が 0 の UFS 以外のファイルシステムはチェックされる。UFS ファイルシステムのみの場合は、このフィールドに 0 が入っていると、ファイルシステムはチェックされない。fsck pass の値が 1 より大きい複数の UFS ファイルシステム上で fsck を実行する場合に、preen (修復) オプション (-o p) を指定すると、最大効率を発揮するために fsck によって各種ディスク上でファイルシステムが並行して自動的にチェックされる。このフィールドに値 1 が入っていると、ファイルシステムは順番にチェックされる。SunOS システムソフトウェアの場合、「fsck pass」フィールドはシステムがチェックされる順序を明示的に指定しない

mount at boot

システムのブート時にファイルシステムが mountall によって自動的にマウントされるかどうかを表す。yes または no に設定。このフィールドは AutoFS とは連動していないので注意してください。

mount options

ファイルシステムのマウントに使用されるオプションを (空白を空けずに) コンマで区切ったリスト。オプションなしを示すにはダッシュ (-) を使用する。オプションについては、mount(1M) のマニュアルページを参照


注 -

/etc/vfstab ファイル内のフィールドごとに 1 つずつエントリがなければなりません。フィールドで値を指定しない場合は、必ずダッシュ (-) を入力してください。


どのファイルシステムがマウントされているかを調べる方法

どのファイルシステムがマウントされているかを調べるには、次のように入力します。

$ mount

例 - どのファイルシステムがマウントされているかを調べる

$ mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/largefiles on ...
/usr on /dev/dsk/c0t3d0s6 read/write/setuid/largefiles on ...
/proc on /proc read/write/setuid on Fri May 16 11:39:05 1997
/dev/fd on fd read/write/setuid on Fri May 16 11:39:05 1997
/export on /dev/dsk/c0t3d0s3 setuid/read/write/largefiles on ...
/export/home on /dev/dsk/c0t3d0s7 setuid/read/write/largefiles on ...
/export/swap on /dev/dsk/c0t3d0s4 setuid/read/write/largefiles on ...
/opt on /dev/dsk/c0t3d0s5 setuid/read/write/largefiles on ...
/tmp on swap read/write on Fri May 16 11:39:07 1997
$

/etc/vfstab ファイルにエントリを追加する方法

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. /etc/vfstab ファイルを編集してエントリを追加します。

    表 28-3 のフィールドエントリの詳細は、/etc/vfstab を参照してください。次のことを確認します。

    • 各フィールドを空白 (空白文字またはタブ) で区切る。

    • フィールドで値を指定しない場合はダッシュ (-) を入力する。

  3. 変更結果を保存します。

例 - /etc/vfstab ファイルにエントリを追加する

#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   -                /usr/man nfs     -      yes     ro,soft
/                   -                /tmp/newroot lofs -     yes     -          

この例では、デフォルトのマウントオプション (読み取り/書き込み) を使用して、マウントポイントディレクトリ /files1 に接続される UFS ファイルとして、ディスクスライス /dev/dsk/c0t3d0s7 をマウントします。また、「device to fsck」として raw キャラクタ型デバイス /dev/rdsk/c0t3d0s7 を指定します。「fsck pass」の値は 2 なので、ファイルシステムは順不同でチェックされます。

この例では、システム pluto からのディレクトリ /export/man を、NFS ファイルシステムとしてマウントポイント /usr/man にマウントします。NFS ファイルシステムである「device to fsck」や「fsck pass」は指定されていません。この例では、「mount options」は ro (読み取り専用) と soft になっています。信頼性を高めるために、読み取り/書き込み NFS ファイルシステムの場合は hard マウントオプションを指定します。

この例では、ルート (/) ファイルシステムをループバックマウントポイント /tmp/newroot にマウントします。「mount at boot」は yes と指定し、「device to fsck」と「fsck pass」の番号は指定していません。ループバックファイルシステムを構成するファイルシステムを使用したら、必ずループバックファイルシステムをマウントしなければなりません。ループバックエントリは、それが依存するエントリの後に位置するように、/etc/vfstab ファイル内で最後のエントリでなければなりません。

/etc/vfstab ファイル内に列挙された複数のファイルシステムをマウントする方法

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. /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」エントリがあるすべてのファイルシステムがチェックされ、必要であれば修正されます。

例 - /etc/vfstab ファイル内に列挙された複数のファイルシステムをマウントする

次の例は、mountall コマンドの使用時に、すでにファイルシステムがマウントされている場合に表示されるメッセージを示しています。

# mountall
mount: /tmp already mounted
nfs mount: mount: /usr/openwin: Device busy
nfs mount: mount: /usr/man: Device busy

次の例では、/etc/vfstab ファイル内に列挙されたすべてのローカルシステムがマウントされます。

# mountall -l
# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/largefiles on ...
/usr on /dev/dsk/c0t3d0s6 read/write/setuid/largefiles on ...
/proc on /proc read/write/setuid on Fri May 16 11:39:05 1997
/dev/fd on fd read/write/setuid on Fri May 16 11:39:05 1997
/tmp on swap read/write on Fri May 16 11:39:07 1997

次の例では、/etc/vfstab ファイル内に列挙されたすべてのリモートファイルシステムがマウントされます。

# mountall -r
# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/largefiles on ...
/usr on /dev/dsk/c0t3d0s6 read/write/setuid/largefiles on ...
/proc on /proc read/write/setuid on Fri May 16 11:39:05 1997
/dev/fd on fd read/write/setuid on Fri May 16 11:39:05 1997
/tmp on swap read/write on Fri May 16 11:39:07 1997
/nfs/mars.dist on mars:/usr/dist intr/remote on ...
/nfs/mars.mail on mars:/var/mail intr/noac/remote on ...

/etc/vfstab ファイル内に列挙されたファイルシステムをマウントする方法

  1. 「前提条件」の前提条件を満たしているか確認します。

  2. /etc/vfstab ファイル内に列挙されたファイルシステムをマウントします。

    # mount mount-point
    

    mount-point

    /etc/vfstab ファイル内の「mount point」または「device to mount」フィールド内のエントリ。通常は、マウントポイントを指定する方が簡単にできます

例 - /etc/vfstab ファイル内に列挙されたファイルシステムをマウントする

次の例では、/etc/vfstab ファイル内に列挙されたファイルシステム /usr/openwin をマウントします。

# mount /usr/openwin

UFS ファイルシステムをマウントする方法

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. UFS ファイルシステムをマウントします。

    # mount [-o mount-options] /dev/dsk/device-namemount-point
    

    -o mount-options

    UFS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションについては、表 28-2 を参照。すべてのオプションについては、mount_ufs(1M) のマニュアルページを参照

    /dev/dsk/device-name

    ファイルシステムを保持するディスクスライス用の特殊ブロックデバイスファイル (/dev/dsk/c0t3d0s7 など)。ディスクデバイス名を調べる方法については、第 26 章「ファイルシステムの概要」を参照

    mount-point

    ファイルシステムをマウントするディレクトリ 

例 - UFS ファイルシステムをマウントする

次の例では、/dev/dsk/c0t3d0s7/files1 ディレクトリにマウントされます。

# mount /dev/dsk/c0t3d0s7 /files1

大規模ファイルを持つファイルシステムをマウントする方法

新しい largefiles マウントオプションは Solaris 2.6 環境のデフォルトの状態で、2G バイトより大きい大規模ファイルを持つファイルシステムをマウントできるようになります。

大規模ファイルを持つファイルシステムをマウントする手順は、「UFS ファイルシステムをマウントする方法」ですでに説明している手順と同じです。

largefiles オプションは、このオプションでマウントしたファイルシステムが 2G バイトより大きい大規模ファイルを 1 つまたは複数持つ可能性があることを意味します。しかし、このオプションでマウントしたファイルシステムが必ずしも 2G バイトより大きい大規模ファイルを持つ必要はありません。このオプションは、このようなファイルがファイルシステム内に存在することを許可します。

この動作を無効にするには、nolargefiles マウントオプションを明示的に使用しなければなりません。nolargefiles オプションは、2G バイトの最大ファイルサイズ制限を課すことによって、以前のファイルシステムの動作との全体的な互換性を提供します。

大規模ファイルを持たないファイルシステムを再マウントする方法

デフォルトの largefiles マウントオプションでファイルシステムをマウントして、大規模ファイルを作成した後には、大規模ファイルを削除して、fsck を実行して状態を「nolargefiles」にリセットするまで、nolargefiles オプションでファイルシステムを再マウントできません。

  1. スーパーユーザーになります。

  2. ファイルシステム内に大規模ファイルが存在しないことを確認します。

    # cd /file-system
    # find . -xdev -size +2000000 -exec ls -l {} ¥;
    

    file-system

    大規模ファイルをチェックするファイルシステム 

    大規模ファイルが当該ファイルシステム内に存在する場合は、そのファイルを削除するか、他のファイルシステムに移動します。

  3. ファイルシステムのマウントを解除します。

    # umount /file-system
    
  4. ファイルシステムの状態をリセットします。

    # fsck /dev/rdsk/device-name
    
  5. nolargefiles オプションでファイルシステムを再マウントします。

    # mount -o nolargefiles /dev/rdsk/device-name
    

例 - 大規模ファイルを持たないファイルシステムをマウントする

この例では、/datab 中に大規模ファイルが存在しないことをチェックして、/dev/dsk/c0t3d0s7/datab ディレクトリにマウントしています。

# cd /datab
# find . -xdev -size +2000000 -exec ls -l {} ¥;
# find . -xdev -size +2000000 -exec ls -l {} ¥;
# umount /datab 
# fsck /dev/rdsk/c0t3d0s7 /files1
# mount -o nolargefiles /dev/dsk/c0t3d0s7 /files1

NFS ファイルシステムをマウントする方法

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. ファイルシステムをサーバーから使用可能かどうかを確認します。

    NFS ファイルシステムをマウントするには、サーバーシステムから使用できるようにしなければなりません。サーバーで share(1M) コマンドを使用すると、ネットワーク上で共有できるファイルシステムのリストが表示されます。ファイルシステムの共有方法については、『NFS の管理』を参照してください。

  3. NFS ファイルシステムをマウントします。

    # mount -F nfs [-o mount-options] server:/directory mount-point
    

    -o mount-options

    NFS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションのリストについては、表 28-2 を参照。オプションについては、mount_nfs(1M) のマニュアルページを参照

    server:/directory

    ファイルシステムをマウントするサーバーのホスト名と、マウントするファイルシステム名 

    mount-point

    ファイルシステムをマウントするディレクトリ 

例 - NFS ファイルシステムをマウントする

次の例では、ディレクトリ /export/packages 内のパッケージがサーバー pluto から /mnt にマウントされます。

# mount -F nfs pluto:/export/packages /mnt

x86: System 5 (S5FS) ファイルシステムをマウントする方法

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. S5FS ファイルシステムをマウントします。

    # mount -F s5fs [-o mount-options] /dev/dsk/device-name mount-point
    

    -o mount-options

    S5FS ファイルシステムのマウントに使用できるマウントオプションを指定する。汎用マウントオプションについては、表 28-2 を参照。オプションについては、mount_s5fs(1M) のマニュアルページを参照

    /dev/dsk/device-name

    ファイルシステムを保持するディスクスライスのデバイス名 (/dev/dsk/c0t3d0s7 など) 。ディスクデバイス名を調べる方法については、第 20 章「デバイスへのアクセス」を参照

    mount-point

    ファイルシステムをマウントするディレクトリ 

例 - S5FS ファイルシステムをマウントする

次の例では、/dev/dsk/c0t3d0s7/files1 ディレクトリにマウントされます。

# mount -F s5fs /dev/dsk/c0t3d0s7 /files1

x86: PCFS (DOS) ファイルシステムをハードディスクからマウントする方法

次の手順で、PCFS (DOS) ファイルシステムをハードディスクからマウントします。

  1. 「前提条件」の前提条件を満たしているかどうかを確認します。

  2. 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」 は、コロンで区切らなければならないので注意してください。

例 - PCFS (DOS) ファイルシステムをハードディスクからマウントする

次の例では、一次 DOS スライス内の論理ドライブが /pcfs/c ディレクトリにマウントされます。

# mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c

次の例では、ディスク上の拡張 DOS スライス内の最初の論理ドライブが、/pcfs/d に読み取り専用としてマウントされます。

# mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /pcfs/d