この章では、Solaris 環境においてコマンド行から CD を使用する方法について説明します。この章で説明する手順は次のとおりです。
作業 |
説明 |
手順の説明 |
---|---|---|
CD のロード |
CD-ROM ドライブに CD を挿入する。 | |
CD の内容の確認 |
省略可能。 CD の内容を調べるには、/cdrom の下にある適切なディレクトリを調べる。 | |
ファイルまたはディレクトリのコピー |
省略可能。 ファイルシステムの任意の場所からコピーをするのと同様に、CD からファイルまたはディレクトリをコピーする。 | |
CD が使用中かどうかの確認 |
省略可能。 CD を取り出す前に、CD が使用中かどうかを確認する。 | |
CD の取り出し |
作業が終了したら、CD-ROM ドライブから CD を取り出す。 |
CD を操作する場合、名前または以下の 表 12-2 に示す呼び名によって、それらを識別できます。説明を簡単にするため、作業の説明では cdrom0 を使用しますが、CD 名または別の呼び名を使用することもできます。
表 12-2 CD の識別方法
CD |
代替名 |
---|---|
最初の CD-ROM ドライブ |
cdrom0 |
2 番目の CD-ROM ドライブ |
cdrom1 |
3 番目の CD-ROM ドライブ |
cdrom2 |
CD を挿入します。ランプの点滅が消えるとすぐに (およそ 5〜10 秒)、CD は /cdrom にマウントされます。CD がマウントされたことを確認するには、「CD の内容を調べる方法」で説明する作業を実行してください。
ほとんどの CD は、ISO 9660 標準でフォーマットされています。このフォーマットには移植性があるため、ほとんどの CD をボリューム管理によってマウントできます。ただし、第 15 章「ボリューム管理の動作の概要」で説明するように、UFS CD はアーキテクチャに依存するため、専用のアーキテクチャ上で使用する必要があります。CD のマウントで問題が生じた場合、特にそれがインストール用 CD の場合は、その UFS ファイルシステムが、使用しているシステムのアーキテクチャに適しているかどうかを CD のラベルで確認してください。
ls -L コマンドを使用して、/cdrom ディレクトリの内容を表示します。
$ ls -L [-l] /cdrom/cdrom0 |
-L |
出力にシンボリックリンクを含める。 |
-l |
詳細表示。出力にアクセス権と所有権を含める。 |
次の例は、最初の CD-ROM ディレクトリである /cdrom/cdrom0 にロードされた CD の内容を示します。
$ ls -L -l /cdrom/cdrom0 dr-xr-xr-x 2 root sys 2048 Dec 31 1993 tools dr-xr-xr-x 2 root sys 2048 Dec 31 1993 graphics |
他のファイルシステムの場合と同様に、CD のファイルとディレクトリにもアクセスできます。ただし、所有権とアクセス権については注意が必要です。たとえば、あるユーザーが、CD 上のファイルを自分のファイルシステムにコピーした場合、そのユーザーはファイルの所有者になりますが、書き込み権は与えられません (これは、CD 上のファイルには書き込み権がないためです)。ユーザー自身がアクセス権を変更する必要があります。
CD がマウントされていることを確認します。
$ ls /cdrom |
ls コマンドは、マウントされた CD の内容を表示します。内容が表示されない場合は、「CD をロードする方法」を参照してください。
ファイルまたはディレクトリをコピーします。
コピーするもの |
使用するコマンド |
---|---|
ファイル |
cp |
ディレクトリ |
cp -r |
次の例は、cp コマンドを使用して 1 つのファイルを /cdrom/solstice_sysmgt_2_3 ディレクトリからシステムの現在のディレクトリ (「.」で表す) へコピーします。
$ cp /cdrom/solstice_sysmgt_2_3/README . $ ls -l -r--r--r-- 1 pmorph users 4618 May 9 08:09 README |
ファイルやディレクトリを CD からユーザーのファイルシステムへコピーした場合、そのユーザーがコピーしたファイルやディレクトリの所有者になりますが、アクセス権は CD 上のアクセス権が保持されたままです。
-r--r--r--
コピーしたファイルやディレクトリのアクセス権を変更するには、chmod コマンドを使用します。chmod コマンドの使用方法については、『Solaris のシステム管理 (第 2 巻)』の「ファイルのセキュリティの適用手順」を参照して下さい。
fuser(1M) コマンドを入力します。
fuser コマンドは、指定する CD に現在アクセス中のプロセスを表示します。
# fuser -u [-k] /cdrom/cdrom0 |
-u |
CD のユーザーを表示する。 |
|
-k |
CD にアクセス中のプロセスを終了させる。 |
fuser コマンドは、終了したプロセスすべてを必ず識別できるわけではありません。確認するには、-u オプションを付けて、もう一度このコマンドを実行してください。
以下の例では、プロセス 6400c と 6399c が /cdrom/cdrom0 ディレクトリにアクセスしており、プロセスの所有者はそれぞれ root と smith です。
# fuser -u /cdrom/cdrom0 /cdrom/cdrom0: 6400c(root) 6399c(smith) |
各プロセスを別々に (スーパーユーザー権限により) 終了するか、あるいは -k オプションを付けて fuser コマンドを使用できます。このオプションはファイルシステムにアクセスしているすべてのプロセスを終了させます。
# fuser -u -k /cdrom/cdrom0 /cdrom/cdrom0: 6400c(root)Killed 6399c(smith)Killed |
CD は、シェルまたはアプリケーションがそのファイルまたはディレクトリのいずれかにアクセスしている場合には「使用中」であることを忘れないでください。CD のすべてのユーザーを検出したかどうかを確認できない場合は (デスクトップツールの背後に隠れているシェルがアクセスしている可能性がある場合は)、「CD が使用中かどうかを調べる方法」に説明されている fuser コマンドを使用してください。
CD を取り出します。
# eject cdrom0 |
他のシステム上の CD を各自のファイルシステムに手作業でマウントすることによって、その CD にアクセスできます。ただしこれは、他のシステムが、「ローカル CD を他のシステムで使用可能にする方法」の指示に従って CD-ROM をエクスポートしている場合にかぎります。
マウントポイントとして指定する既存のディレクトリを選択するか、あるいは作成します。
$ mkdir directory |
directory |
他のシステムの CD のマウントポイントとして作成するディレクトリの名前 |
手作業でリモート CD をマウントする場合は、ローカル CD で使用可能な cdrom0 または cdrom1 変数を使用できません。CD 名そのものを使用する必要があります。この名前を確認するには、リモートシステムの /cdrom ディレクトリで ls コマンドを使用してください。オートマウンタが実行されている場合は、マウントしたい CD を持つシステムに cd コマンドで移動してから、ls コマンドを使用できます。オートマウンタが実行されていない場合は、リモートからログインするなどの別の方法を使用する必要があります。
# mount -F nfs -o ro system-name:/cdrom/cd-name local-mount-point |
system-name |
マウントする CD を持つシステムの名前 |
cd-name |
マウントしたい CD の名前 |
local-mount-point |
リモート CD のマウント先のローカルディレクトリ |
スーパーユーザーをログアウトします。
CD が実際にマウントされたかどうかを確認するには、ls コマンドを使用して、マウントポイントの内容を表示します。
$ ls /cdrom |
今回の Solaris リリースの名称は「Solaris 7」ですが、コード、パス名、パッケージパス名などには、「Solaris 2.7」または「SunOS 5.7」という名称が使用されていることがあります。コード、パス、パッケージパスなどを実際に入力または使用ときには、 必ずマニュアル中に記述されている名称に従ってください。
次の例では、リモートシステム mars 上の Solaris_2.7_sparc という名前の CD を、ローカルシステムの /cdrom ディレクトリにマウントしています。
$ cd /net/mars $ ls /cdrom cdrom0 Solaris_2.7_sparc $ su Password: password # mount -F nfs ro mars:/cdrom/Solaris_2.7_sparc /cdrom # exit $ ls /cdrom Solaris_2.7_sparc |
システムを設定して、その CD-ROM をエクスポートすることができます。つまり、これらのドライブ上の CD (音楽 CD を除く) を、他のシステムで使用できるようにすることができます。 CD-ROM ドライブがエクスポートされると、他のシステムは、「他のシステム上の CD にアクセスする方法」に説明されているように、それらをマウントするだけでそこに含まれる CD にアクセスできます。
スーパーユーザーになります。
NFS デーモン (nfsd) が実行されているかどうかを確認します。
# ps -ef | grep nfsd root 14533 1 17 10:46:55 ? 0:00 /usr/lib/nfs/nfsd -a 16 root 14656 289 7 14:06:02 pts/3 0:00 grep nfsd |
デーモンが実行されていると、/usr/lib/nfs/nfsd の行は、上記のとおりに表示されます。デーモンが実行されていないと、grep nfsd の行だけが表示されます。
以下のうちの該当する手順に進みます。
条件 |
次の手順 |
---|---|
nfsd が実行されている場合 | |
nfsd が実行されていない場合 |
nfsd がエクスポートするダミーディレクトリを作成します。
# mkdir /dummy-dir |
dummy-dir |
たとえば、dummy などの任意のディレクトリ名。このディレクトリにはファイルは含まれない。この目的は、NFS デーモンを「呼び起こして」、エクスポートされた CD-ROM を認識させることにある。 |
次のエントリを /etc/dfs/dfstab に追加します。
share -F nfs -o ro [-d comment] /dummy-dir
NFS デーモンを起動すると、このエントリを参照して、エクスポートされたフロッピーディスクドライブを認識します。コメント (-d が前に付く) はオプションです。
# /etc/init.d/nfs.server start |
# ps -ef | grep nfsd root 14533 1 17 10:46:55 ? 0:00 /usr/lib/nfs/nfsd -a 16 root 14656 289 7 14:06:02 pts/3 0:00 /grep nfsd |
現在ドライブにある CD を取り出します。
# eject cdrom0 |
root の書き込み権を /etc/rmmount.conf に割り当てます。
# chmod 644 /etc/rmmount.conf |
次の行を /etc/rmmount.conf に追加します。
# File System Sharing share cdrom*
上記の行によって、システムの CD-ROM ドライブにロードされる CD が共有されます。ただし、share(1M) のマニュアルページで説明されているように、特定の CD (複数も可) に共有範囲を限定することができます。
/etc/rmmount.conf から書き込み権を削除します。
# chmod 444 /etc/rmmount.conf |
この手順により、ファイルはそのデフォルトのアクセス権に戻ります。
CD をロードします。
ここでロードする CD は他のシステムで使用できるようになります。必ずドライブのランプの点滅が消えるまで待って、この作業を確認するようにしてください。
CD にアクセスするために、リモートユーザーは、「他のシステム上の CD にアクセスする方法」の指示に従って、名前によりその CD をマウントする必要があります。
CD が実際に他のシステムで使用できるかどうかを確認するには、share コマンドを使用してください。
CD が使用可能な場合は、その共有の設定が表示されます。(共有されるダミーディレクトリも表示されます。)
# share - /dummy ro "dummy dir to wake up NFS daemon" - /Solaris_2.7_sparc ro "" |
次の例では、ローカルシステムの CD-ROM ドライブにロードされた CD を、ネットワーク上の他のシステムで使用できるようにしています。
# ps -ef | grep nfsd root 10127 9986 0 08:25:01 pts/2 0:00 grep nfsd root 10118 1 0 08:24:39 ? 0:00 /usr/lib/nfs/nfsd -a # mkdir /dummy # vi /etc/dfs/dfstab (次の行を追加する) share -F nfs -o ro /dummy # eject cdrom0 # chmod 644 /etc/rmmount.conf # vi /etc/rmmount (次の行をファイルシステム共有セクションに追加する) share cdrom* # chmod 444 /etc/rmmount.conf (CD をロードする) # share - /dummy ro "" - /cdrom/solaris_2_6_sparc/s5 ro "" - /cdrom/solaris_2_6_sparc/s4 ro "" - /cdrom/solaris_2_6_sparc/s3 ro "" - /cdrom/solaris_2_6_sparc/s2 ro "" - /cdrom/solaris_2_6_sparc/s1 ro "" - /cdrom/solaris_2_6_sparc/s0 ro "" |
Solaris システムに接続された CD-ROM から音楽 CD を演奏できます。パブリックドメインソフトウェアである Workman にアクセスして、外部スピーカまたはヘッドホンを、CD-ROM ドライブに接続する必要があります。システムハードウェアに接続されたスピーカは動作しません。
システムを設定したら、それを CD-ROM ドライブに挿入するだけで、音楽 CD を演奏できます。Workman のコントロールパネルは、デスクトップに自動的に表示されます。
スーパーユーザーになります。
/etc/rmmount.conf を編集します。
以下の例に示すように、# Actions の下、cdrom 記述の前に次の行を追加します。
# Actions action cdrom action_workman.so path/workman workman-options
path |
Workman ソフトウェアを置いたディレクトリ |
workman-options |
Workman ソフトウェアによって許可されたオプション |
この例では、Workman ソフトウェアをサポートするように変更された /etc/rmmount.conf ファイルを示します。
# @(#)rmmount.conf 1.3 96/05/10 SMI # # Removable Media Mounter configuration file. # # File system identification ident hsfs ident_hsfs.so cdrom ident ufs ident_ufs.so cdrom floppy rmscsi pcmem ident pcfs ident_pcfs.so floppy rmscsi pcmem # Actions action cdrom action_workman.so /usr/dist/exe/workman action cdrom action_filemgr.so action floppy action_filemgr.so action rmscsi action_filemgr.so # File System Sharing share cdrom* share floppy* |
boot -r コマンドによって正しくブートされたシステムでは、ボリューム管理は新しい CD-ROM ドライブを自動的に認識します。ただし、ボリューム管理が常に新しいドライブを認識するようにするには、/reconfigure ファイルを作成する必要があります。
スーパーユーザーになります。
/reconfigure というファイルを作成します。
# touch /reconfigure |
/reconfigure ファイルは、システムの電源を入れたとき、またはシステムをブートしたときに、Solaris 環境が、新たにインストールされた周辺デバイスがあるかどうかをチェックするように設定するものです。この後で、ボリューム管理は、新しいデバイスを検出し、ユーザーに代わってそれを自動的に管理します。
通常はボリューム管理を使用しないで、フロッピーディスクまたは CD を管理したいことがあります。この項では、ボリューム管理を終了し、また、再起動する方法を説明します。
フロッピーディスクまたは CD が使用中でないことを確認します。
フロッピーディスクまたは CD を使用中のすべてのユーザーを確認したかどうかを調べるには、「CD が使用中かどうかを調べる方法」に説明されている fuser コマンドを使用してください。
スーパーユーザーになります。
volmgt stop コマンドを入力します。
# /etc/init.d/volmgt stop # |