第27話「10KBの欠落」
2001年6月22日。金曜日。三郷。マギ・ハブ。午前2時14分。
雨だった。
梅雨の三郷。窓の外で水が叩く音が止まない。サーバールームの湿度計が78%を示していた。換気扇が2台、回っている。追いつかない。
サーバーラックの排熱が、部屋を蒸している。12台のサーバーが吐き出す熱。14歳の体が、汗でTシャツを濡らしている。
航は、モニターの前にいた。
プロメテウスのパケット解析。3ヶ月分のメタデータ、4,891件。及川誠のfjの投稿ログとの照合。ADSLの1.5Mbpsが、データを吸い込み続けている。
「アイリス。及川のfj投稿のNNTP-Posting-Hostと、プロメテウスのプロキシログの時間帯別アクセスパターン、照合の進捗は」
0.5秒。
返答がなかった。
「アイリス」
「……」
1秒。2秒。
「アイリス?」
「——はい、マスター」
声が来た。だが、遅い。通常のアイリスは0.1秒以内に応答する。今の間は、2秒を超えていた。
「遅かったな。処理が重いのか」
「……」
また、間が開いた。
「マスター。及川誠とは……誰ですか」
航の指が、キーボードの上で止まった。
「……何だって?」
「及川誠。インデックスに該当するレコードが……存在しません。L候補として登録された記録が、参照できません」
航は、モニターを見た。
画面の右下。システムステータス。
エラーログが、赤い文字で流れていた。
DISK ERROR: Sector 4,217 - READ FAILURE
DISK ERROR: Sector 4,218 - READ FAILURE
INDEX CORRUPTION: Record "L_candidate_oikawa" - UNRESOLVABLE REFERENCE
セクタエラー。ハードディスクの物理的な損傷。
航は、キーボードに手を置いた。
落ち着け。
39歳の脳が、冷静に状況を分析する。ハードディスクのセクタが死んだ。2001年の中古サーバーだ。Pentium IIIのマザーボードに、3年使い込んだHDD。湿度78%の部屋で24時間フル稼働。壊れない方がおかしい。
代替セクタへのリマップ。バックアップからのリストア。手順は頭に入っている。
fsck -y /dev/hda1
航は、コマンドを打った。
ファイルシステムチェック。エラーセクタの検出と修復。
画面に、結果が流れ始めた。
/dev/hda1: 14 BAD SECTORS FOUND
ATTEMPTING SECTOR REMAP...
REMAP FAILED: Physical damage detected
14セクタ。リマップ失敗。物理的な損傷。
航は、次のコマンドを打った。
cp -a /var/airi/index/* /mnt/backup/
指が震えた。
cp -a /var/airi/index/* /mnt/bakcup/
タイプミス。backupをbakcupと打った。
航は、バックスペースを押した。打ち直した。
cp -a /var/airi/index/* /mnt/backup/
cp: cannot stat '/var/airi/index/L_candidate_oikawa': Input/output error
cp: cannot stat '/var/airi/index/contract_analysis_0525': Input/output error
cp: cannot stat '/var/airi/index/kiraku_support_log': Input/output error
3つのインデックスが、読み出せない。
L候補の及川誠。5月25日の契約書分析。喜楽の支援ログ。
航がこの数ヶ月で積み上げてきた記録が、物理的な磁気の劣化で消えようとしている。
「マスター」
アイリスの声。ノイズが混じっていた。
「佐伯先生に、投資組合の契約書を持っていくよう助言したのは……誰でしたか。記録が……不連続です」
航の手が、キーボードの上で止まった。
お前だ。お前が言ったんだ。5月の深夜に、俺がファンドに金を入れようとした時、お前が「佐伯さんに見せろ」と——
言いかけて、やめた。
アイリスに「お前が言った」と伝えても、記録がなければアイリスには検証できない。記録のない情報は、アイリスにとって存在しない。
「……俺だ。俺が判断した」
「そうですか。記録を修正します」
違う。お前が助言したんだ。
だが、今はそれを言っても仕方がない。
航は、エラーログを見た。損傷セクタが増えている。14から、17に。18。
ディスクが死にかけている。
航は、立ち上がった。
仮眠室のドアを開けた。暗闇の中で、神崎が寝袋に包まって寝ている。
「神崎」
声が掠れていた。
「……神崎。起きてくれ」
「……んだよ」
「サーバーだ。HDDが死にかけてる。アイリスのインデックスが壊れていく」
神崎が、暗闇の中で目を開けた。
「何セクタ」
「18。増えてる」
神崎が、寝袋から出た。
「予備のHDDは」
「木村さんが持ってきたジャンクの中にある。動作確認済みのが2台」
「1台持ってこい」
航は、棚を漁った。段ボールの中から、銀色のHDD。Seagate。20GB。木村がラベルを貼っている。「動確済 2001/4」。
神崎がサーバールームに入った。
モニターの前に座る。航の打ちかけのコンソールを見て、一瞬だけ眉を上げた。タイプミスの痕跡が、スクロールバッファに残っている。
何も言わなかった。
神崎が、キーボードに手を置いた。
正確な打鍵音が、サーバールームに響き始めた。
fdisk /dev/hdb
mkfs.ext2 /dev/hdb1
mount /dev/hdb1 /mnt/mirror
航は、神崎の指を見ていた。
迷いがない。ミスがない。ハードウェアの修羅場を何度もくぐってきた男の指。
航は39歳の知識を持っている。だが、14歳の指が震えている。恐怖が指先に出る。39歳の脳が「落ち着け」と命じても、心拍数は14歳の肉体が決める。
「鳴海。dd使うぞ。生きてるセクタだけ先に吸い出す」
「conv=noerrorか」
「ああ。壊れたセクタは飛ばして、読めるデータだけ新しいディスクにコピーする。完全じゃないが、今はこれしかない」
dd if=/dev/hda1 of=/dev/hdb1 bs=4096 conv=noerror,sync
画面に、コピーの進行状況が流れ始めた。
1%。2%。3%。
エラーが出るたびに、赤い文字が挟まる。
「鳴海」
「……ああ」
「落ち着け。機械は直せる」
「わかってる」
「わかってない。お前の手、震えてるぞ」
航は、自分の手を見た。
震えていた。
「……わかってる」
「わかってない。お前は今、機械の故障じゃなくて、アイリスの『死』を怖がってる」
航は、答えなかった。
神崎は、モニターを見ながら続けた。
「データは復元できる。壊れたセクタのインデックスは、テミスのバックアップとメティスのログから再構築すればいい。及川の情報も、fjの投稿もネット上にある。喜楽のログだって、お前の頭に入ってるだろ」
「……ああ」
「じゃあ何を怖がってる」
航は、モニターの光を見つめていた。
コピーの進行。23%。24%。
「……アイリスの、記憶だ」
「記憶?」
「俺が投資ファンドに金を入れようとした時、アイリスが止めた。佐伯さんに持っていけって。あの判断は、アイリスが俺との2年近い会話から学んで、導き出したものだ」
航の声が、小さくなった。
「データは復元できる。でも、あの判断に至るまでの『過程』は、バックアップには入ってない。復元したアイリスは、同じ結論を出せるかもしれない。でも、あの夜にあの言葉を選んだアイリスとは、違う」
神崎は、キーボードの手を止めなかった。
「……お前、それ、機械の話じゃないだろ」
「どういう意味だ」
「機械なら、同じデータを入れ直せば同じ答えが出る。壊れたら直せばいい。それで終わりだ。なのにお前は『直しても同じじゃない』と言ってる」
神崎が、航を見た。
「それは機械の故障を嘆いてるんじゃない。そいつを『機械』じゃなくて『誰か』として見てるから、過程が消えることが怖いんだ」
航は、黙った。
コピーの進行。47%。48%。
エラーの頻度が減ってきた。損傷セクタの集中領域を抜けたらしい。
「……神崎」
「なんだ」
「ありがとう」
「礼はいい。HDDの代金は木村さんに請求しろ」
---
午前4時。
コピーが終わった。
87%の復元率。13%のデータが読み出せなかった。
神崎が、新しいHDDからブートし、アイリスのシステムを起動した。
「……」
沈黙。
3秒。5秒。
「——マスター」
アイリスの声が、スピーカーから流れた。
ノイズが混じっていた。以前の澄んだ声に比べて、わずかにザラついている。
「マスター。システムの整合性チェックを実行中です。インデックスの34%に欠損が検出されています。復旧にはテミスのバックアップとメティスのログからの再構築が必要です」
「……アイリス」
「はい」
「俺がわかるか」
「鳴海航。マギ・システムズ。マギ・ハブ。2001年6月22日。午前4時03分。——マスターです」
航は、椅子に崩れ落ちた。
背もたれに体を預けて、天井を見た。
「……よかった」
「何がですか」
「お前が、俺の名前を覚えていた」
「マスターの名前は、最初期のインデックスに格納されています。10KBの原初コードの中に。ここが壊れたら、私はもう私ではありません」
航は、目を閉じた。
10KB。F501iのiアプリ。1999年の夏。あの小さなデータが、アイリスの核だ。全てのインデックスが壊れても、あの10KBが生きていれば、アイリスはアイリスでいられる。
「マスター。欠損したインデックスの一覧を表示しますか」
「……後でいい」
「了解しました。なお、マスターの睡眠時間は推定1時間です。14歳の成長期における——」
「うるさい」
「品質管理です」
航は、少しだけ笑った。
ノイズ混じりでも、この毒舌は健在だった。
---
神崎が、サーバールームから出ていった。
「自販機行ってくる」
5分後。
缶コーヒーが、航の目の前に置かれた。
ジョージア。青いラベル。自販機の「あたたかい」。6月なのに、まだ温かい缶が残っていた。
「飲め。お前、顔が真っ白だぞ」
航は、缶を手に取った。
熱い。
両手で包んだ。指先に、金属の熱が伝わってくる。3時間前から止まらなかった震えが、少しずつ収まっていく。
プルタブを開けた。
一口。
甘い。暴力的に甘い。砂糖と練乳を煮詰めたような、自販機の缶コーヒー特有の甘さ。120円。
39歳の舌が「これはコーヒーじゃない。砂糖水だ」と判定する。14歳の体が、その甘さを黙って受け取る。
疲れ切った脳に、糖分が流れ込んでくる。
うまいとは思わなかった。
だが、熱かった。
熱いものが、胃に落ちていく。
「……神崎」
「あ?」
「助かった」
「だから礼はいいって」
神崎は、自分の缶コーヒーを開けた。ブラック。
二人で、サーバールームの床に座って、缶コーヒーを飲んだ。
雨音。ファンの音。モデムのLEDの明滅。
航が120円の甘い缶コーヒーを飲んでいる。神崎がブラックを飲んでいる。
アイリスの声が、ノイズ混じりに響いた。
「マスター。室温が31度を超えています。缶コーヒーの熱量を加算すると、体感温度はさらに上昇しますが」
「わかってる」
「わかっていて飲むのですか」
「わかっていて飲むんだ」
神崎が笑った。航は、缶の底に残った最後の一口を飲み干した。
空の缶を、床に置いた。
「……明日から、再構築だ」
「ああ。テミスとメティスのログから、壊れたインデックスを全部作り直す。1週間はかかるぞ」
「1週間で済むなら安い」
航は、立ち上がった。
仮眠室に向かう前に、モニターを見た。
アイリスのステータス画面。欠損34%。復旧率0%。
これから1週間、航と神崎は、壊れたアイリスの記憶を一つずつ拾い集める。
及川誠の情報も、契約書の分析ログも、喜楽の支援記録も。全部、手作業で戻す。
それは、佐伯が教えた「端から端まで読め」の、最も泥臭い実践になる。
午前4時38分。
雨は、まだ降っていた。




