スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

玄箱Pro 2TB HDDへのDebian Squeezeのインストール

今時分はちょうど2TBのハードディスクが一番バイト単価的にお得なので、これに新規にDebian Squeezeをインストールすることにした。以前のシステムはOABIシステムから順次入れ替えてEABI化していたものだったが、今回はクリーンインストールでさっぱりと最初からEABIである。

基本的に、masezou hackedに沿ってインストールするが、2TBのディスクだと、玄箱Pro + Debian lenny + 2TB HDD 起動までにある通り、インストールは問題なく行えるが起動時にカーネルの読み込みに失敗する。つまり玄箱ProのUbootが「2TB超でGPT」だとカーネルを読み込めないらしい。

対処法としては上記にもいくつか紹介されているが、もうディスクを外してWindowsマシンにつないで、とかは面倒だったので、玄箱Pro標準のLinuxをフラッシュメモリから起動して、あらかじめこちらのfdiskでディスクパーティションを作成しておいた。sda1だけは、インストーラを置かなければならないので、ext3でフォーマットも行う。インストール後は/bootとして使うことにして、容量も余裕を持って2GBほど割り当てておいた。

こちらのfdiskは期待通り、GPTではなくMBR形式のパーティションテーブルを作成してくれた。ただし、sda1-sda3をプライマリパーティション、sda4を拡張パーティションとして1.4TBほど取り、その中に論理パーティションを二つほど作りたかったのだが、拡張パーティションを作るところまでは問題なかったが、その中に論理パーティションを作ろうとfdiskの「n」サブコマンドを使用すると、「No free space」でできなかったので、この拡張パーティションの部分はインストール中に作成することにした。つまり、今回は最終的なパーティションテーブルは

root@debian:~# fdisk -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000a9e9e

Device Boot Start End Blocks Id System
/dev/sda1 * 1 250 2008093+ 83 Linux
/dev/sda2 251 37599 300005842+ 83 Linux
/dev/sda3 37600 62499 200009250 83 Linux
/dev/sda4 62500 243202 1451490305 5 Extended
/dev/sda5 62500 74657 97654784 83 Linux
/dev/sda6 74657 74719 498688 82 Linux swap / Solaris
/dev/sda7 74719 243202 1353334784 83 Linux

という形になったのだが、このうちsda1からsda3までを玄箱Proの標準Linuxのfdiskで作成し、ブートフラグもsda1につけておく。あとはインストール時に作成、ということである。これで問題なくブートできる。

もう一点、インストーラのconfig-debianスクリプトであるが、カーネルのファイル名がuImage.buffalo、initrdがinitrd.buffaloであることを仮定している。また、インストーラをおくパーティションがext2であることを仮定している。私はフラッシュメモリの設定を書き換えてカーネルファイル名が変わっていたので、最初インストーラが起動しなかった。同じようにカーネルファイル名を変更してしまっている人は、必要に応じ、

$SETENV bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel)a'
echo "done."

の行の前あたりに

$SETENV kernel uImage.buffalo
$SETENV initrd initrd.buffalo

も追加しておけばよかろう。

また、上記のような事情で、sda1(/bootパーティション)はあらかじめext3で作成、フォーマットしたものをインストール後もそのまま使用するようにしたかったので、スクリプト冒頭近くの

path=$(mount | grep ext2 | sed -n '/sda1/ {s/\/dev\/sda1 on \(.*\) type.*/\1/; p
}')
if [ -z "$path" ]; then
echo "You have to create an ext2 filesystem on /dev/sda1"
exit 1
fi

のext2をext3に変更してからこのスクリプトを実行した。

なお、これでインストールは問題なく実行できるが、インストーラが作成したext3やext4のパーティションは、玄箱Proの標準Linuxでサポートされていない拡張機能を使用しているため、標準Linux側からマウントできないようである。つまりこのままだと何か問題が起きたときに標準Linux側から起動してマウント、修正という操作ができないので、用心のために一つext2の代替ルートパーティションと代替カーネルを用意しておいて、最低そちらはUbootから起動できるようにしておくという手はあるかもしれない。

Delicious Save this on Delicious
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

GM3D

Author:GM3D
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。