2008年04月05日

linux : 起動時に外付けHDDを認識させる

Fedora Core 6 のマシンを起動するときに、USBの外付けHDDをマウントする必要性が出てきた。

ディスクを起動時にマウントするには、/etc/fstab に
/dev/sda1 /mnt/usb ext3 defaults 0 0

と書けばいいのだが、これだけではだめ。
起動直後は、usb-storage というモジュールが読み込まれていないのである。だからシステムは /dev/sda1 を認識していない。
これを読み込むには、/etc/rc.d/rc.localなどに、
modprobe usb-storage
なんて書いておいてもいい。
だが、それだともう一度 mount -a などとしなければならない。

そこで、initrd ファイルを書き換えた。

まず、/boot/initrd ディレクトリ以下にinitrdイメージを展開。
# cd /boot
# mkdir initrd
# cd initrd
# zcat ../initrd-2.6.18-1.2798.fc6.img | cpio -i -c

展開されたファイルの中に init というファイルがある。
この中では必要なモジュールを次々と読み込んでいる箇所がある。
その最後に、
echo "Loading usb-storage.ko module"
insmod /lib/usb-storage.ko
と挿入。
もちろん ./lib ディレクトリには、usb-storage.koをコピーしておく。これは /lib/modules 以下から探してきた。

これをまた、initrdのイメージファイルにする。
# cd /boot/initrd
# find . | cpio --quiet -c -o | gzip -c > ../initrd-2.6.18.org.img

最後に、/boot/grub/grub.conf の、initrd コマンドに、ここで作成したファイル名を指定して再起動。



posted by sjoe at 19:03| Comment(0) | TrackBack(0) | Linux
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/13623075
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック