cht電腦資訊Linux
adm Find login register

waiting for device /dev/sda1 to appear

eliu
1 waiting for device /dev/sda1 to appear
Promote 0 Bookmark 02011-01-08quote  

自己compile kernel,有時候開機會發生 'waiting for device /dev/sda1 to appear' 的訊息。

這時候用原來的 kernel boot 就可以,更神奇的是,接下來換自己的 compile 的 kernel 就可以開機。

原來以為是自己 compile 的 kernel 有問題,少了什麼 module,已經 compile 很多次了,還是沒解決。

今天在想,會不會是 mkinitrd 做出來的 initrd image 沒有 load 到什麼 kernel module。

man mkinitrd 說是看 /etc/modprobe.conf,裏面的 scsi_hostadapter 部分會 load 進來

/etc/modprobe.conf
install scsi_hostadapter /sbin/modprobe pata_atiixp; /sbin/modprobe ahci; /sbin/modprobe ata_piix; /bin/true

這是 Mandriva 產生的,mkinitrd 應該不會厲害到跳過 /sbin/modprobe 把需要的 module  抓出來,讓我懷疑上面的寫法是有問題的。

我現在是改成

alias scsi_hostadapter ahci

mkinitrd 後目前是可以開機,希望下一次開機還可以。

edited: 1
eliu
2
Promote 0 Bookmark 02011-03-02quote  

結果還是不行,

我懷疑 SATA ahci 的 initialization 是放在 pata_atiixp,mkinitrd 可以用 --preload 強迫要 load 哪些 modules

mkinitrd --preload=pata_atiixp -f initrd-$VER.img $VER

目前用關機 & 開機測試 是可以正常 boot

edited: 1
eliu
3 How to list files in mkinitrd image 如何列出 mkinitrd image 裡的檔案
Promote 0 Bookmark 02011-04-02quote  

還是不行,比較後發現,原來是少了 ata_piix.ko,目前還不確定是否有用

原來 mkinitrd 是用 cpio + gzip 弄出來的

# zcat /boot/initrd.img | cpio -t | grep .ko

lib/modules/2.6.31.14-desktop-1mnb/sd_mod.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/crc-t10dif.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/ext3.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/scsi_mod.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/libata.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/pata_atiixp.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/jbd.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/ata_piix.ko.gz
lib/modules/2.6.31.14-desktop-1mnb/ahci.ko.gz

eliu
4
Promote 0 Bookmark 02011-04-23quote  

cht電腦資訊Linux
adm Find login register
views:12658