« Xandros をsdbで起動成功! | トップページ | EeePC 900Aのデュアルブートはひと段落 »

2009年5月20日 (水)

Xandros をsdbで起動する手順

以前XEPC版1.6.1ではsdb起動に成功していましたが、EeePC 900A付属の標準Xandros1.0や900A用XEPC1.6.1.17-A7では同じ手順ではsdb1のマウントに失敗してしまいます。

ここではその対処法含めた手順を紹介します。

私が試した環境は下記の通りです。
EeePC 900A(リファビッシュモデル)
 Pri Master::OCZeSATATHR32G(WindowsXp)
 Sec Master:ZIF接続Transcend300倍速CF8GB(標準Xandros1.0)

まずCFだけの状態でXandrosが動作できる状態にします。

File Manager>Tools>Open Console Window  でターミナルを開きます。
sudo su -  で管理者権限になります。

ブートイメージの編集
mkdir -p /temp/src  で作業フォルダを作成
cd /temp/src  で作業フォルダに移動
gunzip -c /boot/initramfs-eeepc.img | cpio -i   ブートイメージを展開
nano init  ブートイメージの設定ファイルを編集

まずsdb1とsdb2のデバイスノードを自動作成出来るようにします。

4行目echo "0 0 0 0">/proc/sys/kernel/printkの次の行に以下を挿入。
cd /dev
mknod sdb1 b 8 17
mknod sdb2 b 8 18
cd

さらにsdbで起動した時に帳尻が合うようsda⇒sdbに変更します。
if ! mount -t ext3 -o rw,noatime /dev/
sdb2 /mnt-user; then  赤字部はもとはsda2でした

編集したらCtrl+OでEnter、Ctrl+xで上書き保存。

find | cpio -H newc -o | gzip -9 > ../initramfs-eeepc-sdb.img  Slave起動用イメージを別名で圧縮

ブートローダーmenu.lstの編集
cp /boot/grub/menu.lst /temp/  で作業フォルダにmenu.lstをコピー
nano /temp/menu.lst  でmenu.lstを編集

ここも目的はsda⇒sdbへの帳尻合わせです。
titleで始まる起動部分の一つ目(赤字の部分)を追加しました。
これでデフォルトはtitle IDE Slaveとなりスレーブ(sdb)で起動しようとします。
マスターで起動したいときはtitle IDE Masterを選べば良いわけです
またtitle Perform Disk Scan以降は全て頭に#を付けてコメントアウトとしました。

title IDE Slave
        root (0x80,0)
        kernel /boot/vmlinuz-2.6.21.4-eeepc quiet rw vga=785 irqpoll root=/dev/sdb1
        initrd /boot/initramfs-eeepc-sdb.img

#title Normal Boot
title IDE Master
        root (0x80,0)
        kernel /boot/vmlinuz-2.6.21.4-eeepc quiet rw vga=785 irqpoll root=/dev/sda1
        initrd /boot/initramfs-eeepc.img

#title Perform Disk Scan
#以下全部頭に#をつけます。

編集したらCtrl+OでEnter、Ctrl+xで上書き保存。
exitでコンソールを閉じて一旦電源をオフします。

ブートイメージとブートローダーのコピー
EeePCの電源をONします。
BIOS起動画面が出たらF9キー連打でGRUBメニューが表示されます。

複数行出るので1行目のNormal Bootを選んで eキー を押します。
3行表示されるので2行目の kernel オプションが記述されている行を選んで eキー を押します。
 root=/dev/sda1 と表示されるので
 root=/dev/sda1 XANDROSBOOTDEBUG=y と書き換えてEnter
b キーを押すと レスキューモードが起動しカーソルが点滅します。

mount /dev/sda1 /mnt-system  で/mnt-systemをマウント
mount /dev/sda2 /mnt-user    で/mnt-userをマウント
cp /mnt-user/temp/menu.lst /mnt-system/boot/grub/ 
cp /mnt-user/temp/initramfs-eeepc-sdb.img /mnt-system/boot/

で事前に編集したファイルを本来の置き場にコピーします。
rm -rf /temp  /tempはもう不要なので削除

Ctrl+Dで抜けて電源オフ。

マスタードライブの装着
電源、バッテリーを外して裏蓋を開け、SATAドライブを有効にしました。
SATAとPATAの関係なので自動的にCFはsdbドライブとなります。
裏蓋を閉じて電源を繋ぎます。

sdbからXandrosが起動
電源を入れてEscキーでCF起動を選べばXandrosが起動します。

メールでデバイスノードの記述を教えててくださった方、本当にありがとうございました。

|

« Xandros をsdbで起動成功! | トップページ | EeePC 900Aのデュアルブートはひと段落 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Xandros をsdbで起動する手順:

« Xandros をsdbで起動成功! | トップページ | EeePC 900Aのデュアルブートはひと段落 »