玄箱T4再登板の巻

| コメント(0)

3年ほど前に購入した玄箱T4.職場で使おうとHDDを換装・・・しようとしたのだが,問題発生.最近のメインストリーム容量である3TB×4なのだが,こちらからブートしない.


BUFFALO>> boot
Loading sata 3:1:uImage-2.6.39.buffalo
GPT: last_usable_lba incorrect: 15D50A38E > 5D50A3B0
get_partition_info_efi: *** ERROR: Invalid GPT ***
is_pte_valid: Invalid Argument(s)
get_partition_info_efi: *** ERROR: Invalid partition number 1 ***
** Invalid partition 1 **
ext2load - load binary file from a Ext2 filesystem

こんな感じ.要するにブートローダとの相性がわるいようだ.また,容量が大きくなった関係上,MBRではなくGPTを使わざるを得なくなったことも関係しているようだ.

で,ブートローダのソースを持ってきてごにょごにょしたところ,セクタサイズを512バイト固定長として扱っている部分を発見.

使用しているのは(当然のことながら)4KセクタHDD.このせいでセクタ数が512セクタ比で1/8となり,最終LBA数が合わなくなった模様.

本来ならば,HDDのセクタサイズを検出して正しいセクタサイズをセットするようhackするのが正解だが,簡単にセクタサイズを検出する方法が見つからなかったため,思い切ってエラー検出後のリターンをコメントアウトすることで対処.どうせカーネルをロードさえしてくれたら用済みなのだし.
# 昔々,似たような事をやった経験が・・・.

現在は何事もなかったように稼働しており,Software-RAIDの再構築中.あとは現在のファイルを転送して,本格運用か.

それにしても,まあ,これだけ非互換となる変更を次々導入するHDD屋さんって,なんとも罪作り.

ブートローダの書き換えに関しては,こちらを参考にした.

コメントする