ThinkPad 560E を買ってからはや9ヶ月、この間に NetBSD は PCMCIA をサポートした Official Release 1.3 が出、さらにそれに対する patch release の 1.3.1, 1.3.2 まで出てしまいましたし、ハードウェア側は増設メモリを 64MB に買い換え、 全部で 80MB( ThinkPad 560E の最大)と、変わってしまいました。入っている NetBSD自体も tera を更新したさいに一緒に更新したりしているのでいつの間にやら 1.3F になってたりします。
しかも、前回残しておいた微軟窓はほんの数回しか立ち上がっていないくせに 500MBもディスクを食っているのは許されないと思うようになってきたので、 この際、駆逐することにしました。だって、disk が
[tamp]~% df -kt ffs,msdos Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0a 156463 130268 18371 87% / /dev/wd0e 488623 368869 95322 79% /usr/local /dev/wd0f 271567 203399 54589 78% /usr/X11 /dev/wd0g 390703 364975 6192 /var/users /dev/wd0h 511744 403680 108064 78% /msdog [tamp]~% pstat -sk Device 1K-blocks Used Avail Capacity Priority /dev/wd0b 201600 9028 192572 4% 0 現在の disk 構成
なふうになってきたんやもん。:-)
ここで、やっぱり問題なのは Hibernation です。
ThinkPad 560Eは
Hibernation する際に FAT 領域に PM_HIBER.BIN
という
ファイルを作成し、そこにメモリのダンプをとります。したがって、
disk をすべて FFS にしてしまうと Hybernation 出来ないことになります。
最近 network card を `down' しておけば、安心して hybernation が
出来るようになったことですし(ちょっと面倒)、微軟窓で出来ることが
NetBSDで出来ないというのが
悔しいのでとりあえず出来るようにしておく事にしましょう。
そこで、現在の FAT 領域を 100MB 程度残しておいて、
残りを /usr/src として FFS にしてしまうことにしました。
そうすれば、現在 /var/users
の下にある
sources を移動することが出来るのと、そんなに大事じゃないものは
/usr/src
の下に移してしまうことができて、
/var/users
を空けることができそうと思いません?
/ /dev/wd0a 160MB TNF standard distribution swap /dev/wd0b 200MB swap /usr/local /dev/wd0e 500MB /usr/X11R6 /dev/wd0f 300MB XFree86 /var/users /dev/wd0g 400MB user home directories /usr/src /dev/wd0h 356MB none none 100MB Hibernation and PS2 utilities 新しい disk 構成案
しかも、FAT 領域を FreeDOSか
DR-DOSなんかにしたら
100% M$ Free になって美しそうです。"free dos" というキーワードを
goo
で調べてみたところアホほど出てきたので見る気がしなくて、
Yahoo
で探し直すと出てきたのは 8件でした。これくらいなら見ようという気になります。
で、その中の
やっぱりDOSが好き!
というところを見に行きました。そこから link されている
Caldera
DR-DOSによるDOS/V環境の構築という所で日本語表示の仕方まで
書いてあったので、
ThinkPad
560Eを設定するPS2
コマンドが日本語を要求することもあり
こちらにすることにしました。
とりあえずは、今の FFS partition 全体をバックアップしました。ネットワークに
つながっているので、
てらのハードディスクに向けて
dump(8)
しました。ちょうど tera:/usr/current が 702860kB ほど
空いているのでそこなら入りそうです。
# dump 0 -B 562288 -uf - /dev/rwd0a | gzip | rsh tera -l operator cat ">" /usr/current/tmp/root.gz # dump 0 -B 562288 -uf - /dev/rwd0e | gzip | rsh tera -l operator cat ">" /usr/current/tmp/local.gz # dump 0 -B 562288 -uf - /dev/rwd0f | gzip | rsh tera -l operator cat ">" /usr/current/tmp/X11R6.gz # dump 0 -B 562288 -uf - /dev/rwd0g | gzip | rsh tera -l operator cat ">" /usr/current/tmp/users.gz
本当ならば、-B
の後の数字は毎回変えるべきなんでしょうが、
とりあえず、取れたのでいいことにしましょう。1時間弱で取れました。
さて、バックアップも取れたので Caldera DR-DOSによるDOS/V環境の構築を参考に DR-DOSをインストールしました。フロッピー3枚を 用意して、指示に従っていれば入ってしまいました。
さて、次はいよいよ、NetBSDの再インストールです。
インストールフロッピーを作り、ブートしました。はじめてsysinst
を
使いましたが、昔から考えるとものすごーく楽になってるんですね。
今回は partition をきりなおして、restore(8)
するだけなので、
custom install を選び、partition を切り直して終りました。restore(8)
するためにはファイルシステムはからっぽじゃないといけないのでもう一度
newfs(8)
をかけます。
# newfs /dev/rwd0a # newfs /dev/rwd0e # newfs /dev/rwd0f # newfs /dev/rwd0g # newfs /dev/rwd0h
次にネットワークインターフェースを起こします。
# ifconfig ep1 inet 10.1.129.73 netmask 0xffffff00 media 10BaseT/UTP
そうしておいててらをマウントします。
# mount 10.1.129.72:/usr/current /mnt2
ところが、さぁrestore(8)
と思ったら
# cd /mnt; gunzip -dc /mnt2/tmp/root.gz | restore -rf - uid 0 on /: file system full ....
なんで? どうやら、一時ファイルを /tmp に作るみたいです。
早速 restore
の man を見直しました。環境変数 TMPDIR を
見るとあるので設定してやり直しです。ついでに sh
で
history や line edit も出来るようにしておきました。
# export TMPDIR=/mnt2/tmp # set -o emacs # cd /mnt; gunzip -dc /mnt2/tmp/root.gz | restore -rf - # mount /dev/wd0e /mnt/usr/local # cd /mnt/usr/local; gunzip -dc /mnt2/tmp/local.gz | restore -rf - # mount /dev/wd0f /mnt/usr/X11R6 # cd /mnt/usr/X11R6; gunzip -dc /mnt2/tmp/X11R6.gz | restore -rf - # mount /dev/wd0g /mnt/var/users # cd /mnt/var/usres; gunzip -dc /mnt2/tmp/users.gz | restore -rf - # mount /dev/wd0h /mnt/usr/src
これで、いっちょ上がりです。disk 構成はこんなんになりました。
[tamp]~% df -kt ffs Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0a 179695 132461 38249 77% / /dev/wd0e 496175 373029 98337 79% /usr/local /dev/wd0f 298911 203396 80569 71% /usr/X11R6 /dev/wd0g 398559 317180 61451 83% /var/users /dev/wd0h 322327 14261 291949 4% /usr/src [tamp]~% pstat -sk Device 1K-blocks Used Avail Capacity Priority /dev/wd0b 205632 4 205628 0% 0
/var/users が減ったのはお掃除したからです。さぁ終ったと思ったら、
ssh(1)
の X forwarding が効きません。dump が壊れてたんか?
と焦りましたが、xauth(1)
の場所が変わったせいでした。
設定ファイルを見直すのがめんどくさかったので recompile して
逃げることにしてようやく終ったのでした。