遇到的问题:
1.开机报错:
在做完整个系统之后重启出现了这个报错
VFS: Cannot open root device "sda2" or unknown-block(0,0) Please append a correct "root=" boot option;here are the available partition 0b00 1048575 sr0 driver: sr kernal panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
搞了好几天最后终于找到原因:
找到虚拟机配置文件的“.vmx",vmware默认的是LSI Logic,找到 ".vmx" 文件 里的scsi0.virtualDev = "lsilogic"
改为 scsi0.virtualDev = "buslogic“
详情参照一下摘抄:
这两天一直在安装lfs6.2,安装到最后编译完内核,修改完fstab,最后安装grub后,启动lfs报错提示 VFS:Cannot open root device "sda" 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) 看到这个错误的时候,我快崩溃了,我等了这么久,到最后一步出现了这个错误。大概意思是没有把root文件系统所在的硬盘控制器的驱动编译到内核中去,编译的时候我选择了scsi驱动了很奇怪,于是开始goole,baidu得到结果,大多都是集中在: Device Drivers--->SCSI device support--->SCSI disk support Device Drivers--->SCSI device support--->SCSI low-level drivers--->BusLogic SCSI support 一、磁盘(!!!) 在选择模块前,要先弄清楚VMware虚拟机的硬件类型,下面这个表是VMware6中自定义虚拟机配置时给出的配置,不难发现当您使用 VMware推荐向导给出的配置时,实际使用的是SCSI类型设备中的LSI Logic设备。这里要注意的一个地方是,既然有两个SCSI设备能够供其选择,那么该如何判断呢?很简单,因为他是通过内核主版本号来划分的。感兴趣的 朋友能够通过新建虚拟机Custom-Linux下Version列表中Other Linux2.6.X kernel 和 Other Linux2.4.X kernel来比较。2.4内核之前使用BusLogic,2.6内核使用的是 LSI Logic 。 VMware 6.0: I/O ADapter Types IDE adapter: ATAPI SCSI adapter: BusLogic LSI Logic 这是Other Linux2.6.X kernel配置系统信息 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01) 这是Other Linux2.4.X kernel配置系统信息 00:10.0 SCSI storage controller: BusLogic BT-946C (BA80C30) [MultiMaster 10] (rev 01) 现在分别介绍模块选择路径 这个是SCSI磁盘设备模块,必须选择。 Linux Kernel Configuration -> Device Drivers -> SCSI device support - > SCSI disk support 这个是BusLogic设备驱动模块。使用这个设备的的朋友需要选取。 Linux Kernel Configuration -> Device Drivers -> SCSI device support -> SCSI low-level drivers -> BusLogic SCSI support (这里一定要选上) 这个是LSI Logic设备驱动模块。使用这个设备的的朋友需要选取。 Linux Kernel Configuration -> Device Drivers -> Fusion MPT device support -> Fusion MPT (base + ScsiHost) drivers 我的内核是kernel-2.6.16.27,但是安装了上面提示的Fusion MPT (base + ScsiHost) drivers。问题依旧存在.所以我修改虚拟机的“.vmx",vmware默认的是LSI Logic,找到 ".vmx" 文件 里的scsi0.virtualDev = "lsilogic" 改为 scsi0.virtualDev = "buslogic 从新编译内核,启动系统`终于跳过了
2.网卡不能识别:
另一个问题是关于网卡的: 这个设备和内核版本没有关系,下面是系统信息参考: 02:00.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10) Linux Kernel Configuration -> Device Drivers -> Networking support -> Ethernet (10 or 100Mbit) -> [*] EISA, VLB, PCI and on board controllers -> <*> AMD PCnet32 PCI support -> <*> AMD 8111 (new PCI lance) support VMWare 所支持的网卡类型 它默认是虚拟的AMD PCNet AM79C970A网卡,但也可以改变网卡配置,虚拟出Intel(R) PRO/1000和VMware PCI Ethernet Adapter网卡。 如果在.vmx文件中用如下语句指定: ethernet0.virtualDev = "e1000" 其值为e1000指定网卡类型为Intel(R) PRO/1000 其值为vlance指定网卡类型为AMD PCNet AM79C970A(默认为此项) 其值为vmxnet指定网卡类型为VMware PCI Ethernet Adapter
我的网卡就是没有识别,在vm配置文件中加上
ethernet0.virtualDev = "e1000"就可以识别到网卡了。 3.用户添加问题我发现了一个更加简单的方式来利用busybox自带的adduser来添加用户并且验证,而且不用自己手动去改配置文件因为他会自动生成。。。。。。
4.添加telnet功能
5.通过udhcpc自动获取ip和dns
busybox中udhcpc的默认script脚本地址为
#define DEFAULT_SCRIPT CONFIG_UDHCPC_DEFAULT_SCRIPT
#define CONFIG_UDHCPC_DEFAULT_SCRIPT "/usr/share/udhcpc/default.script"
我想之所以以它作为默认地址,肯定有他的道理,所以在这个地址上创建它[luther.gliethttp]
[email protected]:/vobs/initramfs$ mkdir usr/share/udhcpc/ -p
[email protected]:/vobs/initramfs$ cp ~/busybox-1.14.3/examples/udhcp/simple.script usr/share/udhcpc/default.script
[email protected]:/vobs/initramfs$ chmod +x usr/share/udhcpc/default.script
在/etc/inittab中加入下面一行语句:
::once:"/sbin/udhcpc >/dev/null 2>&1" # udhcpc会退出,所以不能使用respawn,必须为once,1次,否则将一直出现udhcpc重启log信息
就这样简单的几行ip和dns就能自动获取了
也可以用脚本,详情参考:http://blog.chinaunix.net/uid-20564848-id-73955.html
6.手动设置IP的方法
参考:http://wenku.baidu.com/link?url=sHx_Oyro5fi6Exb09aF0-pKmzC0Cktzh-ilz6DQGYI6CpsdOfH6HLZWesJYWHubihRptBdsp8tnpLaNj6c-i8-duvN7kuUzLLIZTAPGYv4W