
Ubuntu日本語フォーラム

ログインしていません。
■やりたい事
ゼロスピンドルでUbuntuを運用したいと思ってます。
(古いノートパソコンでHDDの信頼性が低いので)
そこで、2GBのPCカード(PCカード経由のSDカード)にUbuntuを入れて動作させようとしています。
■問題
PCカードから起動すると、grubが起動し暫くしてからBusyboxが起動されブートシーケンスが終了してしまいます。
指定したrootファイルシステムが無いので停止したようです。
以下は/boot/grub/grub.cfgの抜粋でが、
menuentry "test" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd1,1)
search --no-floppy --fs-uuid --set 70c24895-d9ae-4453-a0f1-5844603fc34d
linux /boot/vmlinuz-2.6.31-16-generic root=UUID=70c24895-d9ae-4453-a0f1-5844603fc34d ro
initrd /boot/initrd.img-2.6.31-16-generic
Busyboxのシェルで調べると、/dev/disk/by-uuid/に「70c24895-d9ae-4453-a0f1-5844603fc34d」は存在していませんでした。
ところが、HDDからブートすると「70c24895-d9ae-4453-a0f1-5844603fc34d」は存在しマウントも可能です。
どうも、ブート時にはPCカードのパーテーションがファイルシステムとしてマウントできる状態になってない為に起動失敗するようです。
■ハードウェア環境
本体:libretto L5
RAM:256M
HDD:20GB
PCカード:2GB(PCカード経由のSDカード)
■やった事
PXEでUbuntuをHDDとPCカードにインストールしました。
インストールされたバージョンは
$ cat /proc/version
Linux version 2.6.31-16-generic (buildd@rothera) (gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) ) #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009
となってます。
情報よろしくお願いします。
オフライン
Linuxの起動が大まかには、
1.MBRとかGRUBとかが、vmliuxとinitrdを読み込んで起動。
2.vmlinuxとinitrdが、ルートとなるデバイスをマウント。
3.本物(?)のルートの下で起動。
のうち、「3」の環境には、ほぼ全てのドライバが存在する(=HDDから起動すれば読める)のに対し、「2」の段階(=busyboxの中)では必要最小限と思われるドライバしか存在しません。そのため、2の環境(vmlinux=カーネルに静的リンクしたものと、initrd=モジュールとしてinitramfsに展開するもの)には、ルートとなるデバイスを読めるように設定する必要があります。
具体的な方法がわからない場合は・・・いましばらくお待ちください。
ざっと調べた感じでは、以下のファイルに、そのPCカードを使用するのに必要なモジュール名(※)を追記。
# おそらく、全ての操作にroot権限(sudo)が必要です。
/etc/initramfs-tools/module
initrdのイメージファイルを再構築。
update-initramfs -u
grubも一応再設定(initrdのファイル名を指定しているため)
update-grub
※この分部は、HDDから起動した環境から、使用されているモジュールを調べることになると思います。
おそらく、識者から、より正確な手順が提示されてくると思います。
オフライン
weyk さん投稿ありがとう御座います。
weykさんの情報を元に、/etc/initramfs-tools/moduleに次のPCカードに関連してそなモジュールを追加してみました。
pata_pcmcia
pcmcia
pcmcia_core
yenta_socket
rsync_nonstatic
(追加の候補はHDDでブートした時のlsmodの表示を参考にしました)
その後、update-initramfsと、update-grubしHDDに出来たinitdイメージをPCカードにコピーしてブートしてみました。
結局起動に失敗してしまったのですが、Busyboxでファイルを確認すると
/lib/modules/2.6.31-16-generic/kernel/drivers/pcmciaの中に、追加したモジュールの存在を確認したんですが、
「insmod pcmcia_core」としても、No such fileでロード出来ないようです。
/etc/modprobe.dの何かが関係してそうな気配なので、さらにあたってみます。
オフライン