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屋さんって,なんとも罪作り.
ブートローダの書き換えに関しては,こちらを参考にした.
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屋さんって,なんとも罪作り.
ブートローダの書き換えに関しては,こちらを参考にした.
コメントする