Solaris のシステム管理 (デバイスとファイルシステム)

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

次の節では、/etc/vfstab ファイルにエントリを追加するか、コマンド行から mount コマンドを使用して UFS ファイルシステムをマウントする方法について説明します。

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

どのファイルシステムがすでにマウント済みであるかを調べるには、mount コマンドを使用します。


$ mount [ -v ]

-v は、マウントされているファイルシステムのリストを冗長モードで表示します。


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

この例は、mount コマンドを使用して、現在マウントされているファイルシステムに関する情報を表示する方法を示しています。


$ mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=...
/devices on /devices read/write/setuid/dev=46c0000 on Thu Sep  ...
/system/contract on ctfs read/write/setuid/devices/dev=43c0001 ... 
/usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/...
/proc on /proc read/write/setuid/dev=4700000 on Thu Sep  2 ...
/etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Sep  2 ...
/etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4480001 ...
/system/object on objfs read/write/setuid/devices/dev=44c0001 ...
/dev/fd on fd read/write/setuid/dev=4800000 on Thu Sep  2 ...
/var/run on swap read/write/setuid/xattr/dev=1 on Thu Sep  2 ...
/tmp on swap read/write/setuid/xattr/dev=2 on Thu Sep  2 ...
/stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr...
/export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/...
/home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr/...
$

この例は、zfs mount コマンドを使用して、現在マウントされている ZFS ファイルシステムに関する情報を表示する方法を示しています。


$ zfs mount
rpool/ROOT/zfs509BE            /
rpool/export                    /export
rpool/export/home               /export/home
rpool                           /rpool

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

レガシーのマウント動作が必要な ZFS ファイルシステムが存在しない場合は、ここに示す手順に従ってブート時に非 ZFS ファイルシステムをマウントします。ZFS ファイルシステムをマウントする方法の詳細は、『Oracle Solaris ZFS 管理ガイド』を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じて、マウントするファイルシステムのマウントポイントを作成します。


    # mkdir /mount-point
    

    ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。「マウントポイント」とは、マウントされるファイルシステムが接続されるディレクトリのことです。

  3. /etc/vfstab ファイルを編集し、エントリを追加します。次のことを確認してください。

    1. 各フィールドを空白 (空白文字またはタブ) で区切ります。

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

    3. 変更を保存します。

    /etc/vfstab フィールドのエントリの詳細は、表 18–3 を参照してください。


    注 –

    ルート (/) ファイルシステムは、ブートプロセスの過程でカーネルによって読み取り専用としてマウントされます。そのため、remount オプション (および、remount と一緒に使用できるオプション) だけが /etc/vfstab ファイルのルート (/) エントリでは有効です。



例 18–2 /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       -                   

Procedure1 つのファイルシステムをマウントする方法 (/etc/vfstab ファイル)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # mount /mount-point
    

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


例 18–3 1 つのファイルシステムをマウントする (/etc/vfstab ファイル)

次の例は、/etc/vfstab ファイル内に列挙されているファイルシステム /usr/dist をマウントする方法を示しています。


# mount /usr/dist


例 18–4 すべてのファイルシステムをマウントする (/etc/vfstab ファイル)

次に、ファイルシステムがすでにマウントされている状態で 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

mountall コマンドを実行すると、device to fsck エントリを持つすべてのファイルシステムが、マウント前に検査され、必要に応じて修正されます。

次の例は、/etc/vfstab ファイル内に列挙されているすべてのローカルシステムをマウントする方法を示しています。


# mountall -l
# mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=...
/devices on /devices read/write/setuid/dev=46c0000 on Thu Sep  ...
/system/contract on ctfs read/write/setuid/devices/dev=43c0001 ... 
/usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/...
/proc on /proc read/write/setuid/dev=4700000 on Thu Sep  2 ...
/etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Sep  2 ...
/etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4480001 ...
/system/object on objfs read/write/setuid/devices/dev=44c0001 ...
/dev/fd on fd read/write/setuid/dev=4800000 on Thu Sep  2 ...
/var/run on swap read/write/setuid/xattr/dev=1 on Thu Sep  2 ...
/tmp on swap read/write/setuid/xattr/dev=2 on Thu Sep  2 ...
/stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr...
/export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/...

次の例は、使用可能なすべての ZFS ファイルシステムをマウントする方法を示します。


# zfs mount -a

次の例は、/etc/vfstab ファイル内に列挙されているすべてのリモートファイルシステムをマウントする方法を示しています。


# mountall -r
# mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=...
/devices on /devices read/write/setuid/dev=46c0000 on Thu Sep  ...
/system/contract on ctfs read/write/setuid/devices/dev=43c0001 ... 
/usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/...
/proc on /proc read/write/setuid/dev=4700000 on Thu Sep  2 ...
/etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Sep  2 ...
/etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4480001 ...
/system/object on objfs read/write/setuid/devices/dev=44c0001 ...
/dev/fd on fd read/write/setuid/dev=4800000 on Thu Sep  2 ...
/var/run on swap read/write/setuid/xattr/dev=1 on Thu Sep  2 ...
/tmp on swap read/write/setuid/xattr/dev=2 on Thu Sep  2 ...
/stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr...
/stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr...
/export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/...
/home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr/...

ProcedureUFS ファイルシステムのマウント方法 (mount コマンド)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じて、マウントするファイルシステムのマウントポイントを作成します。


    # mkdir /mount-point
    

    ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。「マウントポイント」とは、マウントされるファイルシステムが接続されるディレクトリのことです。

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


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

    UFS ファイルシステムのマウントに使用できるマウントオプションを指定します。オプションの一覧は、表 18–2 または mount_ufs(1M) のマニュアルページを参照してください。

    /dev/dsk/device-name

    ファイルシステムが含まれているディスクスライス用のディスクデバイス名 (/dev/dsk/c0t3d0s7 など) を指定します。ディスクのスライス情報を表示する方法については、「ディスクスライス情報を表示する方法」を参照してください。

    /mount-point

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


例 18–5 UFS ファイルシステムをマウントする (mount コマンド)

次の例は、/dev/dsk/c0t3d0s7/files1 ディレクトリにマウントする方法を示しています。


# mount /dev/dsk/c0t3d0s7 /files1

Procedure大規模ファイルを持たない UFS ファイルシステムをマウントする方法 (mount コマンド)

ファイルシステムのマウント時には、largefiles オプションがデフォルトで選択されます。このオプションにより、2G バイトを超えるファイルを作成できます。ファイルシステム内に大規模なファイルが存在する場合は、大規模ファイルをすべて削除し、fsck コマンドを実行して状態を「nolargefiles」にリセットしない限り、ファイルシステムを nolargefiles オプションを使って再マウントしたり、以前の Solaris バージョンが動作するシステムにマウントしたりすることはできません。

次の手順では、ファイルシステム用のエントリが /etc/vfstab ファイルにあるものとします。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じて、マウントするファイルシステムのマウントポイントを作成します。


    # mkdir /mount-point
    

    ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。「マウントポイント」とは、マウントされるファイルシステムが接続されるディレクトリのことです。

  3. ファイルシステム上に大規模ファイルが存在していないことを確認してください。


    # cd /mount-point
    # find . -xdev -size +20000000 -exec ls -l {} \;
    

    /mount-point には、大規模ファイルがあるかどうかを検査するファイルシステムのマウントポイントを指定します。

  4. 大規模ファイルが当該ファイルシステム内に存在する場合は、必要に応じてそのファイルを削除するか、ほかのファイルシステムに移動します。

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


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


    # fsck /mount-point
    
  7. nolargefiles オプションを指定してファイルシステムを再マウントします。


    # mount -o nolargefiles /mount-point
    

例 18–6 大規模ファイルを持たないファイルシステムをマウントする (mount コマンド)

次の例は、/datab ファイルシステムを検査し、nolargefiles オプションを指定して再マウントする方法を示しています。


# cd /datab
# find . -xdev -size +20000000 -exec ls -l {} \;
# umount /datab 
# fsck /datab
# mount -o nolargefiles /datab

ProcedureNFS ファイルシステムのマウント方法 (mount コマンド)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じて、マウントするファイルシステムのマウントポイントを作成します。


    # mkdir /mount-point
    

    ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。「マウントポイント」とは、マウントされるファイルシステムが接続されるディレクトリのことです。

  3. リソース (ファイルまたはディレクトリ) がサーバーから使用可能かどうかを確認します。

    NFS ファイルシステムをマウントするには、share コマンドを使用し、サーバー上のリソースを使用可能にしておかなければなりません。リソースを共有する方法については、『Solaris のシステム管理 (ネットワークサービス)』「NFS サービスについて」を参照してください。

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


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

    NFS ファイルシステムのマウントに使用できるマウントオプションを指定します。よく使用される mount オプションの一覧については表 18–2、すべてのオプションの一覧については mount_nfs(1M) のマニュアルページを参照してください。

    server:/directory

    共有するリソースを持つサーバーのホスト名と、マウントするファイルまたはディレクトリへのパスを指定します。

    /mount-point

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


例 18–7 NFS ファイルシステムをマウントする (mount コマンド)

次の例は、サーバー pluto/export/packages ディレクトリを /mnt にマウントする方法を示しています。


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

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

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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じて、マウントするファイルシステムのマウントポイントを作成します。


    # mkdir /mount-point
    

    ファイルシステムをマウントするには、ローカルシステム上にマウントポイントを作成する必要があります。「マウントポイント」とは、マウントされるファイルシステムが接続されるディレクトリのことです。

  3. 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」は、コロンで区切る必要があります。


例 18–8 x86: ハードディスクから PCFS (DOS) ファイルシステムをマウントする (mount コマンド)

次の例は、基本 DOS スライス内の論理ドライブを /pcfs/c ディレクトリにマウントする方法を示しています。


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

次の例では、/mnt ディレクトリの拡張 DOS スライスに含まれる最初の論理ドライブを読み取り専用でマウントする方法を示します。


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