目前正在进行LFS 6.3的安装。遇到很多疑惑和困难,写出来和大家分享一下。我的技术背景是对linux知之甚少。你问我为什么装LFS?我也不知道为什么,没有什么目的性。从一穷二白开始,我只是想知道安装完LFS 以后我对linux的理解能够上升到什么层次。
好,现在开始。
参考资料:
[原创]第二版 手把手教你如何建立自己的Linux系统(LFS速成手册)
http://www.linuxsir.org/bbs/thread322894.html
Linux From Scratch定制指南
http://man.chinaunix.net/linux/lfs/LFS-6.1.1/index.html
如何提高LFS的成功率以及部分问题的解决方法
http://blog.chinaunix.net/u/13265/showart.php?id=100756
=================================================================
遇到问题了。
第三次调整工具链,也即Man-pages-2.63和Glibc-2.5.1之后调整工具链出现问题:
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep '/lib'
之后能够显示 [Requesting program interpreter: /lib/ld-linux.so.2]
但是如下命令均没有返回值:
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
grep -B1 '^ /usr/include' dummy.log
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
grep "/lib/libc.so.6 " dummy.log
grep found dummy.log
昨晚关机睡觉,今天执行如下恢复步骤:
1.重新启动计算机,并从LiveCD启动
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
swapon /dev/hda1
4.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
5.Chroot到目标系统下
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/bash --login +h
6.进入编译目录
cd /sources
export LFS=/sources
发现用户名的标识变为root# /bin:/usr/bin:/sbin:/usr/sbin:/tools/bin。怀疑工具链调整错误了。
目前不知道如何恢复工具链到之前的状态。。。。。。。。。。。。。。。、
正在查资料,不行就从头开始做了。
事实证明从头开始是一个错误。上面的原因是“ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \”这里漏掉一个空格;从新开始后到这里提示chroot: cannot change root directory to : No such file or directory.根据冲天飞豹的“部分问题解决方法”认为是第五章出问题了。ldd /tools/bin/env检查是没有问题的,还要检查哪里出问题。希望能早点解决。
好,现在开始。
参考资料:
[原创]第二版 手把手教你如何建立自己的Linux系统(LFS速成手册)
http://www.linuxsir.org/bbs/thread322894.html
Linux From Scratch定制指南
http://man.chinaunix.net/linux/lfs/LFS-6.1.1/index.html
如何提高LFS的成功率以及部分问题的解决方法
http://blog.chinaunix.net/u/13265/showart.php?id=100756
=================================================================
遇到问题了。
第三次调整工具链,也即Man-pages-2.63和Glibc-2.5.1之后调整工具链出现问题:
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep '/lib'
之后能够显示 [Requesting program interpreter: /lib/ld-linux.so.2]
但是如下命令均没有返回值:
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
grep -B1 '^ /usr/include' dummy.log
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
grep "/lib/libc.so.6 " dummy.log
grep found dummy.log
昨晚关机睡觉,今天执行如下恢复步骤:
1.重新启动计算机,并从LiveCD启动
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
swapon /dev/hda1
4.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
5.Chroot到目标系统下
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/bash --login +h
6.进入编译目录
cd /sources
export LFS=/sources
发现用户名的标识变为root# /bin:/usr/bin:/sbin:/usr/sbin:/tools/bin。怀疑工具链调整错误了。
目前不知道如何恢复工具链到之前的状态。。。。。。。。。。。。。。。、
正在查资料,不行就从头开始做了。
事实证明从头开始是一个错误。上面的原因是“ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \”这里漏掉一个空格;从新开始后到这里提示chroot: cannot change root directory to : No such file or directory.根据冲天飞豹的“部分问题解决方法”认为是第五章出问题了。ldd /tools/bin/env检查是没有问题的,还要检查哪里出问题。希望能早点解决。
转载于:https://blog.51cto.com/dukeslayer/282533