Comfortable Life with NetBSD

NetBSD で Mobile! (微軟との決別編)

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    98%    /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 領域を FreeDOSDR-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 して 逃げることにしてようやく終ったのでした。


Return to Comfortable Life With NetBSD
Driven By NetBSD Accesses to this page:
This page's author
tacha@tack.fukui-med.ac.jp
$Tera: byebyeMS.html,v 1.1 2001/08/23 08:46:28 tacha Exp $