English Version UK mirror

Linux Netatalk-HOWTO

Last updated: December 22, 1997
by Anders Brownworth

翻訳 堀江誠一


Netatalk は LAN 上の Unix 機を AppleTalk のファイルサーバー に変えます。この文書を書くにあたって、AppleTalk サービスを Linux 上で行うために Netatalk を設定しようと考えている Linux 管理者の助けになるよう注意しました。Linux は、自由に 配布できる Posix 互換の U*ix であり、386、486、Pentimum PowerMacintosh、Sun、DEC Alpha その他の上で動きます(他には SGI、 等など)。Netatalk は、Unix ファイルシステムの一部 を AppleTalk プロトコルを使って外部に公開するプログラムで す。Netatalk を使えば Macintosh コンピュータで、普通の AppleTalk Network Server のファイル同様に、Unix のボリュー ムをマウントできます。

Netatalkは、われらがミシガン大学 Research Systems Unix Group の有志の手によります。何かあったら Netatalk@umich.edu へどうぞ。

英国に Hugh Dixon が 運営する Netatalk-HOWTO の UK mirror が あります。また、日本語版を 堀江誠一 が 管理しています。

新しく Netatalk Counter を始めました。 あなたの netatalk の設定が正しく終わったら、ここに書き込んでくだ さい。皆さんの協力で、Netatalk がどのように使われているか知ること ができます。なお、これは Linux 以外の利用者にもお願いします。

ご意見や訂正 などは大歓迎です。どなたかに私のページのひどいミススペルの diff を送ってもらうのですが、手違いでメールボックスを吹っ飛ばして しまったため、なくしてしまいました。 もし読んでいたら再送してください! 何か問題があるときには、 Netatalk listに投稿するのがいいでしょう。

netatalk サーバーに誰がログオンしているか知りたくありませんか? nuを試して見てください。


始める前に:

必要なもの:

これからやること:

(Netatalkのインストールのにカーネルコンパイルをもってきたこと に気がつきましたか?これはカーネル1.2.*ユーザーのためです。Netatalk をカーネル1.2.* で使用するにはNetatalkのパッチが必要です。このパッチ により、Netatalk は make kinstall による導入中にカーネルソースの Appletalk 機能にパッチを当てます。ですから Netatalk を導入した 後にカーネルコンパイルを行うのです。なお、このパッチはカーネル 1.3.* 以降の AppleTalk では不要になりました。(訳注:従って、新し いカーネルを使っている人は、カーネルコンパイルを先にやっても 構いません。)


Netatalk ソースコードを入手し解凍ます

  1. 最新のソースコードを 入手します。

  2. 展開したい場所に、ソースコードを置きます。

  3. 解凍します。次のように打ってください:

    gzip -d netatalk-1.3.3.tar.gz

  4. 配布ファイルを展開します。次のように打ってください:

    tar -xvf netatalk-1.3.3.tar


カーネルに依存する作業と、Netatalk 自身に関する設定


Netatalk-1.3.3 のソースコードの構成を設定します

Note:Andrew File System を使用したい方は、最初にやるべき ことがあります。配布ファイル中の README.AFS を読んで下さい。
  1. パスを設定します。Makefile を編集して、導入先と、 man ページを置くところを指定して下さい。Makefile で は、次の行を編集します:

    DESTDIR=/usr/local/atalk

    ここで指定した位置に、Netatalk のファイルが導入されます。また:

    MANDIR={DESTDIR}/man

    という行で、Netatalk の man ページを導入する先を指定します。 私は次のように編集しました:

    MANDIR=/usr/local/atalk/man

    (これは、上のMANDIRの設定と厳密に同じ設定です)


Netatalk をコンパイルします

  1. Netatalk ディレクトリで、

    make

    と、打ってください。これで Netatalk のバイナリがすべて 作成されます。この間、すべてのコンパイルが致命的なエラー なしに終わることを確認しておいてください。致命的なエラー とは何らかの理由によってコンパイルができないことを示しま す。こういう状況が起きたら、無視して先に進んではいけません。 かならずあとに戻って、何が悪かったのかを調べてください。


Netatalk を導入します

  1. Netatalk ディレクトリで、次のように打ってください:

    make install

    これによって、Netatalk は Makefile で記述した DESTDIR に導入されます。

Note:make install では、設定ファイルまでは導入しません。 しかしこれらのファイルはNetatalk を走らせるのに不可欠です。覚えておいてください。


AppleTalk サービスつきでカーネルをコンパイルします

Note: 2.0 カーネルを使用する(Debianのような) Linux 配布の多くが、 AppleTalk 対応機能を最初から取り込んでコンパイルされています。 このような場合は、カーネルをコンパイルする必要はありません。 どのようなコンパイルオプションでコンパイルされたかを、 /usr/src/linux/ ディレクトリで make menuconfig コマンドを実行し て確認してください(訳注:導入直後は必ずしもカーネルの 状態がここに反映されているわけではありません。訳者の slackware 96 では、kernels の下に各カーネル用のディレクトリ があり、(例:kernels/aha152x.s/)その中の config ファイルの中に導入直後のカーネルの構成が記述されていました。)。

Note:AppleTalk を使おうと思っているネットワークカード用に TCP/IP が動いていなければなりません。AppleTalk 対応機能自身は、AppleTalk を単体で走らせるために必要な下位のフレーミングコードをもってい ません。

なお、、カーネルコンパイルの経験があったほうがいいでしょ う。もしないなら、Kernel-HOWTO 文書を呼んでください( Slackware では /usr/doc/faq/howto/Kernel-HOWTO.gz です。 zless /usr/doc/faq/howto/Kernel-HOWTO.gzコマンド で見ることができます)。

  1. Linux ソースディレクトリーに移動します(普通は /usr/src/linux )

  2. make config と打ちます( あるいは make menuconfig、お好きなのを )。

  3. あなたの構成にあわせて質問に答えます。
    • Configure AppleTalk DDP support? [n]に、 必ず yes と答えてください。
    • 1.3.* より古いカーネルでは、IEEEE802.2 対応機能が 別に必要です。 この機能をいれるために、 Configure IPX support [n]yes と答えてください。 IPX パッケージが IEEE802.2 機能を提供してくれます。1.3.* カーネル以降はこのオプションを選ぶ必要はなくなりました。 AppleTalk 用にカーネルが IEEE802.2 を提供するようになったからです。

  4. make dep; make clean を実行してコンパイルの準備をします。

  5. 新しいカーネルを作ります。これが初めてなら、 Kernel-HOWTO を読んでおいてください。与えるコマンド によって、生成されるカーネルの種類は異なります( 私が コンパイルしたときには、make zImage コマンドを使用しました )。

    Note:必要なら、AppleTalk 対応を モジュールとすることもできます。

  6. 古いカーネルをどこかにコピーしておいてください。 ひょっとしてたった今コンパイルしたばかりのおニューの カーネルが、憎しみを胸にタイヤをきしませながら Linux を急停止させないとも限りませんから。

    (訳者注:古いカーネルで予備のブート方法を作っておく べきです。DOS から LOADLIN を使うのはいい手です。 私は DOS の起動フロッピーに LOADLIN を乗せて、 不測の事態に備えています。)

  7. 新しいカーネルを導入してシステムを再立ち上げします。 気をつけて!ここでドジを踏むと、システムは立ち上がりませ んよ。カーネル導入に関しては HOWTO 文書を良く読んでおいて ください。

    (訳注:この段階では、カーネルはコンパイルされただけで 導入されてはいません。導入については Kernel-HOWTO 等を 読んでください。)


Netatalk のオプションを設定します

Note: この文書では AppleTalk のファイルサーバーのみの 説明を行います。印刷オプションに関しては触れません。 例のなかではプリントオプションがコメントアウトされて いることに注意してください。Mike Pearson と Bill McGonigle が 印刷 に関する WEB ページを用意しています。

  1. atalkd.conf ファイルを作成してください。Netatalk ソースディレクトリの etc/atalkd の下に etc.atalkd.conf というファイルがあります。普通は、このファイルを編集し たあと、あなたの Netatalk ディレクトリ DESTDIR/etc ( /usr/local/atalk/etc )にコピーし、 atalkd.conf に名前を変更します。atalkd.conf編集方法と 例を、用意しておきました。

  2. AppleVolumes.default ファイルと AppleVolumes.system ファイルを作成してください。この二つのファイルは、 どのディレクトリを Appleshare ボリュームとして提供 するかをLinux に教えます。Netatalk ソースディレクト リの etc/afpd の下に etc.AppleVolumes.default とい うファイルと、etc.AppleVolumes.system というファイ ルがあります。普通は、この二つのファイルを編集した あと、あなたの Netatalk ディレクトリ DESTDIR/etc ( /usr/local/atalk/etc )にコピーし、 それぞれ AppleVolumes.defaultAppleVolumes.system に名 前を変更します。この二つのファイルの 編集方法と例を、 用意しておきました。

  3. (印刷オプションを設定するときは、ここで設定します)

  4. /etc/services ファイルを編集し、以下 の AppleTalk サービスを追加します:

    rtmp 1/ddp # Routing Table Maintenance Protocol

    nbp 2/ddp # Name Binding Protocol

    echo 4/ddp # AppleTalk Echo Protocol

    zip 6/ddp # Zone Information Protocol

    The /etc/services は、あなたのコンピュータがどのような ネットワークサービスを提供するかを決めます。

    NIS ( network information system、あるいは YP とも呼ばれます) を使用している場合、上の 4 行を services ファイルに追加しない でください。上の 4 行は、あなたの NIS マスター機の設定 に追加してください。

  5. ソースのなかにある rc.atalk rc.atalk スクリプトを編集します。 これは AppleTalk サービスを起動するためのものです。私は 次のようなスクリプトを使用しています。

    ATALKDIR="/usr/local/atalk"

    echo 'Starting AppleTalk fileserver...'

    ${ATALKDIR}/etc/atalkd

    echo -n 'atalkd'

    ${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation

    ${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk

    echo -n ' nbprgstr'

    ${ATALKDIR}/etc/afpd

    echo ' afpd.'

    Note: ネットワークのデータ構造が安定化する時間をとっておくために、 上の例のコマンドはバックグラウンドで呼び出さないようにしてく ださい(訳注:バックグラウンドで呼び出すと、例えば atalkd による準 備が終わる前に afpd が立ち上がったりしてしまいます。)。

  6. システム起動時に AppleTalk サービスが自動的に立ち上がる ように設定します。ソースディレクトリから rc.atalk ファ イルを /etc/rc.d に移し、実行可能にします ( chmod 755 /etc/rc.d/rc.atalk )。 /etc/rc.d ディレクトリーの rc.local を編集し、 rc.atalk スクリプトを呼び出すようにします。そのために次の行を rc.local に追加してください。:

    /etc/rc.d/rc.atalk

  7. あなたが Linux 機上に作ったボリュームを他のだれかにマウントさせるには、 その人達の有効なシェルアカウントを Linux 機上に作らなければなりません。 AppleShare は、最長 8 文字のパスワードしか使用できませんので、Linux シ ステム上のユーザーのパスワードも 8 文字以下とします。有効なシェルアカウ ントとは、/etc/passwd ファイルのユーザー記述の最後に /bin/sh とか /bin/tsch が書かれてあるユーザーです。もし、ここに /dev/null などと 記述してあると、ユーザーはログインできません。Netatalk では、root で のログインはできません。当然でしょう。してはいけません!


サーバーを起動します

すべての導入が完了し、設定が正しければ、 問題無く AppleTalk サーバーを起動できます。

  1. AppleTalk サーバーを起動する。 /etc/rc.d ディレ クトリから、rc.atalk を走らせます。ゆったり椅子 にもたれて少し待ちましょう。その間にシステムがネ ットワークをチェックして自動的に設定を行います。 code>rc.atalk は、普通は起動時に呼び出されます。

    (訳注:afpd は起動に結構な時間がかかります。 焦らないで待っていてください。訳者のAm5x86P75-133 の場合、30秒はかからないようです)


新しいボリュームをMacにマウントします

さて、お楽しみの時間です!

  1. Macintosh を用意して Ethernet に正しく接続します。

  2. アップルメニューのセレクタを選びます。

  3. 皿を掲げている手のアイコン( AppleShare サービス ) をクリックします。注意:この時点で AppleTalk が アクティブになっていないといけません。アクティブ でないなら、アップルトークのラジオボタン の「使用」をクリックしてアクティブにし、Macを再起動します。 もしこれでうまく行かないのならば、Mac が EtherTalk ポートではなく LocalTalk ポートを見ている可能性があります。 正すには、ネットワークコントロールパネルを開き、 EtherTalk をクリックします。そして、もう一度セレクタを 試してみましょう。

  4. Unix システムに登録してあるユーザー名で、AppleShare サーバーにログインします。もし、Unix がログインした ユーザーに対して公開しているディレクトリー への書き込みを禁止しているなら、ボリュームはリードオ ンリーとしてマウントされます(当然、このユーザーに読み 込み権があるとしてですよ)。マウント後に、ディレクトリ ーの読み書き権を変更した場合、いったんマウントを解除 して再度マウントしなければなりません( afpd はボリュー ムをマウントするときに読み書き権をディレクトリから読 み出します )。

  5. Unix ワークステーションがウインドウの右に見えるはず です。これをダブルクリックしすると、AppleVolumes.systemAppleVolumes.default に記述したボリュームが現れます。

  6. マウントしたいボリュームをクリックします( シフト-クリックで複数のボリュームを選べます)。

  7. Ok ボタンを押すと、Linux のボリュームが Macintosh に現れるでしょう( 拍手 )。

  8. マウントしたサーバーをアンマウントするには、 そのアイコンをごみ箱に捨ててください。ボリュ ームが消去されたりはしませんからご安心を ( アップルにしてはあまりいいメタファーとは いえませんね )。


その他の興味深い話題

仕事を探しています。 紹介していただけると大変助かります。

拙文が少しでも役に立つことを願います。これを読んでうまくインスト ールできたら私にも「やったぜ」と教えてください。ここに書いたこ とが本当にちゃんと動いているか、助けになっているか知りたく思って います。どうしても私に何か感謝の印を、という方は近所に使っていな い Silicon Graphics のワークステーションがないか聞いてみてくださ い。是非養子として引き取って私のアンティークコレクションに加えたく 存じますです、はい。


This page mantained by Anders Brownworth. Copyright © 1997

このページは 堀江誠一 が、翻訳しました。

翻訳に際し、貴重な意見を寄せてくださいました JF のメンバーにこの場を 借りてお礼申し上げます。