LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1051|回复: 6

完成后启动的问题

[复制链接]
发表于 2007-4-28 10:26:18 | 显示全部楼层 |阅读模式
lfs6.1.1制作的过程中,也没有发现什么问题或者错误,只是按照手册到6.11节glibc的check之后,grep Error  glibc-check-log中有几个error,与jqq850226的“请问你们glibc测试都没发生过错误吗?”帖子中的错误相同,这个应该没有什么问题吧,于是就继续了。

按照手册制作lfs6.1.1,使用的是vmware4.5.2 build-8848, 没有使用liveCD,而是安装的AS4系统(这个系统应该没有问题,因为已经有朋友用这个系统做成功了),因为我是事先装好的系统,除了swap分区外,把全部剩余的空间都分给了/,这样我就没有多余的分区做lfs,于是我为了不用重做系统,就在vmware中加了一个新的硬盘,原来系统的/是/dev/hda1,swap是/dev/hda2,我新加了个/dev/hdb1,用fdsik格式化成ext2的格式,然后我所有的工作都是在这块/dev/hdb1上面做的。当做到“6.62最后的清理”时,我看说tools目录没有什么用处了,就把tools目录删除了。此外所有的操作我觉得和手册上都是一样的,而且工具链的check也都做过了,没法现有什么错误。

第一个问题就是做到grub的时候,我是想这么做:
root (hd1,0)
setup (hd1)
quit
可是根本就没有hd0或者hd1。
于是我尝试了mount --bind /dev /mnt/lfs/dev
之后上面的命令可以执行,但是reboot之后grub菜单没有任何的改变,请问这是为什么呢?
另外要说明的一点,我在做到grub这个步骤的时候,我发现chroot环境下的/dev目录中除了建立的两个pts和shm目录外,什么文件都没有,我之前安装了udev了(甚至还重新安装了一遍),并且也运行了/sbin/udevstart,可是没有任何的效果,我理解运行了这个命令之后就会在/dev目录下建立如null,console等节点,可是我运行了之后/dev目录下没有建立任何节点,不知道是udev出了什么问题还是我的理解不对呢?之后在编译内核的时候我就发现屏幕有提示错误信息说cat命令找不到/dev/null,我该手动mknod么?觉得安装了udev之后就不用手动了吧,可我这里的这些节点为什么不存在呢?

我想是不是因为我弄了两个盘的关系,所以我想先避开grub的安装不管,我直接在开始的启动菜单里面修改,只要能进到lfs不也就可以了么,于是我就在AS4初始的grub菜单中用e修改
初始的菜单是这样的:
root (hd0,0)
kernel /boot/vmlinuxz-2.6.9-5.El ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.9-5.EL.img

我修改成了下面这样:
root (hd1,0)
kernel /boot/lfskernel-2.6.11.12 root=/dev/hdb1

然后我在kernel...那一行用b启动,于是就出现了下面的问题,不知道有没有谁知道原因,请指教,谢谢!


...
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI wakeup devices:
USB
ACPI: (supports S0 S5)
VFS: Mounted root (ext2 filesystem) readonly
Freeing unused kernel memory: 208K freed
Warning: unable to open an initial console

当打印信息到了这里的时候,就停住再也不动了。
另外还要说明的是,刚刚做完lfs的时候,重启动之后,是可以进到lfs的登陆界面的(也是按照上面的方法启动的,grub的安装至今就没成功过),前面有个初始化级别的地方不知道为什么还要我手动输入,inittab文件我已经写好了的,可是提示我输入启动的级别,于是我输入了个3,然后就到了登陆界面,我输入了root和密码,密码之前是设置了的,可是提示的出错信息是,无法找到/bin/bash,然后就停住不动了。于是我硬性重启到AS4原来系统中,chroot进到lfs目录下,看了看/bin/bash文件确实存在的,改了下fstab文件,让/dev/hdb1也就是lfs的分区自动mount,然后又重启了两次,再进lfs就出现了上面的问题了,现在连登陆都不可以了?请各位帮忙,谢谢!
发表于 2007-4-28 13:19:55 | 显示全部楼层
/dev/console 和 /dev/null 要自己建
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-28 13:55:28 | 显示全部楼层
到最后也需要自己重新建立/dev/console和/dev/null么?手册上没有这个步骤啊,而且之前mknod的时候我也有建立啊,不知道为什么会没有了呢?
并且我也试过了,mknod手动建立,仍然是到Warning: unable to open an initial console之后就不动了啊,请问怎么回事
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-28 18:09:45 | 显示全部楼层
重新启动到AS系统下,chroot到lfs环境下,用/usr/bin/bash, 发现/dev目录下没有console和null,我记得之前建立过了,可能哪里弄错了,不好意思。
于是我又手动建立了一次,按照各个阶段恢复工作状态的方法那篇中介绍的那样做的,把所有的节点都建立了一下,现在不会停在Warning: unable to open an initial console这里了,可以到mylinux login:,但是我用root登陆屏幕信息如下:
mylinux login: root
Password: lfs
Last login: Sat Apr 28 17:41:09 +0800 2007 on tty1
No mail.
Cannot execute /bin/bash : No such file or directory

可是/bin/bash是存在的啊,而且我重新做了一下shadow,防止是那里出错了,我就是按照手册做的,也不是.no和空格yes的问题(我最开始还以为是这里我做错了),然后我用useradd加了一个普通用户,用这个普通用户可以登陆,可是用root就不行,而且用普通用户去su的时候,输入密码后打印和用root直接登陆一样的错误信息。

请指教!谢谢
回复 支持 反对

使用道具 举报

发表于 2007-4-28 18:44:33 | 显示全部楼层
你说你chroot用的/usr/bin/bash
那/bin/bash呢 chroot之后运行 /bin/bash 看有什么问题
这提示很明显了吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-29 00:05:06 | 显示全部楼层
挺明显的,应该是/bin/bash不存在,我明天再看下,没有应该建个符号链接对么?
可是为什么普通用户就可以呢??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-29 10:10:21 | 显示全部楼层
刚看了下,/bin/bash存在而且也没有什么问题啊,需要更正一点,chroot用的就是/bin/bash,我之前写错了,我试了下用/usr/bin/bash去chroot,是说找不到的:/usr/bin/env: /usr/bin/bash: No such file or directory

另外我查看了一下我的passwd文件,发现root和普通用户在passwd的定义有些区别,就是这个文件造成的root不能登陆。其中是这样的:
root:x:0:0:root:/root:/bin/bash #我注意到这里有个空格
user:x:1000:100::/home/user:

似乎找到了原因,user登陆用的是sh的shell(默认的?),而root是想用bash登陆的,可是在passwd文件中由于多了一个空格,所以就会报错说“Cannot execute /bin/bash: ...”,于是我又测试了一下,我又添加了两个用户,用
useradd -s /bin/bash user1
useradd -s /bin/bash user2,
然后查看了一下passwd文件,如下:
root:x:0:0:root:/root:/bin/bash
user:x:1000:100::/home/user:
user1:x:1001:100::/home/user1:/bin/bash
user2:x:1002:100::/home/user2:/bin/bash

user1和user2后面的/bin/bash都是没有空格的,为了验证我的想法,我把user2一行最后的/bin/bash后加上了一个空格。

发现用user1可以登陆,而用user2登陆就和之前root发生一样的问题了,提示出错信息也是一样。

于是现在知道怎么解决这个问题了,只要改下passwd文件,去掉root那一行最后的空格就可以了,但是我很奇怪,passwd文件应该是安装shadow包的时候自动生成的吧,而root这一行也应该是自动添加的吧,我印象中这个不是手写进去的啊(如果是手写,可能是我疏忽写错了),为什么会出现这样的问题呢?各位请给分析一下呗,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表