第5章 以前の Netatalk バージョンからのアップグレード

Frank Lahm

Eiichirou UDA(日本語訳)

目次

Netatalk 3 からのアップグレード
Netatalk 2 からのアップグレード
設定まわりの変更点
新たな AppleDouble バックエンド
そのほかの主要な変更点
アップグレード手段
新旧設定ファイル名対照表
新旧オプション対応表

Netatalk 3 からのアップグレード

Netatalk 3 から Netatalk 4 へのアップグレードは簡単。古いバージョンの上に新しいバージョンをインストールするだけ。Netatalk 4 での主要な変更点は、Netatalk 2 と Netatalk 3 の間で削除された AppleTalk サービス、構成ファイル、およびツールを一部復活させたことである。

主に、atalkd デーモンと atalkd.conf 設定ファイル、また papd デーモンと papd.conf 設定ファイルが追加された。

Netatalk 2 からのアップグレード

Netatalk 4 の主要な変更は以下の3点:

  1. これまでの AFP 設定ファイルすべてが廃止され、AFP に関してのほぼ全オプション名を変更し、新しい設定ファイルを追加した: afp.confextmap.conf

  2. マックのメタデータとリソースフォークをファイルシステムの拡張属性に保存する appledouble = ea という新しい AppleDouble のバックエンド。

  3. AppleTalk トランスポート層はデフォルトで無効になっている。非常に古い Mac で Netatalk を使用する場合は、afp.conf にて appletalk = yes オプションで有効にしてください。 それから、netatalk を起動する前に atalkd デーモンを立ち上げてください。

設定まわりの変更点

afp.conf

  • (Samba の smb.conf のような) "ini" スタイルの構文

  • 一つで設定すべてを指示するという点: AFP 及びボリュームの構成を共に一つのファイルで設定することになるという点

  • afpd.confnetatalk.confAppleVolumes.default 及び、 afp_ldap.conf の廃止

警告

ほとんどのオプション名は変更されたので、 詳細については afp.conf の manpage 全体を読むこと

extmap.conf

  • Classic Mac OS type/creator と拡張子の関連付け

  • 2.x とは異なり、マッピングはデフォルトで無効になっている。有効にするには、ファイル内の行のコメントを解除する

  • AppleVolumes.system の廃止

新たな AppleDouble バックエンド

マックのメタデータとリソースフォークをファイルシステムの拡張属性に保存する appledouble = ea という新しい AppleDouble のバックエンド。

  • デフォルトのバックエンドである(!)

  • 拡張属性のあるファイルシステムが必須。 さもなくば appledouble = v2 オプションの使用が代替となる

  • appledouble = v2 から appledouble = ea ファイルシステムへの変換はアクセス時、その都度行われる(無効にすることも可能)

  • 一括で変換する場合 dbd を用いることができる

実装の詳細:

  • Mac のメタデータ(すなわち FinderInfo、AFP フラグ、コメント、CNID)は “org.netatalk.Metadata” という名前の拡張属性に保存される。

  • マックのリソースフォークは:

    • ZFS を用いた Solaris では “org.netatalk.ResourceFork” という拡張属性に保存される。

    • ないしは、ファイル名が “file” であるものに対して各々、“._file” という名の別の AppleDouble ファイルに保存される。

  • "._" ファイルのフォーマットは、 たとえそのファイルシステムに CIFS サーバー (Samba) 経由でアクセスした場合でも、 マックの CIFS クライアントが想定しているフォーマットと全く同じである。 なので、データを失う危険性(リソースもメタデータも)なく、 マックから同じデータセットに AFP 経由と CIFS 経由と並行してアクセスすることができる。 一方、ウィンドウズから当該データセットに CIFS 経由でアクセスした場合は、未だに “file” と “file” の紐付けを失うこととなるであろう(非 ZFS ファイルシステムの場合。上記参照)。 今のところその点で拡張 Samba VFS モジュールが必要である(改善中)。

そのほかの主要な変更点

  • AFP 及び CNID デーモンの起動・再起動を担う新しいサービスコントローラデーモン netatalk の導入。バンドルされているスタートスクリプトが すべて更新されているため、自分の環境でもアップデートされているか確認する必要あり!

  • CNID データベースはデフォルトで $prefix/var/netatalk/CNID/ 以下に保存される。以前は各共有ボリュームにて保存されていた。

  • Netatalk 2.x のボリュームオプション “usedots” 及び “upriv” はデフォルトとなった。

  • SLP 及び AFP プロキシのサポート機能は削除。

アップグレード手段

  1. Netatalk 2.x を停止する

  2. Netatalk 4 をインストールする

  3. 設定 afp.conf 及び extmap.conf を自力で書き換える

  4. afpdcnid_metad の代わりに netatalk 起動にのみ関連している、 Netatalk 起動スクリプトを更新するか、標準の起動スクリプトに置き換える。

  5. afp_voluuid.conf 及び afp_signature.conf を localstate ディレクトリ (デフォルトでは $prefix/var/netatalk/)、に移動。 正しいパスを見つけるために afpd -v コマンドが有用

  6. Netatalk 4 を起動する

新旧設定ファイル名対照表

表5.1 設定ファイル名対照表

旧ファイル名新ファイル名注記
-etc/afp.conf新しい "ini" 様式のフォーマット
-etc/extmap.confnetatalk 3.0.2 から採用
etc/netatalk/afp_signature.confvar/netatalk/afp_signature.conf厳密には $localstatedir に移動
etc/netatalk/afp_voluuid.confvar/netatalk/afp_voluuid.conf厳密には $localstatedir に移動
etc/netatalk/netatalk.conf (/etc/default/netatalk)-廃止
etc/netatalk/afpd.conf-廃止
etc/netatalk/afp_ldap.conf-廃止
etc/netatalk/AppleVolumes.default-廃止
etc/netatalk/AppleVolumes.system-廃止
~/.AppleVolumes-廃止


新旧オプション対応表

表5.2 netatalk.conf (/etc/default/netatalk) から afp.conf

旧 netatalk.conf新 afp.conf旧デフォルト値新デフォルト値セクション詳細
ATALK_NAMEhostname--(G)デフォルトでは gethostname() を使用
ATALK_UNIX_CHARSETunix charsetLOCALEUTF8(G)-
ATALK_MAC_CHARSETmac charsetMAC_ROMANMAC_ROMAN(G)/(V)-
CNID_METAD_RUN-yes--netatalk(8) で制御
AFPD_RUN-yes--netatalk(8) で制御
AFPD_MAX_CLIENTSmax connections20200(G)-
AFPD_UAMLISTuam list-U uams_dhx.so,uams_dhx2.souams_dhx.so uams_dhx2.so(G)-
AFPD_GUESTguest accountnobodynobody(G)-
CNID_CONFIGlog level-l log_notecnid:note(G)-
CNID_CONFIGlog file--(G)-
ATALKD_RUN-no--独自起動スクリプトで制御
PAPD_RUN-no--独自起動スクリプトで制御
TIMELORD_RUN-no--独自起動スクリプトで制御
A2BOOT_RUN-no--独自起動スクリプトで制御
ATALK_BGROUND-no--独自起動スクリプトで制御
ATALK_ZONEddp zone--(G)4.0.0で復活


表5.3 afpd.conf から afp.conf

旧 afpd.conf新 afp.conf旧デフォルト値新デフォルト値セクション詳細
一番目のフィールド("-" あるいは“サーバー名”)hostname--(G)デフォルトでは gethostname() を使用
-uamlistuam listuams_dhx.so,uams_dhx2.souams_dhx.so uams_dhx2.so(G)-
-nozeroconfzeroconf-(サポートされていれば) yes(G)-
-advertise_sshadvertise ssh-no(G)-
-[no]savepasswordsave password-savepasswordyes(G)-
-[no]setpasswordset password-nosetpasswordno(G)-
-client_pollingclient polling-no(G)-
-hostnamehostname--(G)デフォルトでは gethostname() を使用
-loginmesglogin message--(G)/(V)-
-guestnameguest accountnobodynobody(G)-
-passwdfilepasswd fileafppasswdafppasswd(G)-
-passwdminlenpasswd minlen--(G)-
-ticklevaltickleval3030(G)-
-timeouttimeout44(G)-
-sleepsleep time1010(G)-
-dsireadbufdsireadbuf1212(G)-
-server_quantumserver quantum3038401048576(G)-
-volnamelenvolnamelen8080(G)-
-setuploglog leveldefault log_notedefault:note(G)-
-setuploglog file--(G)-
-admingroupadmingroup--(G)-
-k5servicek5 service--(G)-
-k5realmk5 realm--(G)-
-k5keytabk5 keytab--(G)-
-uampathuam pathetc/netatalk/uams/lib/netatalk/(G)厳密には $libdir に移動
-ipaddrafp listen--(G)-
-cnidservercnid serverlocalhost:4700localhost:4700(G)/(V)-
-portport548548(G)-
-signaturesignatureauto-(G)-
-fqdnfqdn--(G)-
-unixcodepageunix charsetLOCALEUTF8(G)-
-maccodepagemac charsetMAC_ROMANMAC_ROMAN(G)/(V)-
-closevolclose vol-no(G)-
-ntdomainnt domain--(G)-
-ntseparatornt separator--(G)-
-dircachesizedircachesize81928192(G)-
-tcpsndbuftcpsndbuf--(G)OS のデフォルト
-tcprcvbuftcprcvbuf--(G)OS のデフォルト
-fcelistenerfce listener--(G)-
-fcecoalescefce coalesce--(G)-
-fceeventsfce events--(G)-
-fceholdfmodfce holdfmod6060(G)-
-mimicmodelmimic model--(G)-
-adminauthuseradmin auth user--(G)-
-noacl2maccessmap acls-rights(G)-
-[no]tcp--tcp--常に TCP を有効
-[no]ddpappletalk-ddpno(G)4.0.0で復活
-[no]transall--transall--常に TCP を有効
-nodebug----廃止
-[no]slp--noslp--SLP サポートが廃止
-[no]uservolfirst--nouservolfirst--uservol が廃止
-[no]uservol--uservol--uservol が廃止
-proxy----廃止
-defaultvol-AppleVolumes.default--afp.conf のみ
-systemvol-AppleVolumes.system--extmap.conf のみ
-loginmaxfail----そもそも最初からサポートされていない
-unsetuplog----廃止
-authprintdir----CAP スタイル認証印刷が廃止
-ddpaddrddp address0.00.0(G)4.0.0で復活
-[no]iconlegacy icon-noicon-(G)4.0.2で復活
-keepsessions----廃止。kill -HUP を使用


表5.4 from afp_ldap.conf から afp.conf

旧 afp_ldap.conf新 afp.conf旧デフォルト値新デフォルト値セクション詳細
ldap_serverldap server--(G)-
ldap_auth_methodldap auth method--(G)-
ldap_auth_dnldap auth dn--(G)-
ldap_auth_pwldap auth pw--(G)-
ldap_userbaseldap userbase--(G)-
ldap_userscopeldap userscope--(G)-
ldap_groupbaseldap groupbase--(G)-
ldap_groupscopeldap groupscope--(G)-
ldap_uuid_attrldap uuid attr--(G)-
ldap_uuid_stringldap uuid string--(G)-
ldap_name_attrldap name attr--(G)-
ldap_group_attrldap group attr--(G)-


表5.5 AppleVolumes.* から afp.conf

旧 AppleVolumes.*新 afp.conf旧デフォルト値新デフォルト値セクション詳細
(ピリオドで始まる行)----extmap.conf で使用する
:DEFAULT:-options:upriv,usedots--"vol preset" を使用する
一番目のフィールド ("~")----[Homes] セクションを使用する
一番目のフィールド ("/path")path--(V)-
二番目のフィールド----セクション名を使用する
allow:valid users--(V)-
deny:invalid users--(V)-
rwlist:rwlist--(V)-
rolist:rolist--(V)-
volcharset:vol charsetUTF8(unix charset と同じ)(G)/(V)-
maccharset:mac charsetMAC_ROMANMAC_ROMAN(G)/(V)-
veto:veto files--(V)-
cnidscheme:cnid schemedbddbd(V)-
casefold:casefold--(V)-
adouble:appledoublev2ea(V)v1、osx 及び sfm は廃止
cnidserver:cnid serverlocalhost:4700localhost:4700(G)/(V)-
dbpath:vol dbpath(ボリュームディレクトリ)$prefix/var/netatalk/CNID/(G)厳密には $localstatedir に移動
umask:umask00000000(V)-
dperm:directory perm00000000(V)-
fperm:file perm00000000(V)-
password:password--(V)-
root_preexec:root preexec--(V)-
preexec:preexec--(V)-
root_postexec:root postexec--(V)-
postexec:postexec--(V)-
allowed_hosts:hosts allow--(V)-
denied_hosts:hosts deny--(V)-
ea:eaautoauto(V)-
volsizelimit:vol size limit--(V)4.0.0で復活
perm:----"directory perm" 及び "file perm" を使用する
forceuid:----廃止
forcegid:----廃止
options:roread only-no(V)-
options:invisibledotsinvisible dots-no(V)-
options:nostatstat vol-yes(V)-
options:preexec_closepreexec close-no(V)-
options:root_preexec_closeroot preexec close-no(V)-
options:uprivunix priv-yes(V)-
options:nodevcnid dev-yes(V)-
options:illegalseqillegal seq-no(V)-
options:tmtime machine-no(V)-
options:searchdbsearch db-no(V)-
options:nonetidsnetwork ids-yes(V)-
options:noaclsacls-yes(V)-
options:followsymlinksfollow symlinks-no(V)-
options:nohex----":2f" は ":" に自動変換される
options:usedots----":2e" は "." に自動変換される
options:nofileid----廃止
options:prodosprodos-no(V)4.0.0で復活
options:mswindows----廃止
options:crlf----廃止
options:noadouble----廃止
options:limitsizelegacy volume size-no(V)4.0.0で復活
options:dropbox----廃止
options:dropkludge----廃止
options:nocnidcache----廃止
options:caseinsensitive----廃止