内核恐慌 - 未同步:VFS:无法在未知块 (8,2) 上挂载根文件系统

内核恐慌 - 未同步:VFS:无法在未知块 (8,2) 上挂载根文件系统

我会说西班牙语,所以请原谅我的英语不好。

我正在学习如何编译 slackware 内核,所以我从http://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 正在成为机器人吗?

相关内容