連載 UNIX Communication Notes ンロードのページ (http://www.ssh.fi/sshprotocols2/ download. html) では、ダウンロード・サイトのリストが 得られる。 マスターサイトは、 Helsinki University of Technol- ogy の FTP サーノヾー (ftp://ftp.cs.hut.fi/pub/ssh) で ある。ただし、このサイトはフィンランドにあり、しかも 同時最大アクセスが 30 ューザーに制限されているため、 ファイルの入手に時間がかかる。日本のユーザーは、国内 のアーカイプサイトを使ったほうがよい。日本にも、 ・ ftp://ftp.kyoto.wide.ad.jp/pub/security/ssh など、いくっかのサイトに置かれている。自分が利用して いるネットワークからアクセスしやすいサイトを選べばよ どちらのバージョンもフリー・ソフトウェアではない。 である。これは、次の点を考慮して j 尺する。 2 つのバージョンのうち、どちらを使うかは悩むところ どのバージョンを使うか いだろう。 ・教育目的での利用 ・非営利目的での利用 現在提供されている SSH は、 ポイント 1 UNIX MAGAZINE 1999.9 .datafellows.com/japan/) か扱っている。 オンラインで購入できる。日本では、山田消子 (http://www.europe 1 製′調阪は、 Data Fellows (http://www.datafellows.com/ から 応しなければならない場合には、 2.0.13 と 1.2.27 の両方 ほうがよい。ただし、 SSHI を使っているシステムにも対 ライアントもサーバーも SSH2 対応の 2.0.13 を使った うか新しく、かっ強力である。したがって、基本的にはク さきに述べたように、プロトコルとしては SSH2 のは ポイント 2 れには、かならす目をとおしておくべきである。 いくと、言岩田なライセンス条件カ甘曷載されたページがある。 ジにある、 License for Limited Use" という項目をたどって さきほど示した SSHH 。 mePage のダウンロード用ペー 定意 1 てイ吏う場合には、製品版のパッケージを購入する必要があ にかぎり無償で使用できる。したがって、一ヨ殳の会社など をインストールする必要がある。現在のところ、 2.0.13 は SSH2 プロトコルだけを、 1.2.27 は SSHI プロトコルだ けをサポートしている。両方インストールしても、たいし て手間はかからない。 和ゞ日頃使っているシステムには、 SSHI だけに対応し ーと SSH2 だけに対応したサーバーの 2 種類か あり、クライアント側でそれぞれに対応しなけれはならな いため、両方ともインストールして使っている。私自身の 経験からいっても、 2 つのバージョンをインストールして 運用するのは、とくに難しいことではない。 インストール SSH のパッケージは、 configure スクリプトを使って簡 単にインストールできる。入手したパッケージを展開し、 % make としてインストールする。これで、 SSH を使うためのコ # make install 限で、 コンパイルか問題なく終ったら、スーパーユーサーの権 % . /configure 次のように実行する。 43 で十ヾることができる。 % . /configure ——help ure のオフションは、 configure スクリプトのオフションで指定する。 config- インストール先のディレクトリを変更したい場合は、 ・ 2.0.13 のホスト成疋ファイル→ /etc/ssh2 ・ 1.2.27 のホスト設定ファイノレ→ /etc ・マニュアノレベージ→ /usr/local/man その他のコマンド→ /usr/local/bin ・ sshd → /usr/local/sbin トールされる。 定しなけれは、各ファイルは次のディレクトリにインス configure スクリプトの起重加に特別なオプションを指 インストール先ディレクトリ インストールされる。 sshd のためのホスト設疋ファイル、マニュアルページが マンド群 (ssh 、 slogin 、 scp 、 sshd 、 ssh-keygen など ) 、
連載 / Linux でリラックスー⑩ 図 9 dpkg-deb --fsys-tarfile の啝囲例 % dpkg-deb —-fsys—tarfile $TOP/dists/s1ink/main/source/web/wget-1.5.3 ー 1.1. deb \ ← /usr/doc ディレクトリ以下を取り出す ー tar xvf ー usr/doc usr/doc/ usr/doc/wget/ usr/doc/wget/html/ usr/doc/wget/html/wget—l . html usr/doc/wget/htm1/wget—10. html usr/doc/wget/NEWS. gz usr/doc/wget/README usr/doc/wget/MAILING-LIST usr/doc/wget/TODO usr/doc/wget/changelog. Debian ・ gz パッケージの作成方法 Debian GNU/Linux のバイナリ・ノヾッケージは、でき るかぎり汎用性の高い設定を用いて作成されています。た とえは、ソフトウェアのコンパイル時オフションも、可能 なかぎり汎用的なものカ甘旨定されています。したがって、 ほとんどの場合は、自分でバイナリ・パッケージやソース・ パッケージを作る必喫はありません。 しかし、用意されているノヾイナリ・パッケージとは異な るコンパイル時オプションを用いたソフトウェアが必要に なることもありますし、ソフトウェアのソースコードを一 部変更して使いたいこともあるでしよう。そのような場合 は、 Debian GNU/Linux のソース・ . パッケージを入手し て、自分でバイナリ・パッケージを作る必要があります。 それはど有名ではなかったり、あるいはライセンスに問 題がある (Debian Free Software Guidelines に従って いない ) ソフトウェアについては、パッケージ化されてい ないことがあります。このような場合、通常は /usr/local ディレクトリ以下にインストールして使用します。 De- bian GNU/Linux では、 /usr/local ディレクトリはそ の計算機に固有のソフトウェアをインストールする場所と されている [ 1 ] ので、パッケージ管理システムとは独立し て利用できます。しかし、このようなソフトウェアも De- bian GNU/Linux のノヾッケージにしておけば、 dpkg コ マンドを用いたソフトウェアの j 助日や削除が可能になりま す。さらに、ほかの Debian GNU/Linux システムにも 簡単にインストールできます。 以下では、 Debian GNU/Linux のパッケージを作 UNIX MAGAZINE 1999.9 成する方法を説明します。具体的には、 Debian GNU/ Linux のソース・ノヾッケージからノヾイナリ・ノヾッケージ を作成するガ去と、ソース・パッケージか有しないソフ トウェアからソース・パッケージを作成する方法をとりあ げます。 ます、パッケージの作成に使うソフトウェアを紹介し ます。 パッケージ作成用のソフトウェア Debian GNU/Linux には、数多くのパッケージ作成 用ソフトウェアがあります [ 2 , 4 ] 。 Debian GNU/Linux をインストールした状態 ( 優先度が Standard ( 標準 ) までのパッケージをインストールした状態 ) では、パッ ケージ作成用のソフトウェアとして dpkg と dpkg- dev の 2 つだけがインストールされています。 Debian GNU/Linux のパッケージを作成するためには、必要に 応して下記のパッケージをインストールする必要があり ます。 debmake ノヾッケージ Debian GNU/Linux のソース・ノヾッケージを作成する ためのソフトウェアです。 Debian GNU/Linux 用と してパッケージ化されていないソースコードのパッケー ジ化を支援する debmake コマンドと、ソース・パッケ ージからのバイナリ・パッケージの作成を麪爰する deb- std コマンドが含まれています。 Debian GNU/Linux のソース・ノヾッケージのなかには、バイナリ・パッケー ジの作成に debstd コマンドを必要とするものもありま す。現在は、 debmake パッケージの代わりに、次に 説明する debhelper パッケージの使用力甘隹奨されてい 91
連載 . / UN Ⅸ Communication Notes 図 1 /etc/rc. local に追加する起動スクリプト # start sshd if [ —f /usr/local/sbin/sshd ] ; then echo —n ) sshd' ・ f i 図 2 /etc/inetd. conf への自加 /usr/local/sbin/sshd ssh stream tcp nowait root /usr/local/sbin/sshd sshd —i ホスト言ファイル ホスト設定ファイルは、 1.2.27 と 2.0.13 とでは異なっ ている。 1.2.27 では、次のファイルがインストールされる。 /etc/ssh-config クライアント・プログラム (ssh 、 slogin 、 scp など ) 成疋ファイノレ /etc/sshd-config サーノヾー・フログラム (sshd) の言影立ファイル /etc/ssh2/hostkey. pub ・ /etc/ssh2/hostkey ・ /etc/ssh2/sshd2-config /etc/ssh2/ssh2-config これが 2.0.13 では次のようになる。 ホストの RSA 公開鍵 /etc/ssh-host-key. pub ホストの RSA 秘密鍵 /etc/ssh-host-key の SSHI では認証に RSA 日を号を使うが、 SSH2 では標 準で DSA 暗号を利用する。 , したがって、 hostkey と hostkey. pub はそれぞれ DSA の秘密鍵と公け雕建である。 どちらのバージョンでも、ホストの公開鍵と秘密鍵のペ アはインストール時に生成される。 注意 2 その名のとおり、ホストの公開鍵は誰に見られてもかまわ ないが、秘密鍵は管理者以外のユーサーに漏れてはならない。 秘密鍵ファイル (ssh-host-key または hostkey) のパーミ ションは、所有者 root で、モード 0600 に言定する必要があ る。 tripwire などを使っている場合には、ホストの公雌建と秘 建のペアも監視対象に含めるべきである。 44 両方のバージョンをインストールする場合 両方のバージョンをインストールする場合は、最初に UNIX MAGAZINE 1999.9 引数に、、 - i " をかならす指定しなければならない。 1 行を追加する。この場合は、例にあるように sshd の inetd から起動ける場合は、 /etc/inetd. conf に図 2 の 加する。 を変史する場合には図 1 に示すようなスクリプトを追 たとえば、 /etc/rc. 10Ca1 /sshd か起動されればよい。 る。基本的には、システムの起重加に / usr / 1 。 cal/sbin . conf を変更したり、あるいは起動スクリプトを作成す システムごとに異なるが、 /etc/rc. local や /etc/inetd 2. sshd を起動するスクリプトを準備する。 を追加する。 ssh 22/tcp て、 /etc/services に 1. ssh では TCP の 22 番ポートを使用する。したがっ sshd を起重丿庁る。このための準備は次のようにする。 サーバー側では、 SSH のデーモン・フログラムである サーバー側の準備 ほうが作業は楽である。 けようとするので、 1.2.27 をさきにインストールしておく きに起動される SSHI 対応の ssh ( または sshd) をみつ 2.0.13 の configure スクリプトを実行すると、このと 動する。 ルでアクセスされた場合、 1.2.27 の sshd を自重加勺に起 ・サーバー側では、クライアント側から SSHI プロトコ で応答した場合、 1.2.27 の ssh を自重加勺に起重丿庁る。 ・クライアント側では、サーバー側が SSHI プロトコル は次のような機能を備えているからである。 1.2.27 を、その次に 2.0.13 をインストールする。 2.0.13
ブータブル・リカバリー CD ② 図 39 変更後の言聢ファイルの内容 (Slackware) ・ fstab の内容 /dev/hda2 /dev/hdal none /dev/hdc ・ mtab の内容 s wap /proc /cdrom SWap ext2 proc iS09660 defaults defaults defaults ro ,noauto 0 1 0 0 0 1 0 0 /dev/hdal / ext2 て 0 0 none /proc proc rw 0 0 ・Ⅲ 0. conf の内容 boot /dev/hda # Start LILO global section #compact delay = 50 vga = normal # faster, but 0 取 ) t work on a11 systems. # force sane state # Linux bootable partition config begins /vmlinuz lmage /dev/hdal 1abe1 slackware read—only # Non—UMSDOS filesystems should be mounted read—only for checking # Linux bootable partition config ends ( 3 ) 設定の変更 リストアが終ったら、あとは lilo コマンドを使って LILO をインストールするだけです。ただし、 FreeBSD の場合と同様、 HDD 構成が変わっていれは設定ファイ ルをいくつか変史する必要があります。変更の対象となる ファイルは以下の 3 つです。 ・ (/mnt)/etc/fstab /mnt)/etc/mtab (/mnt)/etc/lilo ・ conf Slackware や Red Hat の場合、現在マウントされて いるパーティションの ffV)S/etc/mtab に言求されます が、これも変更しないと起動に失敗します。 今回イ目したマシンでは、各ファイルの内容か図 38 の ようになっていたとしましよう。 Slackware のリカバリー CD には nvi を求したので、各ファイルを変更するに はそれぞオリュー - ドのように実行します。 /cdrom/nvi /mnt/etc/fstab /cdrom/nvi /mnt/etc/mtab /cdrom/nvi /mnt/etc/lilo . conf これらのファイルを復旧マシンの HDD に合わせて変 更すると、その内容は図 39 のようになります。 CD-R 作成マシンは HDD の MBR 領域に OS-BS をインス UNIX MAGAZINE 1999.9 トールしていたので、Ⅲ0. conf の boot ノヾラメータの値 は /dev/hdcl 、つまり LILO を SIackware のノヾーティ ションのク頁にインストールする設定になっていました。 これに対し、復旧マシンのほうは HDD の MBR 領域に LILO をインストールするため、 boot パラメータの値を 、、 /dev/hdal" ではなく、、 /dev/hda" としています。 成疋ファイルの変更カ鮗ったら 1i1 。コマンドを以下の ように実行し、 LILO を復旧した HDD にインストール します。ー r オフションは、引数で指定したディレクトリ をルート・ディレクトリとして LILO をインストールす ることを意味します。 # 1i10 —r /mnt Added slackware * 以 E で復旧イ乍業はおしまいです。 CtrI キーと AIt キー DeIete キーの 3 つを同時に押せば、マシンを再起動でき ます。 なお、Ⅲ。コマンドや 1i10. conf の言岩田については、オ ンライン・マニュアルⅢ 0 ( 8 ) やⅢ0. conf(5) などをご覧 ください。 Red H at の場合 Red Hat の場合、インストール作業に必要なコマンド はプートフロッピーのイメージファイルではなくリカハ 37
◎ CD-Recordable 図 16 cdrecord のインストール (FreeBSD) bash# gmake install e [ 1 ] : ( 略 ) e [ 1 ] : ( 略 ) e [ 3 ] : e [ 3 ] : e [ 2 ] : e [ 1 ] : bash# ■ = > MAKING " 土Ⅱ stall ” ON SUBDIRECTORY ” SRCROOT/patches " Entering directory '/tmp/cdrecord—l .8/patches ' Entering directory ( /tmp/cdrecord—l .8/cdrecord ) = > INSTALLING "/usr/local/bin/cdrecord" = > MAKING "install" ON SUBCOMPONENT "SRCROOT/cdrecord/Makefi1e . man" Entering directory ( /tmp/cdrecord—l .8/man/man4 ' = > INSTALLING " /usr/10ca1/man/man5/makeruIes . 5 " Leaving directory ( /tmp/cdrecord—l .8/man/man4 ' Leaving directory ( /tmp/cdrecord—l .8/man/man4 ' Leaving directory ( /tmp/cdrecord—l .8/man ラム・ファイル、ライプラリ、オンライン・マニュアル がインストールされます。これを変更するには、 Free- BSD の士昜合は cdrecord-l. 8/DEFAULTS/DefauIts . freebsd 、 SIackware と Red Hat であれば cdrecord- 1.8/DEFAULTS/DefauIts. linux というファイルを 修正します ( いすれも 30 行目 ) 。 ・ FreeBSD bash# ls /cdr/root b00t . flp root . dump ・ gz ・ S lackware bash# ■ restore usr . dump ・ gz root . dump ・ gz INS_BASE= INS_BASE= /opt/schily /usr/local ↓ bash# ls eltorito bash# ロ ・ Red Hat bash# ls RedHat bash# ls base bash# ■ /cdr/root ・ 1mg nV1 /cdr/root b00t . img root . dump ・ gz /cdr/root/RedHat ー己のように変更すると、インストール先は /usr/local /{bin,lib,man} になります。 2. コンパイルとインストール FreeBSD の場合、さきほどインストールした gmake を実行してコンパイルをおこないます。パッケージに 刊属のドキュメント (INSTALL) を読むと、 Linux で は make を直接実行するのではなく、パッケージに添 付されている Gmake. linux というスクリプトを使う ように指示されています。図 15 と図 16 は FreeBSD で gmake を実行した例ですが、 Slackware や Red Hat の場合は、 gmake" の部分を、、 . /Gmake. linux' に変更して実行してください。 CD イメーシファイルの作成 前回の準備では、 CD イメージファイルの内容を / cdr / root の下にまとめました。対象となる OS ごとのファイ ル構成は、以下のようになっているはずです ( もちろん、 パーティション構成などによって多少変わります ) 。 20 i386 instimage これらのうち、 Red Hat に関してはファイルを 1 つ追 加してください。 というのも、 FreeBSD と Slackware ではリカバリー CD による起重加叔こ、日作業に必要ないードディスク などに対応する ) デバイスファイルがあらかじめ作成され ますが、 Red Hat の場合はインストール・プログラムが 必要に応して作成するので、リカバリー CD て起動した 段階では最小限のテンヾイスファイルしかないからです。 もちろん、デバイスファイルの作成コマンド mknod を使えばいいのですが、デバイスを識別するための番号 ( メジャー番号とマイナー番号 ) を指定しなければならず、 忘れてしまえばお手上げです。さいわいなことに /dev ディレクトリにはデバイスファイル名を指定するだけで 作成してくれる MAKEDEV というスクリプトがあり ます。これを以下のように /cdr/root にコピーしておき ます。 bash# cp /dev/MAKEDEV /cdr/root UNIX MAGAZINE 1999.9
0 CD-Recordable 図 40 リカバリー CD による復旧手順 (Red Hat) 図 41 デパイスファイルの作成 リカバリー CD からの起動 インストール・プログラムの起動 ( リカバリー CD のマウント ) ( シェル起動 ) テパイスファイルの作成 HDD のパーティション 分けと初期化 / ヾーティションのマウント バックアップ・ファイルのリストア ( ファイルの数 だけ繰り返す ) ( 必要なら ) 設定ファイルの変更 /etc/{fstab,mtab,lilo. conf} 凵 LO のインストール bash# cd /dev bash# ls console Ⅱ u11 10g て am systty tty2 ttyl tty3 bash# sh /tmp/rhimage/MAKEDEV hda /tmp/rhimage/MAKEDEV : chown : command unlink 0f —f failed: NO such file or ( 略 ) /tmp/rhimage/MAKEDEV : chown : command unlink 0f —f failed: No such file or /tmp/rhimage/MAKEDEV : chown : command unlink Of —f failed: No such file or tty4 tty5 not found directory not found directory ot found directory bash# ls console hda3— hda— hdal- hda2— bash# ロ hda4— hda5 ー hda6 ー hda7 ー Ⅱ u11 10g hda8- ram tty2 ttyl systty tty3 tty4 tty5 リー CD ロ求されているので、起動力院了してインス トール・プログラムが実行されると、ます CD-ROM を マウントしようとします。復旧イ乍業に必要なコマンドもリ カバリー CD にあるので、 CD-ROM のマウントはイン ストール・プログラムに、そオ LJ リ汐 ) 竹業を手重丿にお こないます。 ます、リカバリー CD からの起動か完了すると、 Red Hat のインストール・プログラムが自重加勺に実行されます。 最初に、インストール・プログラムで利用する言語とキー ポードの不鶤頁について訊かれるので、自分の環境に合った ものお尺します。 これらの設定か終ると、インストール・メディアの選 択画面か表示されます。ここで、、 LocaI CD-ROM" とい う項目を選ぶと、「 Red Hat のインストール CD を入れ ろ」という意味のメッセージか表示されるので、、、 OK ・ を選ぶと CD-ROM の検索が自重加勺におこなわ /tmp /rhimage というディレクトリにマウントされます。 CD-ROM のマウントカ院了するとインストールの第 2 段階に移彳丁し、さらに 2 番目の佖想コンソールにシェルが 起動されるので、 AIt 十 F2 を押してコンソールを切り替え ます。 Red Hat の場合、 /dev 以下のテンヾイスファイルはイ ンストール・プログラムが必喫なものだけを自重加勺に作成 するので、この状態では必要最小限のデバイスファイル しかありません。このため、リカバリー CD ロ求した MAKEDEV スクリプトを使い、 HDD をマウントする ために必要なデバイスファイルを作成します ( 図 41 ) 。 38 図のように、 MAKEDEV スクリプトの引数に hda を 指定すると、 hda だけでなく hdaI—hda8 のデバイス ファイルも同時に作成されます。このとき、 MAKEDEV スクリプトはデバイスファイルの所有者を変更するために chown などの外部コマンドを実行しようとしますが、リ カバリー CD には求されていないのでエラーメッセージ カ可回か表示されます。しかし、デバイスファイルはちゃ んと作成されるので、実際のイ乍業十に間題ありません。た だし、エラーの景グでデバイスファイル名の最後に 付いてしまう点にだけ注意してください。 その後の作業は SIackware の場合とい犲兼で、以下のよ うな順番で竹璞をおこないます。 1 ノヾーティションの割当て fdisk /dev/hda— 2. パーティションの初期化 mke2fs /dev/hdal— 3. ノヾーティションのマウント mkdir /mnt mount /dev/hda- /mnt 4. バックアップ・ファイルのリストア cd /mnt gzip /tmp/rhimage/root . dump. gz ー restore —r -f ー 5. ( 必要があ川ま ) 言影立ファイルの変更 Red Hat のリカバリ—CD ( コ求されているⅵコマ ンドを使って設定ファイルを変更します。 14 Red Hat の場合は restore の一ヨディレクトリを変更する必要はあ りませんでした。 14 UNIX MAGAZINE 1999.9
ブータブル・リカバリ —CD ② 図 15 cdrecord のコンパイル (FreeBSD) bash# cd cdrecord-l . 8 bash# gmake Leaving directory ( /tmp/cdrecord—l .8/man ' Leaving directory ( /tmp/cdrecord—l .8/man/man4 ) Leaving directory ( /tmp/cdrecord—l .8/man/man4 ' = = > LOCALIZING "OBJ/i386-freebsd—cc/man/makeru1es . 5 " Entering directory ( /tmp/cdrecord-l .8/man/man4 ) = > COMPILING "OBJ/i386-freebsd-cc/isosize . 0" = > COMPILING "OBJ/i386—freebsd—cc/fifo . 0" = > COMPILING "OBJ/i386-freebsd-cc/cd-misc . 0 " = > COMPILING "OBJ/i386—freebsd—cc/cdrecord.0 " Entering directory ' /tmp/cdrecord-l .8/cdrecord' Entering directory ' /tmp/cdrecord—l .8/conf ' = > MAKING " a11 " ON SUBDIRECTORY "SRCROOT/conf " Leaving directory ( /tmp/cdrecord—l .8/patches ) Entering directory ( /tmp/cdrecord—l .8/patches ) = > MAKING " a11 " ON SUBDIRECTORY "SRCROOT/patches" bash# ロ gmake [ 1 ] : gmake [ 2 ] : gmake [ 3 ] : gmake [ 3 ] : ( 略 ) gmake [ 1 ] : ( 略 ) gmake [ 1 ] : gmake [ 1 ] : gmake [ 1 ] : らのほうが対応する ( 動 ( 薩勘ゞとれている ) CD-R ドラ イプの種類が多いので、 こでは cdrecord-l. 8a22. tar. gz のインストールのみを紹介します。コンパイルとイン ストーノレのガ去は同じなので、バージョンがうまく動か ない場合は正式バージョンを試してみるといいでしよう。 ソースアーカイプの入手先は以下のとおりです。 ・ 1 朝己布元 cdrecord-l. 6.1. tar. gz は ftp://ftp.fokus.gmd.de/ pub/unix/cdrecord/ に、 cdrecord-l. 8a22. tar. gz は ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/ に置かれています。 ・国内の FTP サイト いすれのファイルも、 ftp://ftp[I-7].jp.freebsd.org/ pub/FreeBSD/distfiIes/ などにあります。 このノヾッケージには CD ー R への書込みコマンド (cdre- cord) だけでなく、音楽 CD に含まれる CD-DA フォー マットのデータを WAVE フォーマットのファイルに取 り込むための cdda2wav や、 CD のイメージファイル を作成する mkisofs ( バージョン 1.12b5 ) が含まれてい ます。したがって、このパッケージをインストールすれば ( 音楽 CD も含めて ) CD イメージの作成から CD-R へ の書込みまでに必要なコマンドがすべて揃います。 なお、ソースパッケージのコンパイルには GNU make UNIX MAGAZINE 1999.9 (gmake) が必要です。 Slackware や Red Hat では標 準添付 4 ですが、 FreeBSD ではバイナリ・パッケージ (gmake-3.77. tgz) として提供されています。以下のよう に、 FreeBSD のノヾッケージ CD からインストールして おいてください。 (FreeBSD のノヾッケージ CD をセット ) bash# mount /cdrom bash# pkg—add /cdrom/packages/A11/gmake—3.77. tgz bash# ロ ソースアーカイプを入手して / tmp に置いたとすると、 インストールの手順は以下のようになります。 1. ソースアーカイプの展開と設疋ファイルの修正 ます、ソースアーカイプを展開します。 bash# cd /tmp bash# tar zxf cdrecord—l .8a22. tar. gz bash# ー cdrecord-l. 8 というディレクトリが作成され、その 下にソースファイルなどが置かれます。 cdrecord 本 体は autoconf を用いておらす、インストール先など は OS ごとの設定ファイルで定義されています。い すれの OS も、デフォルトのインストール先は / 叩 t / schily/{bin,lib,man} になっていて、それぞれプログ 4 OS に添付されている /usr/bin/make が GNU make です。 19
linuz なので、これをさきほど作成したカーネルと入れ替 えてアンマウントします。 bash# rm /mnt/vmlinuz bash# cp /vmlinuz /mnt bash# umount /mnt bash# ■ UNIX MAGAZINE 1999.9 せん。 2 特定の OS 向けに販売されているソフトウェアはこのかぎりではありま ますが、ソースファイルからのコンパイルとインストール によってはこれらのバイナリ・パッケージが用意されてい R 書込みツールとして cdrecord をとりあげます。 OS メージ作成ツールとして mkisofs と mkhybrid 、 CD- こでは CD イ 用できるツールはいくつかありますが、 ます。 FreeBSD や Linux など、 PC 向けの UNIX て利 で、 IS09660 のイメージファイルを CD-R に書き込み める機能をもちます。もう 1 つは CD - R 書込みツール イルを IS09660 フォーマットのイメージファイルにまと ク寺定のファイルや、特定のディレクトリ以下にあるファ 1 つは CD イメー乍成ツールで、ファイルシステム中 ルて構成されています 2 。 ていることがはとんどですが、 UNIX では 2 不頁のツー 成するためのソフトウェアは 1 つのパッケージに統合され Windows の場合、 CD-R ドライプを用いて CD を作 CD 作成ツールのインストール しよう。 は、この手順に従ってカーネルを再構築しておくといいで ルがルーフ。バック・デバイスをサポートしていない場合 イルの中身を簡単に石忍できるので、使用しているカーネ す。ループバック・テパイスを使えば CD イメージファ なお、カーネルの明冓築の方法は Red Hat も同じで 含まれているため、作業するうえで問題にはならないはす んが、マシンの復旧に必要な機能はすべてカーネル本体に できます。 eltorito. img にはモジュールを入れていませ てリカバリー CD を作成すれば誤認識を回避することが ローラを使っている SCSI カードだけなので、これを使っ このカーネルがサポートするのは NCR 53C875 のコント 以ーヒで eltorito. img のカーネルの入替えは完了です。 ブータブル・リカバリー CD ② もさはど難しくはありません。今回は、ソースアーカイプ を入手してインストールしてみましよう。 mkhybrid のインストール mkhybrid は IS09660 フォーマットのはか、 UNIX 向けのカ長フォーマットである RockRidge や Windows 95 / 98 の Joliet 、 Macintosh の HFS に対応しています。 ( 彳する ) mkisofs は RockRidge と Joliet に対応して いますが、 mkhybrid は mkisofs をベースとして HFS に 対応するための拡張を施したツールなので、 HFS に関連 するオプションを除き、使い方は mkisofs とほは共通して います。インストール作業はごく簡単ですが、 Macintosh に対応した CD を作るのでなければ mkisofs でも十分 です。 mkhybrid の最斤ノヾージョンは 1.12b5.2 で、ソース アーカイプのファイル名は mkhybrid-l. 12b5.2. tar. gz です。 1 次配布元である ftp://ftp.ge ・ ucl. ac. uk/pub/ mkhfs/ のほか、国内では ftp://ftp[1-7].jp.freebsd.org /pub/FreeBSD/distfiIes/ などから入手できます。 1 次 配布元には修正パッチ (mkhybrid-l. 12b5.2. patchl) も 置かれていますが、わすかな修正なのでわざわざ入手する 必要はありません 3 。 17 ↓ 3 国内の FTP サイトでは、修正パッチはみつかりませんでした install : mkhybrid mkhybrid. 8 install: mkisofs mkisofs . 8 す。これは前出の修正パッチの内容と同じです。 MakefiIe. ⅲの 72 行目を以下のように修正しておきま くインストールされないので、 mkhybrid-l. 12b5.2/ ただし、このままだとプログラム・ファイルなどか正し bash# ロ bash# tar zxf mkhybrid—l .12b5 . 2. tar ・ gz bash# cd /tmp 下にソースファイルか置かれます。 brid ー 1.12b5.2 というディレクトリが作成さオ L 、その tar を使ってソースアーカイプを展開します。 mkhy- 1. ソースアーカイプの展開 ールの手順は以下のようになります。 ソースアーカイプを / tmp に置いたとすると、インスト
連載 / Linux でリラックスー⑩ 図 4 wget ソース・ノヾッケージの debian/changelog ファイル wget ( 1.5.3 ー 1.1 ) frozen unstable; urgency=high * fix bug # 33624 ()f severity 'lmportant' for security reasons) . Vincent Renardias く vincent@waw. com> Sat , 20 Feb 1999 22 : 49 : 00 + 0100 wget ( 1 . 5.3 ー 1 ) unstable ; urgency=low * Uses src/ChangeLog as upstream changelog ・ * Added ( SHELL=/bin/bash ' to debian/rules . * Changed references to /usr/local/etc/wgetrc to /etc/wgetrc. * New upstream release, fixes bug # 26989. NicoIäs Lichtmaier く nick@feedback. net. ar> Sat, 26 Sep 1998 08 : 06 : 22 ー 0300 Loca1 variables : mode : debian—changelog add—log—mailing—address : ramos@debian. 0 て g End: る変更履歴が記録されています ( もとになるソフト ウェアの変更履歴ではありません ) 。これが、バイナ リ・パッケージに含まれる /usr/doc/'S ッケージ名 / changelog. Debian. gz" というファイルになります。 ソース・パッケージやバイナリ・パッケージを作成する ときは、このファイルに書かれているバージョン情報 をもと ( ンヾッケージのバージョンか共定されます。図 4 に、 wget ソース・ノヾッケージの debian/changelog ファイルの一部を示します。図の末尾を見ると分かる ように、このファイルを Emacs や XEmacs で言冗み 込むと自重加勺に debian-changelog モードになり、変 更履歴を簡単に追加することができます ( 詳しい使い方 は、、、 M-x describe-mode" で表小されるヘルプを参 照してください ) 。 ・ debian/preinst 、 debian/postinst ( インストール時 に実行されるプログラム ) ソース・パッケージから作成されたバイナリ・パッケー ジを dpkg コマンドでシステムにインストールすると き、ノヾッケージのインストール則 (pre-install) とイン ストール後 (post-install) に実行されるプログラムで す。はとんどの場合、中身はシェル・スクリプトです。 ソース・パッケージによっては、これらのファイルが 含まれないものもあります。たとえば、 wget ソース・ パッケージには含まれていません 1 1 wget のバイナリ・パッケージには含まれています (' ヾイナリ・パッケー ジの寺に、 debstd コマンドによって自重加勺に竹戎されます ) 。 86 ・ debian/prerm 、 debian/postrm ( 削除日に夫行され るプログラム ) ソース・パッケージから作成されたバイナリ・パッケージ を dpkg コマンドによってシステムから削除するとき、 パッケージの削除前 (pre-removal) と削除後 (post- removal) に実行されるプログラムです。ほとんどの場 合、中身はシェル・スクリプトです。ソース・パッケー ジによっては、これらのファイルか含まれていないもの もあります。たとえば、 wget ソース・パッケージには 含まれていません。 ・ debian/conffiles ( 成疋ファイノレの一覧 ) 7 月号で説明したように、 Debian GNU/Linux のノヾッ ケージ管理システムでは、いったんパッケージをインス トールしたあと、パッケージの設疋ファイルを残した ままパッケージを削除することができます。このため、 Debian GNU/Linux のノヾッケージ管理システムでは、 パッケージがどのような成正ファイルをインストールし たかを管理しています。 debian/conffiles ファイルには、ソース・ノヾッケージ から作成されたバイナリ・パッケージがどのような設 定ファイルをインストールするかか第当されています。 システムからパッケージを削除しても、 、に聿かれた ファイルは削除されません。たとえは、 wget のソース・ パッケージに含まれている debian/conffiles ファイル /etc/wgetrc UNIX MAGAZINE 1999.9
ブータブル・リカバリ —CD ② 図 21 SCSI CD-ROM からの (DC-390U の場合 ) lnstalled at IOPORT = E400h , IRQ 9 ー Leve1 triggered BIOS ROM mapped at D000h くくく Press F2 or F6 to Enter Configuration Menu > > > ID—LUN : 1 ー 0 TEAC CD-ROM CD-532S 3 . OA CD-ROM Xfer Rate=20. OMB/Sec, Sync Offset=16Bytes くくくく Bootab1e CD—ROM found > > > > ( 0 ) ー > Defau1t Boot Section = > Se1ect the section tO boot, く ESC> tO abort * * * CD ROM installed at drive A : * * * Origina1 drive A: wiII become drive B: * * * Origina1 Drive B: wi11 disappear if it exists ID—LUN : 2 ー 0 TEAC CD—R55S 1 . OQ CD—ROM Xfer Rate=10. OMB/Sec, Sync Offset=15Bytes SCSI BIOS installed ! チェックや HDD の認識などカ鮗了すると CD-ROM が 参照さプータブル CD であればそこから起動を始めま す。逆にいうと、 CD-ROM から起動したくない場合も止 めることかできません。 これに対し、 DC-390U の場合は、 SCSI カードに接続 されたデバイスを認識する時点で CD-ROM ドライプに プータブル CD が入っていると、図 21 のように CD- ROM からプートするかどうかを訊かれます。 こで 0 を入力するとプータブル CD から OS を起 動しようとし、 Esc キーを押すと CD-ROM からの起動 はおこないません。 IDE にくらべれば選択できるだけま だよさそうですが、いちいち訊かれるのは面倒です。しか も、こちらが答えるまて起動は止まったままです。した がって、いずれの場合も、 CD-ROM から起動するつも りがなければ BIOS 設定をもとに戻しておいたほうがい いでしよう。 復旧作業の手順 今回の対象 OS は、いずれもインストール・フロッピー のイメージファイルを流用してプータブル CD を作成し ているので、起動の手順は OS をインストールする場合と まったく同じです。ここからさきの作業は OS によって 異なるため、それぞれについて説明します。 なお、リストア先の HDD にはパーティションなどが 何も設定されていない、つまり新品の HDD を買ってき UNIX MAGAZINE 1999.9 ← 0 を入力 図 22 リカバリー CD による復旧手順 (FreeBSD) リカバリー CD からの起動 インストール・プログラムの起動 ( HDD の設定とマウント ) ( シェル起動 ) リカバリー CD のマウント バックアップ・ファイルのリストア ( ファイルの数 だけ繰り返す ) ( 必要なら ) 設定ファイルの変更 /etc/fstab た状態であると仮定して話を進めます。既存の HDD を流 用するとそのパーティション成疋が残っていますが、これ を流用するのか消して設定しなおすのかは、それぞれの判 断に任ます。 、 eeBSD の場合 FreeBSD では、プートイメージのカーネルか第売み込ま れた点で、有効にするデバイスを耳対舎尺する画面か現 れます。スキップしてもいいのですが、途中で起動が止 まってしまう場合は不要なデバイスを削ってください。 その後メモリ上にファイルシステムが作成されてイン ストールに必要なプログラムなどが置か起重肋院了す るとインストール・プログラムが自重加勺に実行されます。 インストール・プログラムか起動すると、お染み ( ? ) の sysinstall の初期画面 ( 図 23 ) か現れます。 29