ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2007.12.07
XML
カテゴリ: ソフト開発日誌
Vine Linux で困ったこと(多分 Linux 全般の問題だと思う)の一つは、ブートドライブの SATA/IDE インターフェースカードを変更すると起動しなくなることだ。例えばオンボードの SATA インターフェースから PCI の SATA インターフェースに乗り換えると起動しなくなる。

しかし、/boot/initrd.img にブートドライブのドライバを組み込めば起動できる場合があることが分かった。カーネルを再構築してスタティックリンクせずに済む。 前の日記と同様な手順 だ。

/boot/initrd.img のバックアップを作成する所から手順を始める。

ノート: `uname -r` の部分は直接カーネルバージョンを記述しても良い。

バックアップ作成

# cd /boot
# cp -p initrd-`uname -r`.img initrd-`uname -r`.img.`date +%s`

initrd-`uname -r`.img を ~/tmp/initrd_work に展開する。


# mkdir -p tmp/initrd_work
# cd tmp/initrd_work
# zcat /boot/initrd-`uname -r`.img | cpio -i -c

~/tmp/initrd_work/lib ディレクトリに必要な .ko モジュールをコピーする。今回の例は、Silicon Image SiI3112 チップのドライバを組み込む。SCSI ドライバと SiI3112 ドライバをコピーする。

ノート: AHCI インターフェースは SCSI として扱われる。必要なモジュールが分からない場合は、KNOPPIX 等で起動して /sbin/lsmod にて確認する。

# cd /lib/modules/`uname -r`/kernel/drivers/scsi/
# cp libata.ko scsi_mod.ko sd_mod.ko ~/tmp/initrd_work/lib
# cp sata_sil.ko ~/tmp/initrd_work/lib

~/tmp/initrd_work/lib 内の .ko の属性を調整する

# cd ~/tmp/initrd_work/lib
# chmod 644 *.ko



echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/sd_mod.ko
echo "Loading libata.ko module"

echo "Loading sata_sil.ko module"
insmod /lib/sata_sil.ko

編集で出来たバックアップを消す。

# cd ~/tmp/initrd_work/
# rm init~

initrd.img を組み立てる。

# cd ~/tmp/initrd_work/
# find . | cpio --quiet -c -o | gzip -c --best > /boot/initrd-`uname -r`.img

これで、起動ドライブのインターフェースカードを変更しても起動できる。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2007.12.07 23:23:23
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: