Got 64bit Linux box.

だいぶ前の話になるけど、自宅のメイン・マシンを x86_64 にした。
メイン・マシンで Dual ブートしていた Windows XP で、久々に 新作ゲームをやっていたら突然ブルースクリーンになり、再び Windows XP を起動するもすぐにリブートしてしまうようになった。Windows XP の復旧は諦めて、 Linux で G28 のパッケージでもビルドしようとしたが、こちらでも問題発生。何かコマンドを実行する度に Kernel が繰り返しクラッシュするようになってしまった:

Sep 24 07:19:23 XXX kernel: [  819.992105] Recursive core dump detected, aborting
Sep 24 07:19:24 XXX kernel: [  820.222617] Recursive core dump detected, aborting
Sep 24 07:19:25 XXX kernel: [  821.426607] Recursive core dump detected, aborting
Sep 24 07:19:26 XXX kernel: [  822.356806] Recursive core dump detected, aborting
Sep 24 07:19:26 XXX kernel: [  822.574389] Recursive core dump detected, aborting
Sep 24 07:19:26 XXX kernel: [  822.776187] Recursive core dump detected, aborting
Sep 24 07:19:58 XXX kernel: [  854.869206] __ratelimit: 25 callbacks suppressed
Sep 24 07:19:58 XXX kernel: [  854.869211] evolution-data-[3575]: segfault at f86014 ip 007473e2 sp bf818b84 error 6 in ld-2.10.1.so[73d000+
1d000]
Sep 24 07:20:00 XXX kernel: [  856.861927] evolution[3569]: segfault at 5 ip 00000005 sp bfadc914 error 4 in libhal.so.1.0.0[110000+11000]
Sep 24 07:20:09 XXX kernel: [  865.493222] gvfsd-metadata[3353]: segfault at 7cfbe5d4 ip 08051a44 sp bfcd2370 error 4 in gvfsd-metadata[8048
000+d000]
Sep 24 07:20:17 XXX kernel: [  873.403943] evolution[3637]: segfault at abc014 ip 001cf3e2 sp bff566b4 error 6 in ld-2.10.1.so[1c5000+1d000]
Sep 24 07:20:30 XXX ntpd[2682]: synchronized to 91.189.94.4, stratum 2
Sep 24 07:21:44 XXX kernel: [  960.580036] INFO: task nautilus:3518 blocked for more than 120 seconds.
Sep 24 07:21:44 XXX kernel: [  960.580039] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Sep 24 07:21:44 XXX kernel: [  960.580042] nautilus      D c080c380     0  3518   3000 0x00000000
Sep 24 07:21:44 XXX kernel: [  960.580047]  f4dfde58 00000086 f4e02000 c080c380 f6bcc168 c080c380 a9554f22 000000bf
Sep 24 07:21:44 XXX kernel: [  960.580053]  c080c380 c080c380 f6bcc168 c080c380 00000003 000000bf c080c380 f6bb1dc0
Sep 24 07:21:44 XXX kernel: [  960.580059]  f6bcbed0 f6bb1dc0 f6bcbed0 00000002 f4dfde78 c01431e5 f6bb1df8 f6bcbed0
Sep 24 07:21:44 XXX kernel: [  960.580065] Call Trace:
Sep 24 07:21:44 XXX kernel: [  960.580073]  [<c01431e5>] exit_mm+0x75/0x120
Sep 24 07:21:44 XXX kernel: [  960.580077]  [<c014347c>] do_exit+0xfc/0x300
Sep 24 07:21:44 XXX kernel: [  960.580081]  [<c014de9d>] ? dequeue_signal+0x2d/0x170
Sep 24 07:21:44 XXX kernel: [  960.580085]  [<c01436ba>] do_group_exit+0x3a/0xb0
Sep 24 07:21:44 XXX kernel: [  960.580088]  [<c014f6ff>] get_signal_to_deliver+0x18f/0x300
Sep 24 07:21:44 XXX kernel: [  960.580091]  [<c010304b>] do_signal+0x6b/0x160
Sep 24 07:21:44 XXX kernel: [  960.580095]  [<c01ea583>] ? do_pipe_flags+0x3/0x100
Sep 24 07:21:44 XXX kernel: [  960.580100]  [<c01697fe>] ? do_futex+0xde/0x1e0
Sep 24 07:21:44 XXX kernel: [  960.580104]  [<c01de233>] ? mem_cgroup_get_local_stat+0x3/0x1f0
Sep 24 07:21:44 XXX kernel: [  960.580107]  [<c0169992>] ? sys_futex+0x92/0x110
Sep 24 07:21:44 XXX kernel: [  960.580111]  [<c01de233>] ? mem_cgroup_get_local_stat+0x3/0x1f0
Sep 24 07:21:44 XXX kernel: [  960.580114]  [<c0103178>] do_notify_resume+0x38/0x40
Sep 24 07:21:44 XXX kernel: [  960.580117]  [<c0103428>] work_notifysig+0x13/0x1b
Sep 24 07:21:50 XXX kernel: [  966.841541] evolution[3667]: segfault at 72b014 ip 009783e2 sp bf8cf244 error 6 in ld-2.10.1.so[96e000+1d000

最悪なことに apt のデータベース (/var/lib/dpkg/info/ 以下) が破壊され update する度におかしなデータが埋め込まれてしまってどうすることもできず:

Log started: 2009-09-24  01:23:18
dpkg: parse error, in file '/var/lib/dpkg/status' near line 168 package 'libexempi3':
`zlib1g' の `Depends' フィールド: バージョンが `)' を含んでいます
Log ended: 2009-09-24  01:23:18

この時点で HDD ディスクが逝ってしまったか思い、連休中ということもあり、近くのPCショップで 1TB の HDD を購入し、 当時α版だった Ubuntu Karmic の 64ビット版をインストールすることに。巷でも x86_64 版に関する情報が広まっていたし、Flash が動かないなんかもあまり聞かなくなったので良い機会かなぁと。HDD を購入した時にメモリも安かったので合わせて購入し増量したことも理由の1つか。一番の理由は、Core2 Extreme CPU X9650 を十分に活用していなかったことだけど。
Linux をインストールして前のディスクから可能な限り環境とデータを復旧させ、Windows XP も AHCI で利用できるようドライバを組み込んだインストールディスクを作成して同様に復旧した。
あとで思ったけど、ディスクそのものには大きな障害が見つからなかったため、今回の障害はおそらくメモリに問題があったのではないかと思う。
64bit にしてよかったのは、とにかくビルドが速くなったと言うこと。あと文字列の処理が大半な deb パッケージの作成処理や apt 操作もかなり快適になった。同じマシンで 32bit の環境を経験しているからか高速化というだけでもかなりありがたい。