玄箱をVine-4.1にアップグレードする話
最近とんとご無沙汰だったが、
久しぶりに玄箱をいじって見たので、
それについて書くことにする。
事前の要件
とりあえず、カーネル以外はちゃんとVine3.1で動く
玄箱が必要である。
「rpm -Va」としても、rc.dやinit.d等起動スクリプトのディレクトリ構造に、
大きな違いがないことが望まれる。
ただし、ファイルが多少違うくらいは別に問題ない。
カーネルのアップグレード(u-boot使用)
まず、カーネルを2.6に上げてみる。
- 「http://www.genbako.com/」で公開されている
「uImage/kernelImage-2.6.xx-kuroXX-uImage.tgz」「modules-2.6.xx-kuroXX.tgz」
「u-boot_loader/u-boot-hx.flash.bin」を貰ってくる.
(xXは自分の環境に合わせること)
- kernelImageを「/boot」で展開する。
- modulesを「/lib/modules」で展開する。
- 祈る。この次行うflashの書き換えは、
失敗すると玄箱が本当にただの箱になり、
私のような一般人には復旧できなくなる、
真に危険な作業である。
作業は自身の完全な責任の元に行わねばならない。
- 「cat u-boot-xx.flash.bin > /dev/fl2」として、
ブートローダを書き込む。
- リブートする。立ち上がればOK。
立ち上がらなければ、どうしようもない。
他のパッケージはVine-3.1のままで、カーネルのみ2.6にしても動作する。
そのため、この時点でdump等を用いてファイルシステムを他に保存しておけば、
HDD内のシステムを壊しても、HDDのみをUSBで他のLinuxマシンに接続し、
restoreすることで、元の状態に戻すことができる。
Vine-4.1へアップグレード
/etc/apt/source.listを4.1用に書き換えて、
アップグレードしたのだが、
適当にやったのであまり順番を覚えていない。
aptでできない部分は、
rpmのコマンド使ってアップデートしていけば、
そのうちVine-4.1になると思う。
ただし注意点が二つある。
- 「glibc」をアップデートしたときは、
必ず「pam」も共にアップデートすること。
glibcだけ上げると、suでrootになれなくなる。
- 「dev」をアップデートした場合は、
「udev」「initscripts」「filesystem」「MAKEDEV」等もアップデートし、
必ず「/etc/inittab」の内容を更新すること。
/etc/rc.d/rc/rc.sysinitの中で、
/devの更新を行っているため、/etc/inittabの中に
「si::sysinit:/etc/rc.d/rc.sysinit」の記述が無いと、
/dev/zero等の必要なデバイスが作成されず、起動しなくなる。
その他
Vine-3.1で必要だったglibcの改造は、今回は不要のようだ。
Vine-4.1のglibcで問題なく動作している。
また特段アップグレードでなくても動作するようだ。
参考