Solaris のシステム管理 (第 1 巻)

PCMCIA メモリーカードの使用方法

表 17-3 作業マップ: PCMCIA メモリーカードの使用方法

作業 

説明 

手順の説明 

PCMCIA メモリーカードのロード 

PCMCIA メモリーカードをドライブに挿入して、volcheck コマンドを実行する。

「PCMCIA メモリーカードをロードする方法」

PCMCIA メモリーカードの内容の確認 

省略可能。PCMCIA メモリーカードの内容を調べるには、/PCMCIAmemorycard の下にある適切なディレクトリを調べる。

「PCMCIA メモリーカードの内容を調べる方法」

ファイルの交換 

省略可能。PCMCIA メモリーカードとファイルシステムの間でファイルまたはディレクトリをコピーする。  

「PCMCIA メモリーカードから情報をコピーまたは移動する方法」

 

「PCMCIA メモリーカードへ情報をコピーまたは移動する方法」

PCMCIA メモリーカードが使用中かどうかの確認 

省略可能。PCMCIA メモリーカードを取り出す前に、PCMCIA メモリーカードが使用中であるかどうかを調べる。 

「PCMCIA メモリーカードが使用中かどうかを調べる方法」

PCMCIA メモリーカードの取り出し 

終了したら、PCMCIA メモリーカードを取り出す。 

「PCMCIA メモリーカードを取り出す方法」

PCMCIA メモリーカードをロードする方法

  1. PCMCIA メモリーカードがフォーマットされていることを確認します。

    フォーマットされているかどうかが不確かな場合は、PCMCIA メモリーカードを挿入して、以下の「PCMCIA メモリーカードの使用方法」 で説明されているように、コンソールの状態メッセージをチェックしてください。PCMCIA メモリーカードをフォーマットする必要がある場合は、「UFS PCMCIA メモリーカードをフォーマットする方法」、または 「DOS PCMCIA メモリーカードをフォーマットする方法」を参照してください。

  2. PCMCIA メモリーカードを挿入します。

    PCMCIA メモリーカードがドライブに完全に挿入されたことを確認してください。ドライブにふたがある場合は、それを閉じてください。

  3. ボリューム管理に通知します。


    $ volcheck -v
    media was found

    次の 2 つの状態メッセージのいずれかが表示されます。

    media was found

    ボリューム管理が PCMCIA メモリーカードを検出して、それを /pcmem ディレクトリにマウントしようとする。

     

    PCMCIA メモリーカードが正しくフォーマットされていると、エラーメッセージはコンソールに表示されない。 

     

    PCMCIA メモリーカードがフォーマットされていない場合でも、「media was found」メッセージは表示されるが、次のエラーメッセージがコンソールに表示される。

    fd0: unformatted diskette or no diskette in the drive

    fd0: read failed (40 1 0)

    fd0: bad format

    PCMCIA メモリーカードをフォーマットしてからでないと、ボリューム管理はそれをマウントできない。フォーマットの方法は、「UFS PCMCIA メモリーカードをフォーマットする方法」 (UFS 用) と 「DOS PCMCIA メモリーカードをフォーマットする方法」 (DOS 用) を参照。

    no media was found

    ボリューム管理は、PCMCIA メモリーカードを検出しなかった。PCMCIA メモリーカードが正しく挿入されていることを確認して、volcheck をもう一度実行する。うまくいかない場合は、PCMCIA メモリーカードをチェックする。損傷の可能性がある。PCMCIA メモリーカードを手作業でマウントしてみることもできる。

  4. 内容をリスト表示して、PCMCIA メモリーカードがマウントされていることを確認します。


    $ ls /pcmem/pcmem0
    pcmem0 myfiles

    前述したように、pcmem0 は PCMCIA メモリーカードの実際の名前へのシンボリックリンクです。この場合は myfiles が実際の名前です。PCMCIA メモリーカードに名前はないけれども正しくフォーマットされている場合は、 unnamed_floppy と示されます。

    /pcmem ディレクトリに何も表示されない場合は、PCMCIA メモリーカードがマウントされていないか、または正しくフォーマットされていないかのいずれかです。これを調べるには、mount コマンドを実行して、/pcmem で始まる行を探してください (通常は、リストの最後にあります)。

       /pcmem/name on /vol/dev/diskette0/name ...

    という行が表示されない場合、PCMCIA メモリーカードはマウントされていません。コンソールのエラーメッセージを確認してください。

PCMCIA メモリーカードの内容を調べる方法

/pcmem の下にあるディレクトリの一部がシンボリックリンクであるため、ls コマンドに -L オプションを付けて使用してください。


$ ls -L [-l] pcmem0

-L

出力にシンボリックリンクを含む。 

-l

長形式。アクセス権と所有権を出力に含む。 

例 - PCMCIA メモリーカードの内容を調べる

次の例では、pcmem0 で識別される最初のフロッピードライブの PCMCIA メモリーカードの内容を一覧表示しています。


$ ls -L -l /pcmem/pcmem0
-rwxrwxrwx  1 smith  staff 362284  Nov 16 20:54  text.doc
-rwxrwxrwx  1 smith  staff  24562  Nov 16 12:20  art.gif

PCMCIA メモリーカードから情報をコピーまたは移動する方法

PCMCIA メモリーカードを挿入すると、他のファイルシステムの場合と同様に、そのファイルおよびディレクトリにアクセスできます。ただし、所有権とアクセス権については注意が必要です。たとえば、PCMCIA メモリーカードのファイルの所有者ではない場合、PCMCIA メモリーカード上でそれを変更することはできません。また、ファイルシステムにファイルをコピーした場合、そのファイルの所有者にはなりますが、書き込み権はありません (PCMCIA メモリーカードでも書き込み権がなかったためです)。アクセス権は各自で変更する必要があります。

  1. PCMCIA メモリーカードがフォーマットされてマウントされていることを確認します。


    $ ls /pcmem
    pcmem0  PCMCIA memorycard-name
    

    PCMCIA メモリーカードが正しくフォーマットされてマウントされていれば、その名前とシンボリックリンクが、/pcmem の下に表示されます。

    /pcmem ディレクトリに何も表示されない場合、PCMCIA メモリーカードはマウントされていません。「PCMCIA メモリーカードをロードする方法」を参照してください。PCMCIA メモリーカードがフォーマットされていないこともあります。「UFS PCMCIA メモリーカードをフォーマットする方法」、または 「DOS PCMCIA メモリーカードをフォーマットする方法」を参照してください。

  2. ファイルまたはディレクトリをコピーします。

    コピーするもの 

    使用するコマンド 

    ファイル 

    cp

    ディレクトリ 

    cp -r

  3. コピーまたは移動の結果を確認するには、ls コマンドを使用します。

例 - PCMCIA メモリーカードから情報をコピーまたは移動する

最初の例では、ファイル (readme.doc) を PCMCIA メモリーカードから現在のディレクトリ (「.」で示される) に移動しています。2 番目の例では、ファイル (readme2.doc) を PCMCIA メモリーカードから現在のディレクトリにコピーしています。3 番目の例では、ディレクトリ (morefiles) とその下にあるすべてのものを、PCMCIA メモリーカードから現在のディレクトリにコピーしています。


$ mv /pcmem/pcmem0/readme.doc .
$ cp /pcmem/pcmem0/readme2.doc .
$ cp -r /pcmem/pcmem0/morefiles .

PCMCIA メモリーカードへ情報をコピーまたは移動する方法

  1. PCMCIA メモリーカードが書き込み保護になっていないことを確認します。

    書き込み保護は、PCMCIA メモリーカードの端にある小さなスライドスイッチによって設定されます。

  2. PCMCIA メモリーカードがフォーマットされてマウントされていることを確認します。


    $ ls /pcmem
    pcmem0  PCMCIA memorycard-name
    

    PCMCIA メモリーカードが正しくフォーマットされてマウントされていれば、その名前とシンボリックリンクの pcmem0 が、/pcmem の下に表示されます。

    /pcmem ディレクトリに何も表示されない場合、PCMCIA メモリーカードはマウントされていません。「PCMCIA メモリーカードをロードする方法」を参照してください。PCMCIA メモリーカードがフォーマットされていないこともあります。「UFS PCMCIA メモリーカードをフォーマットする方法」、または 「DOS PCMCIA メモリーカードをフォーマットする方法」を参照してください。

  3. ファイルまたはディレクトリを移動またはコピーします。

    作業 

    使用するコマンド 

    ファイルのコピー 

    cp

    ディレクトリのコピー 

    cp -r

    ファイルまたはディレクトリの移動 

    mv

  4. ls コマンドを使用して、移動またはコピーの結果を確認します。

例 - 情報を PCMCIA メモリーカードにコピーまたは移動する

最初の例では、ファイル (readme.doc) を現在のディレクトリから、最初のカードドライブ (/pcmem/pcmem0) にロードされた PCMCIA メモリーカードに移動しています。2 番目の例では、ファイル (readme2.doc) を現在のディレクトリから、2 番目のカードドライブ (/pcmem/pcmem1) にロードされた PCMCIA メモリーカードリにコピーしています。3 番目の例では、ディレクトリ (morefiles) とその下にあるすべてのものを、/home/smith/ ディレクトリから最初のカードドライブにロードされた PCMCIA メモリーカードにコピーしています。


$ mv readme.doc /pcmem/pcmem0
$ cp readme2.doc /pcmem/pcmem1
$ cp -r /home/smith/morefiles /pcmem/pcmem0

PCMCIA メモリーカードが使用中かどうかを調べる方法

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

  2. fuser コマンドを起動します。

    fuser コマンドは、指定された CD に現在アクセスしているプロセスを表示します。


    # fuser -u [-k] pcmem0
    

    -u

    PCMCIA メモリーカードを使用中のユーザーを表示する。 

    -k

    PCMCIA メモリーカードにアクセスしているプロセスを終了させる。 

例 - PCMCIA メモリーカードが使用中かどうかを調べる

次の例では、プロセス 6400c6399c/pcmem/pcmem0 ディレクトリにアクセスしていて、プロセス所有者はそれぞれ rootsmith です。


# fuser -u /pcmem/pcmem0
/pcmem/pcmem0: 6400c(root)  6399c(smith)

プロセスは、root 権限によって個別に終了することも、fuser コマンドに -k オプションを付けて使用して、ファイルシステムにアクセス中のすべてのプロセスを終了することもできます。


# fuser -u -k /pcmem/pcmem0
/pcmem/pcmem0: 6400c(root)Killed  6399c(smith)Killed

fuser コマンドは、終了したプロセスの一部を識別できないことがあります。確認するには、-u オプションを付けてもう一度このコマンドを実行してください。

PCMCIA メモリーカードを取り出す方法

  1. PCMCIA メモリーカードが使用中でないことを確認します。

    PCMCIA メモリーカードは、シェルまたはアプリケーションがそのファイルやディレクトリにアクセスしている場合「使用中」であることを忘れないでください。

    PCMCIA メモリーカードのすべてのユーザーを検出したかどうかが不確かな場合は (デスクトップツールの背後に隠れたシェルがアクセスしている可能性がある場合は)、「PCMCIA メモリーカードが使用中かどうかを調べる方法」に説明されている fuser コマンドを使用してください。

  2. PCMCIA メモリーカードを取り出します。


    # eject pcmem0
    

    手で PCMCIA メモリーカードを取り出す必要があります。ウィンドウを実行している場合は、PCMCIA メモリーカードを取り出すように指示する画面メッセージに注意してください。

    PCMCIA メモリーカードが使用中の場合は、次のメッセージが表示されます。

       /vol/dev/pcmem/noname: Device busy

    この場合は、手順 1 に戻って誰も PCMCIA メモリーカードを使用していないことを確認してから、もう一度それを取り出してください。

他のシステム上の PCMCIA メモリーカードにアクセスする方法

他のシステム上の PCMCIA メモリーカードを各自のファイルシステムに手作業でマウントすることによって、その PCMCIA メモリーカードにアクセスできます。ただしこれは、他のシステムが、「ローカルの PCMCIA メモリーカードを他のシステムで使用可能にする方法」の指示に従って PCMCIA メモリーカードドライブをエクスポートしている場合にかぎります。

  1. マウントポイントとして使用する既存のディレクトリを指定するか、あるいは作成します。


    $ mkdir directory
    

    directory

    他のシステムの PCMCIA メモリーカードのマウントポイントとして使用するディレクトリの名前 

  2. マウントしたい PCMCIA メモリーカードの名前を検索します。

    手作業でリモート PCMCIA メモリーカードをマウントする場合は、ローカル PCMCIA メモリーカードで使用可能な pcmem0 または floppy1 変数を使用できません。正しい PCMCIA メモリーカード名を使用する必要があります。この名前を検索するには、リモートシステムの /pcmem ディレクトリで ls コマンドを使用してください。オートマウンタが実行されている場合は、マウントしたい PCMCIA メモリーカードのシステムに cd コマンドで移動してから、ls コマンドを使用できます。オートマウンタが実行されていない場合は、リモートからログインするなどの別の方法を使用する必要があります。

  3. スーパーユーザーとして、PCMCIA メモリーカードをマウントします。


    # mount -F nfs system-name:/pcmem/PCMCIAmemory-card-name local-mount-point
    

    system-name

    マウントしたい PCMCIA メモリーカードが存在するシステムの名前 

    PCMCIA memory-card-name

    マウントしたい PCMCIA メモリーカードの名前 

    local-mount-point

    リモート PCMCIA メモリーカードのマウント先のローカルディレクトリ 

  4. スーパーユーザーをログアウトします。

  5. PCMCIA メモリーカードが実際にマウントされたかどうかを確認するには、ls コマンドを使用して、マウントポイントの内容を表示します。


    $ ls /pcmem
    

例 - 他のシステム上の PCMCIA メモリーカードにアクセスする

以下の例では、myfiles という名前の PCMCIA メモリーカードを、リモートシステム mars からローカルシステムの /pcmem ディレクトリにマウントしています。


$ cd /net/mars
$ ls /pcmem
pcmem0     myfiles
$ su
Password: password
# mount -F nfs rw mars:/pcmem/myfiles /pcmem
# exit
$ ls /pcmem
myfiles

ローカルの PCMCIA メモリーカードを他のシステムで使用可能にする方法

システムを設定して、その PCMCIA メモリーカードをエクスポートすることができます。つまり、これらのドライブ上の PCMCIA メモリーカードを、他のシステムが使用できるようになります。PCMCIA メモリーカードドライブがエクスポートされると、他のシステムは、「他のシステム上の PCMCIA メモリーカードにアクセスする方法」に説明されているように、それらをマウントするだけでそこに含まれる PCMCIA メモリーカードにアクセスできます。

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

  2. 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 の行だけが表示されます。

  3. 以下のうちの該当する手順に進みます。

    条件 

    次の手順 

    nfsd が実行されている場合

    手順 8

    nfsd が実行されていない場合

    手順 4

  4. nfsd がエクスポートするダミーディレクトリを作成します。


    # mkdir /dummy-dir
    

    dummy-dir

    たとえば、dummy などの任意のディレクトリ名にすることができる。このディレクトリには、ファイルは含まれない。これは、NFS デーモンを「呼び起こして」、エクスポートされた PCMCIA メモリーカードを認識させることを目的としている。

  5. 次のエントリを /etc/dfs/dfstab に追加します。

       share -F nfs -o ro [-d comment] /dummy-dir
    

    NFS デーモンを起動すると、このエントリを参照して、エクスポートされた PCMCIA メモリーカードドライブを認識します。コメント (-d が前に付く) はオプションです。

  6. NFS デーモンを起動します。


    # /etc/init.d/nfs.server start
    
  7. NFS デーモンが実際に実行されていることを確認します。


    # 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
  8. 現在ドライブ内にある PCMCIA メモリーカードを取り出します。


    # eject pcmem0
    
  9. 書き込み権を /etc/rmmount.conf に割り当てます。


    # chmod 644 /etc/rmmount.conf
    
  10. 次の行を /etc/rmmount.conf に追加します。

       # File System Sharing
    share floppy*

    上記の行によって、システムの PCMCIA メモリーカードドライブにロードされた PCMCIA メモリーカードが共有されます。

  11. /etc/rmmount.conf から書き込み権を削除します。


    # chmod 444 /etc/rmmount.conf
    

    この手順によって、ファイルはそのデフォルトのアクセス権に戻ります。

  12. PCMCIA メモリーカードをロードします。


    -PCMCIA メモリーカードを挿入する-
    # volcheck -v
    media was found

    ここでロードした PCMCIA メモリーカードは他のシステムで使用できるようになります。PCMCIA メモリーカードにアクセスするために、リモートユーザーは、「他のシステム上の PCMCIA メモリーカードにアクセスする方法」の指示に従って、名前によりその PCMCIA メモリーカードをマウントする必要があります。

  13. PCMCIA メモリーカードが実際に他のシステムで使用できるかどうかを確認するには、share コマンドを使用してください。

    PCMCIA メモリーカードが使用可能な場合は、その共有の設定が表示されます。(共有されるダミーディレクトリも表示されます。)


    # share
    -    /dummy  ro "dummy dir to wake up NFS daemon"
    -    /myfiles rw  ""

例 - ローカル PCMCIA メモリーカードを他のシステムで使用可能にする

次の例では、ローカルシステムの CD-ROM ドライブにロードされた PCMCIA メモリーカードすべてを、ネットワーク上の他のシステムで使用できるようにしています。


# 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 pcmem0
# chmod 644 /etc/rmmount.conf
# vi /etc/rmmount
(次の行をファイルシステム共有セクションに追加する)
share floppy*
# chmod 444 /etc/rmmount.conf
(PCMCIA メモリーカードをロードする)
# volcheck -v
media was found
# share
-               /dummy   ro   ""  
-               /pcmem/myfiles   rw   ""