
我說西班牙語,所以請原諒我的英語不好。
我正在學習如何編譯 slackware 內核,因此我從以下位置下載了 linux-3.2.7.tar.bz2http://www.kernel.org
狀況:
- Slackware 安裝在 vmware 虛擬機器上。
- 主機作業系統 Windows 7。
- Slackware 根檔案系統:ext4
- Slackware舊核心:2.6.37.6
- Slackware 分割區:sda1 用於交換,sda2 用於核心。
基本上我遵循了以下步驟:
#cd /usr/src
#tar jvxf linux-3.2.2.tar.bz2
#mv /usr/src/linux /usr/src/linux.old
#ln -s /usr/src/linux-3.2.2 /usr/src/linux
#cd linux-3.2.2
#make mrproper
#cp /usr/src/linux-2.6.37.6/.config /usr/src/linux-3.2.2/.config
#make menuconfig
載入備用設定檔:.config 包含(選項 Y):
ATA/ATAPI/MFM/RLL support (DEPRECATED) (at Device drivers)
SCSI generic support (at Device drivers)
second extended support (at filesystems)
ext3 journaling (all)
ext4 (all)
ext4 (at filesystems)
JBD (ext4) debuggin support
JBD2 (ext4) debugging support
ReiserFS support
XFS filesystem support
"compile kernel with debug info" (at kernel hacking)
make dep
make clean
make bzImage
make modules
make modules_install
mv /boot/System.map /boot/System.map.old
cp /usr/src/linux/System.map /boot/System.map-3.2.2
ln -s /boot/System.map-3.2.2 /boot/System.map
mv /boot/vmlinuz /boot/vmlinuz.old
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-3.2.2
ln -s /boot/vmlinuz-3.2.2 /boot/vmlinuz
nano -w /etc/lilo.conf
新增了以下幾行:
image=/boot/vmlinuz.old
label = oldSlack
root = /dev/sda2
read-only
#lilo
#lilo -q
#shutdown -r now
當核心 3.2.2 啟動時,它停止顯示以下內容:
VFS: Cannot open root device "802" or unknown-block(8,2)
Please append a correct "root=" boot option
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-bloc(8,2)
我討厭這條訊息,因為我已經多次重新編譯內核,並且經過幾個小時的編譯後我總是收到這條訊息。 :(
誰能幫助我理解我做錯了什麼或為什麼會出現這個錯誤?
答案1
註:我對 Linux 3 不熟悉。
我現在可以猜測,執行 lilo 命令時錯誤的路徑會導致此問題。 Lilo 在其他地方安裝了 mbr。
第一:停止重新編譯內核,因為我認為它甚至沒有開始啟動。
第二:再次檢查啟動檔案的路徑,以及執行lilo時的路徑。了解 lilo -r 開關
system=sda2
mbr=sda
lilo -F -r /mnt/$system -b /dev/$mbr -C /etc/lilo.conf
顯示輸出:
/sbin/sfdisk -d /dev/sda
ls -all /boot/
lilo
dmesg
我建議你使用 L 開關:
cp -L /usr/src/linux/System.map /boot/System.map-3.2.2
cp -L /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-3.2.2
你確定 Linux 正在運作嗎?