LinuxSir.cn,穿越时空的Linuxsir!

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

BYO Linux跟LFS一样一样的.....

[复制链接]
发表于 2003-5-4 10:38:06 | 显示全部楼层 |阅读模式
http://www.byolinux.org


这个还是来的亲切....
 楼主| 发表于 2003-5-4 17:04:28 | 显示全部楼层
基本linux的系统框架


一个kernel,sysvinit,bash就ok了
 楼主| 发表于 2003-5-5 20:03:33 | 显示全部楼层
不归之旅...

包:

*--sysvinit-2.85.tar.gz
ftp://ftp.cistron.nl/pub/people/ ... ysvinit-2.85.tar.gz

*--bash-2.05b.tar.gz 打bash-2.05b001-004四个补钉
ftp://ftp.gnu.org/gnu/bash/

开始了:

一个分区加载在/mnt/linux2下

建目录:

mkdir bin boot etc home lib mnt proc root sbin tmp usr var

进入/mnt/linux2/usr

又建目录

mkdir bin include man sbin share src

进入/usr/man

建目录

mkdir man1 man2 man3 man4 man5 man6 man7 man8

进入/usr/share

建目录

mkdir aclocal autoconf automake man

进入/mnt/linux2/usr/share/man

执行命令

mkdir man1 man2 man3 man4 man5 man6 man7 man8

mkdir /mnt/linux2/var/run

重要的/dev文件
cp -dpR /dev /mnt/linux2

对于/etc/下的passwd , group

如果你的passwd是使用shadow的话

<在root:x:,:与:之间有* or x就是使用了shadow)

请先命令

pwunconv

grpunconv

去掉shadow之后,就 cp /etc/passwd /mnt/linux2/etc
cp /etc/group /mnt/linux2/etc

然后还原

命令-- pwconv, grpconv

安装SysVinit

解开包tar zxvf .tar.bz

在src中编辑Makefile文件

nano (vi) Makefile


在第一行,加入

ROOT =  /mnt/linux2

<你分区加载的地方...>


在最后四行,作如下修改:

在每行中的/dev前面加入$(ROOT),

就像这样 $(ROOT)/dev

好了....

运行命令
:

make LDFLAGS=-static<如果没有这个参数

在启动内核,将会出现

( kernel panic: no init found try passing init=option to kernel)
>

make install


编辑/mnt/linux2/etc/inittab
文件

--------------------------
id:S:initdefault:
~~:S:wait:/sbin/sulogin
z6:6:wait:/sbin/sulogin
1:2345:respawn:/sbin/sulogin

---------------------------

可惜在我的启动界面中:

出现了

Give root password for maintenane

or .................


如果在启动时出现
sulogin:cannot open password databasa!

你需要五个文件

cp /lib/ld-2.3.1.so /mnt/linux2/lib
cp /lib/libc.so.6   /mnt/linux2/lib
cp /lib/libnsl.so.1 /mnt/linux2/lib
cp /lib/libnsl.so.1 /mnt/linux2/lib
cp /lib/libnss-compat.so.2 /mnt/linux2/lib



Bash编译

cd /bash-2.05b

patch p0 < bash-2.05-001

.........< bah-2.05b-004


./configure --enable-static-link

cp bash /mnt/linux2/bin


编译出现的问题

collect2:ld terminated with signal 15 [ Terminated].core dumped

在我的gentoo下在最后没有编译成功<gcc version 3.2.2>

可我用gentoo光盘启动.chroot来编译却成功了

.....



你可以用你原来的linux内核来启动

这个系统了

----------------------

再会.......
发表于 2003-5-6 04:51:49 | 显示全部楼层
最初由 qing 发表

可惜在我的启动界面中:

出现了

Give root password for maintenane

or .................


如果在启动时出现
sulogin:cannot open password databasa!

你需要五个文件

cp /lib/ld-2.3.1.so /mnt/linux2/lib
cp /lib/libc.so.6   /mnt/linux2/lib
cp /lib/libnsl.so.1 /mnt/linux2/lib
cp /lib/libnsl.so.1 /mnt/linux2/lib
cp /lib/libnss-compat.so.2 /mnt/linux2/lib


您写了两行的 cp /lib/libnsl.so.1 /mnt/linux2/lib
其中有一行我觉得应该是cp /lib/libnss_files.so.2 /mnt/linux2/lib
而这个文件我觉得是最重要的。

我想您应该把 libnss_dns.so.2 和 libresolv.so.2也考过去,因为dns要靠这两个so。
 楼主| 发表于 2003-5-6 08:36:17 | 显示全部楼层
我没有联网阿

只是可以作为一个系统而已
 楼主| 发表于 2003-5-6 12:01:00 | 显示全部楼层
配份

修改/etc/fstab文件

/dev/ROOT
/dev/
/dev/SWAP


...


tar -cvzpf /linux.tar.gz ./


解压

tar -zxvpf linux.tar.gz
 楼主| 发表于 2003-5-6 13:38:08 | 显示全部楼层
编译出现的问题

collect2:ld terminated with signal 15 [ Terminated].core dumped



找到了问题所在,是SWAP

忘了改/etc/fstab文件

/dev/SWAP

SWAP--换成你的swap分区

swapon /dev/hda6

就ok了
发表于 2003-5-6 16:41:10 | 显示全部楼层
对了
我在做的时候是直接用devfs 的
我想那样很有意思
呵呵
 楼主| 发表于 2003-5-6 23:33:45 | 显示全部楼层
困惑是
在编译SysVinit时是

make LDFLAGS=-static


ldd sulogin

  do dynamix .....

是静态了吧

可是,没有/lib/下的那些.so.xx文件

就会出现
sulogin:cannot open password  database


为什么,??
发表于 2003-5-7 01:18:57 | 显示全部楼层
其实你ldd任何一个程序,都不会看见这个so
我当初做的时候是一个一个库考才知道到底要哪几个的。我也不知道这个库到底是怎么被调用的。不过你可可以看看man nsswitch.conf
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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