- 论坛徽章:
- 0
|
建立LFS过程的常见问题及解答
键盘不对,改名或者删除/etc/inputrc或/etc/sysconfig/clock中的UTC=1试试
有乱码,试试将LC_ALL设置为en_US看看
/etc/profile文件内容如下:
export LC_ALL="en_US"
export LANG="en_US"
export INPUTRC=/etc/inputrc
提示不能找到分区/dev/sda2怎么办 VFS:Cannot open root device "LABEL" or unknow-block(0,0) Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
1. 内核有没有编入 SCSI 及所需的文件系统的支持
2. udev 的版本
3. 内核的路径
4. 是否装在外置硬盘之上
尝试dpkg --status udev 看看/boot 里面的内核映像跟 menu.lst 的路径是否相同
要求重新编译内核支持scsi和santa 回到宿主机环境(即非chroot环境下)
执行lsp lshw查看当前的硬件配置 在make menuconfig的时候一定要记着选择相应的选项,笔者将我的选择过程记录如下给大家参考(虚拟机环境下)
Scsi buslogic要选择 Mpt fushion要选择 Ide要选择 网卡 pcnet32 xfs文件系统最好也选上(不能选择module)
如果是使用vmware,硬盘使用scsi,应该装上响应驱动,同时ext2和ext3文件系统的相应选项都应选上:
SCSI support ---> SCSI device support --->SCSI disk support
SCSI support --->SCSI device support--->SCSI low-level drivers-->;
BusLogic SCSI support File system--->
Ext3 journalling file system support
JBB (ext3) debugging support
Second extended fs support
如果仍然提示一下错误No module BusLogic found for kernel 2.4.20
解决的方法是采用手动复制过去的方法:
#cp /usr/src/linux/drivers/scsi/BusLogic.o /lib/modules/2.4.34/kernel/drivers/scsi
复制完成后,重新使用mkinitrd生成
#cd /boot
#mkinitrd initrd-2.4.34.img 2.4.34
将在boot目录下在生成映像文件initrd-2.4.34.img
unable to open an initial console问题如何解决
#cd /dev
mkdir /tmp/dev
mount --move /dev /tmp/dev
cd /tmp/dev
rm -f console null zero
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
mknod -m 660 zero c 1 5
mount --move /tmp/dev /dev
reboot
编译内核时加上支持devfs选项可能有帮助!
确认一下make menuconfig 选了init没有
加一个启动项
title Pure LFS (1.0)-bash
root (hd0,4)
kernel /boot/lfskernel vga=0x317 root=/dev/hda5 init=/bin/bash
看能不能启动bash, 若能则检查 init, inittab,rc.sysvinit
mkinitrd initrd-x.x.xx.img x.x.xx
启动的最后一步提示:Interface eth0 doesn't exist
估计是没有把虚拟网卡编进内核,查看了一下,需要 pcnet32模块,在内核树drivers/net下面有pcnet32.c文件,但不知道怎么编译成模块,因为我不想因为这个而重新编译内核
网上找的建立makefile的方法不行,只得把原理的config文件拷贝来,运行make menuconfig,把pcnet32选成模块形式,其他的不变,再make modules,make modules_install
在insmod /lib/modules/2.6.16.27/kernel/drivers/net/pcnet32.ko,成功,在/etc/sysconfig/net-devices/ifup eth0,启动成功!
重启还是没有自动加载它,在/etc/sysconfig/modules里添加 ,但可能是我格式不对,怎么都不能装载,只好在/etc/profile里面加上 insmod /lib/modules/2.6.16.27/kernel/drivers/net/pcnet32.ko
把上面的insmod命令加在/etc/rc.d/init.d/network启动脚本中,这下好像无缝连接了
依照《手把手上面来的》执行到/sbin/udevstart散开设备结点时,发现没有udevstart,查看后发现6.2装的时udev096,里面根本没有udevstart程序,找到并执行/etc/rc.d/init.d/udev start有错误,/dev下面有部分结点了,但仍然没有硬盘结点什么的,安装grub,自然找不到设备,不能安装,没辙编辑好其他文件,主要做好menu.lst,并link到/etc/grub/menu.lst,退出chroot,在livecd环境里一样的安装grub,重启,OK
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49674/showart_399863.html |
|