1. tftpサーバ
PXEブートしたリブに、ブートイメージを転送するのに必要。
# apt-get install atftp
# apt-get install atftpd
tftpパッケージもあるが、なんかうまくいかなかった。インストール時にいろいろと聞かれる項目は全部デフォで(Enter連打)。設定は /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd
--tftpd-timeout 300 --retry-timeout 5 --mcast_port 1753 --mcast_addr 239.25
5.0.0-255 --maxthread 100 --verbose=5 /tftpboot
こんなのを確認(実際は1行)
行末の"/tftpboot"はデフォは違ったかも。とりあえずここで指定されているパスを実際に作成する。-p で一気にやってもいーけど
# mkdir /tftpboot
# mkdir /tftpboot/pxelinux.cfg
次のファイルを作成する。
# cat /tftpboot/pxelinux.cfg/default
default install
label install
kernel tftpboot.img
append load initrd=root.bin devfs=nomount
インストールCD内にあるブートイメージ関連ファイルをコピー
# cp /cdrom/dists/stable/main/disks-i386/current/bf2.4/tftpboot.img /tftpboot
# cp /cdrom/dists/stable/main/disks-i386/current/images-1.44/bf2.4/root.bin /tftpboot
でもって、syslinuxパッケージに入っている、下記ファイルをコピー
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
tftpの設定は以上。
2. dhcpサーバ
PXEブートするリブに、IPアドレスを割り当てるのに必要。
同一ネットワーク内に既に dhcpサーバが動いてるときは、そいつは止めておく。
# apt-get install dhcp
設定は /etc/dhcpd.conf
デフォルト設定(つーかテンプレート?)は、やたらと無駄な記述が多いので、1から書き直したほうが早い(かも)量も少ないし
とにかく、母艦とdhcpクライアントが通信できるように設定する。その上で、リブはMACアドレスを控えておいて、次のように設定
host mimolette{ リブのホスト名(って、今からセットアップするんだけど)
filename "/tftpboot/pxelinux.0"; tftpサーバの設定でのpxelinux.0のパス
hardware ethernet XX:YY:ZZ:XX:YY:ZZ; リブのNICのMACアドレス
fixed-address 192.168.1.101; リブに割り当てるIPアドレス
}
ちなみに dhcpd.conf の全内容はこんな感じ (とりあえず動いてるけど自信なし)
また、リブでPXEブートしなかったら(普通にブートしたら)192.168.1.101が振られて普通に使用できるので、インストールが終わったら設定を元に戻す必要もない(みたい)
option domain-name "ddns.example.org";
option domain-name-servers 192.168.0.1, 210.196.3.183, 210.141.112.163;
# 192.168.0.1はADSLモデム / あとはプロバイダ(私はdion)のDNSサーバ
option routers 192.168.1.1; クライアントから見たサーバのアドレス
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
default-lease-time 7200; リース時間
max-lease-time 72000;
subnet 192.168.1.0 netmask 255.255.255.0 { DHCPで割り当てるサブネットの範囲
range 192.168.1.50 192.168.1.99; DHCPで割り当てる実際のIPアドレスの範囲
}
host mozzarella{ レッツノート用
hardware ethernet ZZ:YY:XX:ZZ:YY:XX;
fixed-address 192.168.1.100;
}
host mimolette{
filename "/tftpboot/pxelinux.0";
hardware ethernet XX:YY:ZZ:XX:YY:ZZ;
fixed-address 192.168.1.101;
}
dhcpdの設定は以上。とりえあずリブのXPでも起動して確認。
3. httpサーバ
ドライバやインストールパッケージを転送するのに使用。ファイルが転送できればftpでもnfsでもいいはず。うちはProFTPDは入れてないし、nfsはサービス止めてるから、既に動いているApacheの設定をいじった。Apacheのインストール&細かい(?)設定は
こちら
まず、ドライバ類を置いておく、わかりやすいパスを確保 (/tftpboot 配下である必要はないです) driver と bf2.4 っつーディレクトリ名は任意だが、images-1.44 は固定 (sを忘れないように)
# mkdir /tftpboot/driver
# mkdir /tftpboot/driver/bf2.4
# mkdir /tftpboot/driver/bf2.4/images-1.44
CDからファイルをコピー
# cd /cdrom/dists/stable/main/disks-i386/current
# cp bf2.4/* /tftpboot/driver/bf2.4
# cp images-1.44/bf2.4/* /tftpboot/driver/bf2.4/images-1.44
インストールパッケージはCDから直接(Apache経由で)リードするのでファイルのコピーは不要。HDDにファイルがある場合は、CDの場合と同じ構成になるように、httpd.confも設定する。
ドライバ類は、CD内のパス構成がそのままだとうまくいかないので苦肉の策(笑)
でもって、httpd.conf の(追加)設定
Alias /debian/ /cdrom/
<Directory /cdrom>
Options MultiViews Indexes FollowSymLinks
Order deny,allow
Deny from all
Allow from 192.168.1.0/24 127.0.0.1
</Directory>
Alias /debian-driver/ /tftpboot/driver/
<Directory /tftpboot/driver>
Options MultiViews Indexes FollowSymLinks
Order deny,allow
Deny from all
Allow from 192.168.1.0/24 127.0.0.1
</Directory>
招かざる客からのアクセス防止に、Orderはdeny->allowの順に。ディレクトリアクセスでファイル一覧が見れるように、OptionsにはIndexesを、シンボリックリンクでアクセスできるように、FollowSymLinksを設定しておく。
この状態で、http://母艦/debian/ でCD-ROMのルートに、http://母艦/debian-driver/bf2.4/ で、bf2.4のドライバへアクセスできることを確認。
これでサーバ側の設定は終了のようです。
ここまできたらあとはチョロいです。(多分)
とりあえず、netstat -tau にて、http(tcp), bootps(udp), tftp(udp) がLISTENしてるのを確認しておく。(udpはLISTENしねーけど(^-^;))
■ 1. PXEブート
キー"F12"を押しながらリブを電源投入する(ゼロだとリカバリですよ)。
説明書27ページにしたがって、ネットワークブートのアイコンを選択しEnter(右から2番目)。もしくは"N"押しながらブート。
起動するとまずDHCPサーバを探しに行き、IPアドレスを取得すると次は、TFTPサーバを探しに行く。
起動に成功すると、見慣れた(?)ペンギンのロゴとともに、それっぽい画面にかわる(テキトー)
■ 2. インストール作業
こっからは、通常のインストール作業と同等。言語を選択し、パーティションの設定。/dev/hda2 へインストールすること。
■ 3. パーティションの設定
最重要項目!! (XPに未練がない場合はその限りではない)
しくじると2度とXPのリカバリができなくなります(多分)。初期状態では、
/dev/hda1 ... NTFS (XP領域)
/dev/hda3 ... Hidden Win95 FAT32 (XPリカバリ領域)
となっているので、
/dev/hda3に触れることなく /dev/hda1をいったんDeleteし、新たに
/dev/hda1 ... Linux (領域確保するだけ。beginから4G〜5Gくらい?XP用テキトー)
/dev/hda2 ... Linux / boot (1と4の余り。Debian用)
/dev/hda4 ... swap (endからメモリの2倍くらい。swap用)
/dev/hda3 ... Hidden Win95 FAT32 (いじるな危険)
などを、作成。
設定できたら、/dev/hda3 が原型を保っているのを再度確認したうえでWriteしてcfdiskを抜ける。ちなみに、リカバリ直後のXPのディスク使用量は3.3GB(使いすぎデショ)
debian 以外に赤帽とか__も__入れたい場合は、logical で論理パーティションを一旦作成し、/dev/hda5, /dev/hda6... とパーティションを作ってやればOK。
ちなみにXPは、SP1を当てる最中に作業用に約800M(??)使用(足りないときはディスククリーンナップがなんとかしてくれる??)、SP1適用後(アーカイブ無し)は合計3.5GBくらい
一応、うちのリブの現在の cfdisk 時のパーティション例
cfdisk 2.11n
Disk Drive: /dev/hda
Size: 20003880960 bytes
Heads: 255 Sectors per Track: 63 Cylinders: 2432
Name Flags Pert Type FS Type [label] Size (MB)
-----------------------------------------------------------------------------
hda1 Primary Linux 6144.29 XP用
hda2 Boot Primary Linux 6654.26 debian用
hda5 Logical Linux 1019.94 何か用
hda6 Logical Linux swap 254.99 swap用
hda7 Logical Linux 3874.11 RedHatでもいれるか
hda3 Primary Hidden Win95 Fat32 (LBA) 2056.32
■ 4. カーネルとドライバモジュールのインストール
この例ではApache使ってhttpでやるんで、networkを選択。と同時に、先にネットワークの設定をしろぃと怒られるが、フツーに続行してやると、ホスト名とIPアドレス取得の方法(DHCPか手動か)を選択すると勝手にやってくれる。すばらしい。
でもって、インストールサーバの選択では、"http://母艦/debian-driver/bf2.4/"を入力。Apache の ServerName の設定にもよるが、URL最後のスラッシュはつけといたほうが確実。
■ 5. デバイスドライバモジュールの設定
まぁどうせ、カーネル再構築はやるんで(やるよね?)テキトーに。とりあえず、ntfs, smbfs あたりいれとけばえーやろ。usbは最初から選択されてるし(bf2.4)、ネットワーク周りはすでに設定されてるし。あとはbf2.4ならiptables関連とか、か。
■ 6. 基本システムのインストール
4と同じように、networkを選択。"http://母艦/debian/"を入力。デフォルト値は末尾のスラッシュがつかないんで注意。
■ 7. LILOのインストール
マルチブートをする場合は、インストールパーティション(/dev/hda2)へ。おそらくそれが楽かと(MBRはntldrを想定)。他の起動可能パーティションは、XPのリカバリ領域だけでなく(これからリカバリする)/dev/hda1 の(とりあえず確保している)XP領域を含むので、いれといても良いかも。ただし、リカバリ領域の /dev/hda3 は、起動することはできないので、落ち着いたら /etc/lilo.conf をイジっておきましょう。
/dev/hda へのマスターブートレコードはインストールしまへん。
ブートフロッピーは作成しない(つーかFDDないし)
■ 8. システムのリブート & XPのリカバリ
Debian セットアップの手順どおりに、1度目のリブートを実行。ブートの際は"0"キーを押しながら、XPのリカバリを行う。XPのリカバリは"Y"を2回タイプした後は何のオペレーションも要らないので、メシ時ならこのスキに吉野家にでも行けば良い。(約20分)
吉野家から戻ってきたら、リカバリが終了したら、XPのセットアップまで済ます。ちなみにXPは /dev/hda1 へ入る。
■ 9. bootpart.exe
XP が起動したら、http://www.winimage.com/bootpart.htm から、bootpaXX.zip(XXはバージョン)をパクってくる。2003/10/20の時点ではbootpa25.zip
そーいや、リカバリ直後のXPはSP1ですらないんで、ダイレクトにインターネットにつながる環境の場合はモロにMSBlastなんかのマトになっちゃうんで、別マシンで DL しませう。
で、適当なフォルダに展開してやり(C:\bootpart など)コマンドプロンプトを起動し、以下のように実行する。詳しくは、"bootpart, linux"あたりでググるなりなんなりしてください。
C:/bootpart>bootpart 1 c:\bootdeb.img "Debian GNU/Linux"
んで、c:\bootdeb.img written とか C:\BOOT.INI updated とか表示されたらOK。ついでに、My Computerのプロパティから、詳細設定タブの起動と回復の設定で、既定のOSを変更しましょう。
ちなみに bootpart を使うと、マルチブートでよくやる[ddでブートイメージ作成 -> winにコピってboot.ini編集]において、liloの修正(カーネル再構築等に伴う)のたびに再度実行する必要がないので幸せです。
■ 10. リブート & Debian セットアップ続き
bootpart で boot.ini の設定まで終わったら、リブートします。ブート時には何もキーは押しません。ブートしたら OS 選択画面になるので、Debian を選んでブートします。既定のOSを Debian にしてたら放置してても Debian がブートするけど。
無事にブートすると、XP のリカバリで時間が空いてつい忘れてしまいますが、セットアップの続きです。
とりあえず、pcmcia packages を消さないようにしとけばいいんかな… まだ使えてないけど(^-^;
で、tasksel と dselect は両方とも No で抜けた。どうせ sarge にするなら、dist-upgrade にしてから apt 実行すればいーかなーと思ったんで。(嘘っぽい)
Configuring Pcmcia-cs はよくわからん(汗) とりあえずデフォで。
後はちまちまと設定やってけば、インストールは終了するはず。
あぁ、だんだんテキトーに書いてる。。。
サーバの設定を除いた全作業所要時間は、1時間くらいかな。
■ 11. インストール直後に行う個人的な設定
CapsLock を Ctrl にします。母艦のほうは HHK 使ってるから不要なんだけど。
# cd /etc/console
# cp boottime.kmap.gz boottime.kmap.bak.gz ばっくあっぷ
# gzip -d boottime.kmap.gz
# vi boottime.kmap
Caps_Lock についての記述の部分
keycode 58 = Caps_Lock
の部分を
keycode 58 = Control
へ変更
# gzip boottime.kmap
# /etc/init.d/keymap.sh reload
んで、リブート
ちなみに上の記述は CapsLock を Ctrl にするだけなので、CapsLock は実質なくなります。「入れ替える」ときは、Control のとこもイジりましょう。
で、/dev/hda1 にある XP領域をとりあえずマウントしておく。(NTFSモジュールをロードしていること)
# mkdir -p /share/win
# mount /dev/hda1 /share/win
んで、/etc/fstab にも書いておこう。
/dev/hda1 /share/win ntfs defaults 0 0 <- rootしかreadできんかった
/dev/hda1 /share/win ntfs ro,umask=000 0 0
あとは、今後カーネル再構築をした際、万一ブートしなかったときに備え、現在のカーネル(2.4.18-bf2.4)が自動で消えないように手動で設定。
ちゃんと起動できるカーネルを残しておく、という意味
# cd /
# ln -s boot/vmlinuz-2.4.18-bf2.4 vmlinuz.2.4.18-bf2.4
# vi /etc/lilo.conf
Line:124 付近に追記
image=/vmlinuz.2.4.18-bf2.4
label=2.4.18(bf2.4)
read-only
ついでに、Other(/dev/hda3)に関する記述はコメントアウト
# lilo -v エラーがないことを確認
最後に、今後 Debian を再インストールする場合は、パーティションの変更をしないのであれば、手順8, 9 はスキップできます。(当然か)
あ、lilo から /dev/hda3(リカバリ領域)をブートしようとしても、問答用無用にリカバリが始まったりしません。ウンともスンともいわなくなるだけで、これといって害もない(ハズ)みたい。