[問題] kernel-image-2.6.3-1-k7 開機有問題

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

[問題] kernel-image-2.6.3-1-k7 開機有問題

文章timeriver » 週三 3月 31, 2004 7:15 pm

我重新灌了一個 testing 的系統
然後馬上 apt-get install kernel-image-2.6.3-1-k7
重開機之後出現了 VFS: Cannot open root device "306" or unknown-block(3,6)
我的硬碟是在 /dev/hda6

我把 lilo.conf 中的設定已經改成 root=0x0306
但是還是一樣的錯誤
蠻多人都遇到這個問題的,那麼這個算是 bug 嗎?(就是要調東調西 kernel2.6 才能開機)
在 Sarge 釋出以後這個問題會消失嗎

另外 kernel-image-2.6.3-1-k7 跟 SMP 有什麼不一樣呢

對不起 常常上來問問題 :ooops:
實在試了許多次仍然沒有解決
"Hope deffered makes the heart sick. But when dreams come true.There is life and joy" proverbs 13:12
timeriver
懵懂的國中生
懵懂的國中生
 
文章: 106
註冊時間: 週三 3月 31, 2004 12:02 am
來自: 基隆

re:[問題] kernel-image-2.6.3-1-k7 開機有問題

文章timeriver » 週三 3月 31, 2004 9:28 pm

卡在 root 的地方已經解決了 我沒有把 initrd=/initrd.img 加上去  ̄▽ ̄
因為我之前用 2.4.18 的時候印象中用了 initrd 的 img 沒有加上面那個設定
一樣可以用

然後後來的 kernel Panic : Attempted to kill init ..
在/etc/kernel.ing 加上 do_initrd = Yes ... 就可以開機了

感覺很像用 apt-get install kernel-image-xxxxx
這樣比較危險? 因為一切都是用預設的
"Hope deffered makes the heart sick. But when dreams come true.There is life and joy" proverbs 13:12
timeriver
懵懂的國中生
懵懂的國中生
 
文章: 106
註冊時間: 週三 3月 31, 2004 12:02 am
來自: 基隆

re:[問題] kernel-image-2.6.3-1-k7 開機有問題

文章palmpilote » 週四 4月 01, 2004 7:44 am

timeriver 寫:卡在 root 的地方已經解決了 我沒有把 initrd=/initrd.img 加上去  ̄▽ ̄
因為我之前用 2.4.18 的時候印象中用了 initrd 的 img 沒有加上面那個設定
一樣可以用

那是因為bf24以相容性作為考量
沒有最佳化
所有可能會造成開不了機的都是直接編進kernel
(例如磁區的格式)
所以剩下編成module的都是沒載入也不影響開機的
(如網路卡)
這道理就好像你把你所有目前硬體所需要的全部直接編進去,剩下的編成module一樣
這樣就不需要用到initrd阿
timeriver 寫:然後後來的 kernel Panic : Attempted to kill init ..
在/etc/kernel.ing 加上 do_initrd = Yes ... 就可以開機了

感覺很像用 apt-get install kernel-image-xxxxx
這樣比較危險? 因為一切都是用預設的

其實kernel-image-xxx是最方便的作法
只要記得改lilo,package的版本對了
(如同樣用testing或是unstable)
基本上是不用擔心有太大的問題
(他編譯的選項也是有調整過的,不是直接套source預設的)
圖檔
看啥?沒看過貓有五條腿的嗎?
http://palmpilote.twbbs.org
個人blog啟動
頭像
palmpilote
快樂的大學生
快樂的大學生
 
文章: 524
註冊時間: 週四 10月 17, 2002 4:01 pm
來自: 笨呆星球

re:[問題] kernel-image-2.6.3-1-k7 開機有問題

文章Tetralet » 週四 4月 01, 2004 11:39 am

timeriver 寫:感覺很像用 apt-get install kernel-image-xxxxx
這樣比較危險? 因為一切都是用預設的


這是我的 Kernel Update 的 Script,
請參考一下:
代碼: 選擇全部
#!/bin/bash

CheckParameter=""

Pause()
{
        echo ""
        echo "Press <Enter> To Continue, Or <Ctrl><C> To Interrupt..."
        read EnterKey
}


# 是否使用 --help 參數
if [ -n "$( echo " $@ " | grep -- ' --help ' )" ]; then
        echo ""
        echo "Usage: $0 --help -- Kernel KernelPackageName --GCC stable/testing/unstable"
        echo "  --Initrd-Tools stable/testing/unstable --do_initrd --vga16_off"
        echo "  --support_acpi --with_pcmcia --with_doc --auto_reboot"
        echo ""
        echo "  --help:         Display this information"
        echo "  --Kernel KernelPackageName: Assign The Kernel Version,"
        echo "  --Initrd-Tools stable/testing/unstable: Install initrd-tools package"
        echo "          for example: 2.6.0-1-k7 or 2.4.23-1-686."
        echo "  --GCC stable/testing/unstable:  Install GCC package"
        echo "  --do_initrd:    Add 'initrd=/initrd.img' to /etc/lilo.conf"
        echo "  --vga16_off:    Add 'append="video=vga16:off"' to /etc/lilo.conf"
        echo "  --support_acpi: Add 'append="acpi=on apm=off"' to /etc/lilo.conf"
        echo "  --with_pcmcia:  Install Kernel PCMCIA modules"
        echo "  --with_doc:     Install Kernel documents"
        echo "  --auto_reboot:  Reboot machine automatic after installation"
        echo ""
        exit 0
fi



for Parameter in $@
do
        # 使用 --Initrd-Tools stable/testing/unstable 來同時安裝 initrd-tools。
        if [ "$CheckParameter" = 'Initrd-Tools' ]; then
                CheckParameter=""

                case "$Parameter" in
                        stable|testing|unstable)
                                echo ""
                                echo "Install Initrd-Tools..."
                                apt-get -t "$Parameter" install initrd-tools
                                echo ""
                                ;;
                        *)
                                echo ""
                                echo "Usage : "$0" --Initrd-Tools stable/testing/unstable"
                                echo "Please try again."
                                echo ""
                                exit 1
                                ;;
                esac
                Pause
        fi

        if [ "$Parameter" = '--Initrd-Tools' ]; then
                CheckParameter="Initrd-Tools"
        fi


        # 使用 --GCC stable/testing/unstable 來同時安裝 GCC。編譯驅動模組時所必須的。
        if [ "$CheckParameter" = 'GCC' ]; then
                CheckParameter=""

                case "$Parameter" in
                        stable|testing|unstable)
                                echo ""
                                echo "Install GCC..."
                                apt-get -t "$Parameter" install gcc g++ g77
                                echo ""
                                ;;
                        *)
                                echo ""
                                echo "Usage : "$0" --GCC stable/testing/unstable"
                                echo "Please try again."
                                echo ""
                                exit 1
                                ;;
                esac
                Pause
        fi

        if [ "$Parameter" = '--GCC' ]; then
                CheckParameter="GCC"
        fi


        # 使用 -do_initrd 來指定在 lilo.conf 中加入 initrd=/initrd.img
        if [ "$Parameter" = '--do_initrd' ]; then
                echo ""
                echo "Adding 'initrd=/initrd.img' to /etc/lilo.conf..."
                if [ ! -f /etc/kernel-img.conf ]; then
                        touch /etc/kernel-img.conf
                fi
       
                if [ -z "$(grep "do_initrd = Yes" /etc/kernel-img.conf )" -a -z "$(grep "do_initrd = yes" /etc/kernel-img.conf )" ]; then
                        sed -e '/^image=\/vmlinuz$/a\
        initrd=\/initrd.img' /etc/lilo.conf > /tmp/lilo.conf.tmp
                        mv /tmp/lilo.conf.tmp /etc/lilo.conf
               
                        # 記錄以上動作己修改完成
               
                        cat >> /etc/kernel-img.conf << EOF
do_initrd = Yes
EOF
                        echo "Done."
                else
                        echo "It seems no need..."
                fi
                echo ""
                Pause
        fi


        # 使用 --vga16_off 來指定在 lilo.conf 中加入 append="video=vga16:off"
        if [ "$Parameter" = '--vga16_off' ]; then
                echo ""
                echo "Add 'append="video=vga16:off"' to /etc/lilo.conf..."
                if [ -z "$(grep "^append" /etc/lilo.conf )" ]; then
                        sed -e '/^# append=""$/a\
append="video=vga16:off"' /etc/lilo.conf > /tmp/lilo.conf.tmp
                        mv /tmp/lilo.conf.tmp /etc/lilo.conf
                        echo "Done."
                else
                        if [ -z "$(grep "^append" /etc/lilo.conf | grep 'video=vga16:off')" ]; then
                                sed -e "s/^append="*"/append="video=vga16:off /g" /etc/lilo.conf > /tmp/lilo.conf.tmp
                                mv /tmp/lilo.conf.tmp /etc/lilo.conf
                                echo "Done."
                        else
                                echo "It seems no need..."
                        fi
                fi
                echo ""
                Pause
        fi


        # 使用 --support_acpi 來指定在 lilo.conf 中加入 append="acpi=on apm=off"
        if [ "$Parameter" = '--support_acpi' ]; then
                echo ""
                echo "Add 'append="acpi=on apm=off"' to /etc/lilo.conf..."
                if [ -z "$(grep "^append" /etc/lilo.conf )" ]; then
                        sed -e '/^# append=""$/a\
append="acpi=on apm=off"' /etc/lilo.conf > /tmp/lilo.conf.tmp
                        mv /tmp/lilo.conf.tmp /etc/lilo.conf
                        echo "Done."
                else
                        if [ -z "$(grep "^append" /etc/lilo.conf | grep 'acpi=on apm=off')" ]; then
                                sed -e "s/^append="*"/append="acpi=on apm=off /g" /etc/lilo.conf > /tmp/lilo.conf.tmp
                                mv /tmp/lilo.conf.tmp /etc/lilo.conf
                                 echo "Done."
                        else
                                echo "It seems no need..."
                        fi
                fi
                echo ""
                Pause
        fi


        # 使用 --Kernel KernelPackageName 來指定 Kernel Image 的套件名稱。
        if [ "$CheckParameter" = 'KERNEL' ]; then
                CheckParameter=""
                KernelPacakgeName="$Parameter"
        fi

        if [ "$Parameter" = '--Kernel' ]; then
                CheckParameter="KERNEL"
        fi

done


# 安裝 Kernel Image
if [ -z "$KernelPacakgeName" ]; then
        echo ""
        echo "$0: Missing Kernel-Version."
        echo "Try $0 --help for more options..."
        echo ""
        exit 1
fi

KernelVersion=$(echo $KernelPacakgeName | cut -d "-" -f 1)

echo ""
echo "New Kernel Version = $KernelVersion"
echo "New Kernel Package Version = $KernelPacakgeName"
Pause

apt-get install kernel-image-$KernelPacakgeName
Pause

# 安裝 Kernel PCMCIA Modules
if [ -n "$( echo " $@ " | grep -- ' --with_pcmcia ' )" ]; then
        apt-get install kernel-pcmcia-modules-$KernelPacakgeName
        Pause
fi

# 安裝 Kernel Headers,很多軟體在編繹時都用得到!
# 這樣就不用下載整個 Kernel 的原始碼了。
apt-get install kernel-headers-$KernelPacakgeName

if [ -d /usr/src/linux ]; then
        rm -R /usr/src/linux
fi
if [ -f /usr/src/linux ]; then
        rm /usr/src/linux
fi
if [ -d /usr/src ]; then

        ln -s /usr/src/kernel-headers-$KernelPacakgeName /usr/src/linux-$KernelVersion
fi
if [ -d /lib/modules/$KernelPacakgeName ]; then
        cd /lib/modules/$KernelPacakgeName
        ln -s /usr/src/kernel-headers-$KernelPacakgeName build
fi


# 將新的開機設定寫入磁碟中
# 注意:apt-get 指令現在似乎會自動替您做這件事!不過再做一次比較保險。

lilo -v -v -v
Pause


# 順便把相關文件也安裝進來
if [ -n "$( echo " $@ " | grep -- ' --with_doc ' )" ]; then
        apt-get install kernel-doc-$KernelVersion
        Pause
fi

# 好囉,請自行重新開機,讓新的 Kernel 開始運作。
if [ -n "$( echo " $@ " | grep -- ' --auto_reboot ' )" ]; then
        reboot
fi


我試了不少次,應該是可以正常使用的。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[問題] kernel-image-2.6.3-1-k7 開機有問題

文章Tetralet » 週四 4月 01, 2004 11:42 am

如果看那個 Shell Script 覺得很煩,
那麼簡單得說,
就是:

 安裝 initrd-tools
 安裝 gcc g++ g77
 安裝 Kernel Image
 安裝 Kernel PCMCIA Modules
 安裝 Kernel Headers
 安裝 Kernel 相關文件
 修改 /etc/lilo.conf(別忘了設定 initrd=/initrd.img!)
 修改 /etc/kernel-img.conf
 重新開機
 設定所要載入的 modules

這樣子應該就可以了。
請您不妨試試看!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客