419

The only way to learn a new programming language is by writing programs in it.

chroot + livecd = 硬盘安装LFS

,

用livecd安装LFS的一大好处就是成功率比较高,这点对于新手尤其重要。
硬盘安装的好处有很多,这里就不多说了。

论坛精华区有一篇帖子介绍了“把livecd安装在硬盘上”的方法[http://www.linuxsir.org/bbs/showthread.php?t=274629],可惜我多番尝试都不成功,更改init.c再重新编译重新打包对我来说太难了。

不过我由此得到了提示,再参考livecd的/root目录里的那篇lfscd-remastering-howto.txt,
摸索出了一个比较容易操作的方法。现在不使用光驱,不重启电脑,就可以利用光驱里的环境来编译安装LFS了。

我下载了lfslivecd-x86-6.2-5.iso,然后

mkdir /mnt/isolfs
mount -o loop lfslivecd-x86-6.2-5.iso /mnt/isolfs
mkdir /mnt/lfslivecd
export WORK=/mnt/lfslivecd
cp /mnt/isolfs/root.ext2 $WORK/root.ext2

这时请查看 $WORK/root.ext2 是不是1.5G,如果不是,请参考lfscd-remastering-howto.txt[http://wiki.linuxfromscratch.org/livecd/browser/branches/6.2/doc/lfscd-remastering-howto.txt?rev=1744]里的办法,得到这个1.5G的文件,然后继续。

mkdir $WORK/root
mount -o loop $WORK/root.ext2 $WORK/root

mount -t proc proc $WORK/root/proc
mount -t sysfs sysfs $WORK/root/sys
mount -t devpts devpts $WORK/root/dev/pts
mount -t tmpfs tmpfs $WORK/root/dev/shm

mount -o bind /dev $WORK/root/dev    #这句是安装gentoo时学到的。

一切准备就绪,可以chroot了。

chroot /mnt/lfslivecd/root

现在测试一下这个工作环境是否理想,运行以下命令:
cat > version-check.sh << "EOF"
#!/bin/bash

# Simple script to list version numbers of critical development tools

bash --version | head -n1 | cut -d" " -f2-4
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-4
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
gcc --version | head -n1
/lib/libc.so.6 | head -n1 | cut -d" " -f1-7
grep --version | head -n1
gzip --version | head -n1
cat /proc/version | head -n1 | cut -d" " -f1-3,5-7
make --version | head -n1
patch --version | head -n1
sed --version | head -n1
tar --version | head -n1

EOF

bash version-check.sh


如果你也使用livecd-x86-6.2-5.iso,将会得到以下结果:
bash, version 3.1.17(1)-release
Binutils: version 2.16.1
bzip2,  Version 1.0.3, 15-Feb-2005.
Coreutils:  5.96
diff (GNU diffutils) 2.8.1
GNU find version 4.2.27
GNU Awk 3.1.5
gcc (GCC) 4.0.3
GNU C Library stable release version 2.3.6,
grep (GNU grep) 2.5.1
gzip 1.3.5
Linux version 2.6.18-3-686 2.6.18-7) (waldi@debian.org) (gcc
GNU Make 3.80
patch 2.5.4
GNU sed version 4.1.5
tar (GNU tar) 1.15.1


可见,得到了一个很适合安装LFS的宿主环境。Have fun!

*********************

补充一点,我在这个环境里根据/root/README的说明来设置,可以用startx进xfce里上网。但我还没有正式在里面安装LFS,所以虽然现在一切看起来很好,但并不完全确定安装过程中会有什么情况发生。

另外,我有一个疑问,

mount -t sysfs sysfs $WORK/root/sys
mount -t devpts devpts $WORK/root/dev/pts
mount -t tmpfs tmpfs $WORK/root/dev/shm

这几句我是按照lfscd-remastering-howto.txt来写的,不知道具体有什么用处。高手可以讲解一下吗?谢谢!

提取LFS LiveCD里的源码[精]HP !! AMD !!!

Comments

419 Saturday, March 17, 2007 6:38:19 AM

出现了问题,进行到 5.10. DejaGNU-1.4.4,在make check时说 no more pts。
在非chroot的终端执行
mount -o bind /dev/pts /mnt/lfslivecd/root/dev/pts
后解决问题。

不知道刚开始时不要
mount -t devpts devpts $WORK/root/dev/pts
mount -t tmpfs tmpfs $WORK/root/dev/shm
只用
mount -o bind /dev $WORK/root/dev
会不会更好。

Unregistered user Saturday, March 17, 2007 7:42:47 AM

lang er writes: 我的问题更大,由于我这个可爱的 日文键盘,好多符号我打不出来。。。。比如`|还有我最最亲爱的波浪线。。。。qq上好友都以为这个朗儿不是我,因为我不打波浪线了TT。。。小日本害死人阿:cry::cry: 你先不许作LFS,等我找到个便宜的黑mac pro键盘。。。

Unregistered user Saturday, March 17, 2007 7:57:51 AM

lang er writes: mount -t sysfs sysfs $WORK/root/sys 这个不用说了吧?? mount -t devpts devpts $WORK/root/dev/pts 这个是和终端这个概念和输入输出有关的 mount -t tmpfs tmpfs $WORK/root/dev/shm 这个我就知道是一个虚拟的东西,莫非和proc有关?? 没有键盘,等有键盘给你好好查查

419 Saturday, March 17, 2007 8:36:23 AM

我用的正好也是日文键盘。那些符号都是能打出来的,只是位置不一定相同。
比如~,在ESC下有个“半角/全角汉字”键,用Shift+“半角/全角汉字”就能打出来了。这是在系统设置为英文键盘布局的情况,如果设置为日文键盘布局,就要根据你键盘上的标示来打了。

419 Saturday, March 17, 2007 9:59:53 AM

mount -t sysfs sysfs $WORK/root/sys
这个不用说了吧??


这个我真是一点也不懂~

原来在LFS手册里有说明,
http://lfs.cs.hit.edu.cn/cn/chapter06/kernfs.html
现在我是半懂非懂了。

419 Saturday, March 17, 2007 12:34:14 PM

睡了一觉,醒来时第6章的Glibc-2.3.6已经编译好了,

make -k check 2>&1 | tee glibc-check-log
grep Error glibc-check-log

没有输出,也就是说没有Error,没有错误,Wow!!

419 Saturday, March 17, 2007 2:28:41 PM

第三次编译GCC了,天啊,装个系统真不容易,有点烦了。难怪gentoo 2007的安装也用编译好的bin文件了。到时候2007出来了我还是会装一个用用的,反正我还没有完整地装过一次gentoo。

Unregistered user Saturday, March 17, 2007 3:16:35 PM

lang er writes: 刚才编译fcitx,confiure出错,郁闷死,到现在还在找答案。。。。 键盘我看了,我这个没有现成的(至少我没找到)键盘定义,貌似要自己写一个了。。。。我觉得我还是买个键盘比较有效率。。。这个键盘以后打字使。。。。 tmpfs是一个虚拟的文件系统,如果你用过dos,会对这种东西很熟悉 [code]checking for size_t... yes checking for unistd.h... (cached) yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking return type of signal handlers... void checking for memmove... yes checking for memset... yes checking for mkdir... yes checking for setlocale... yes checking for strcasecmp... yes checking for strstr... yes checking for strtol... yes configure: creating ./config.status config.status: creating Makefile config.status: creating fcitx.spec config.status: creating doc/Makefile config.status: creating data/Makefile config.status: creating xpm/Makefile config.status: creating lib/Makefile config.status: creating src/version.h config.status: creating src/Makefile config.status: creating tools/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands [/code]

419 Saturday, March 17, 2007 3:51:32 PM

看来你还是要破费了,呵。

我用SCIM,里面那个智能拼音输入法简直太神了,好用。不过我一般是用五笔和日文输入法。

dos只是救急用,没有深入研究。说起来你说的那篇dos大作还没有浮上来呀!


这次GCC编译好后make -k check在下面这句话那里停了好久
Running /sources/gcc-4.0.3/gcc/testsuite/gcc.c-torture/compile/compile.exp ...

后我决定不等了,Ctrl+C

419 Sunday, March 18, 2007 2:18:18 AM

To langer

安装到6.42,发现了这个
http://lfs.cs.hit.edu.cn/cn/chapter06/kbd.html

你看看也许有帮助。

又发现了一篇更有用的
http://lfs.cs.hit.edu.cn/cn/chapter07/console.html

419 Sunday, March 18, 2007 5:09:19 AM

原来在lfs手册里有提到sysfs

http://lfs.cs.hit.edu.cn/cn/chapter07/udev.html

Unregistered user Sunday, March 18, 2007 10:26:11 AM

lang er writes: 亲爱的,我就是看了那个console的配置后才放弃的。我用的是mac的日文键盘。debian默认安装里没有这个键盘的定义,我曾经想过自己写一个定义,但是考虑了工作量和会不会影响以后的使用习惯后,我觉得我还是少吃几百个肉包比较现实。。。。。 关于那个dos。。。我已经写好了,在我的pda里,也许还需要作一些修改。不过现在我碰上了一些问题——情绪方面的。正在考虑怎么办。。。。这也是我这么长时间还没有更新的原因。 顺便说一下,我这里好几篇东西要整理发布呢。。。。都压在手里了。。。。。

419 Sunday, March 18, 2007 10:43:13 AM

不但是日文的,还要是mac的,这键盘只适宜做收藏品了。

pda貌似挺方便的……

如果是纯粹的情绪问题可以分散一下自己的注意力,看佛教的东西也有帮助。

Unregistered user Sunday, March 18, 2007 11:26:15 AM

lang er writes: 那个。。。我暂时还是先把圣经消化了吧。。。。一个人同时崇拜两个神是要遭报应的 这个键盘我打算多打字机使。。。挺舒服~~~~ 的确方便,对我来说提高了效率,一旦有什么要长时间边看文档边在电脑上做的事情,我就先把文档传到pda里——这个也是我买他的一个理由,确实高效啊~~~解放了鼠标和窗口切换啊~~~

419 Sunday, March 18, 2007 2:29:29 PM

我要不要装xorg7呢,好麻烦啊

Unregistered user Monday, March 19, 2007 4:32:58 AM

lang er writes: 我的设想是,现装一个包管理器,再装一些现成的二进制包(我可不想用这个机器编译openoffice一类的。。。。) 不过xorg这样的。。。。用包管理器装可能会引起系统错误。。。

朗儿yuelang85 Monday, March 19, 2007 2:14:34 PM

fcitx编译完了,装了一堆lib。。。刚才看到了fcitx目录里debian目录下的control才找到的依赖关系。。。唉,苯阿,怎么早没有想到。。。。

419 Monday, March 19, 2007 3:46:54 PM

你装了什么包管理器?有没有装X啊?

Unregistered user Tuesday, March 20, 2007 4:25:10 AM

lang er writes: 偶现在还没有完成lfs呢。。。。键盘。。。影响生产力啊。。。。 打算装apt,也有可能用rpm,看哪个适合lfs吧。。。。可惜lfs和unix有点远,要不就用slack的或者port了

419 Tuesday, March 20, 2007 10:55:19 AM

快换键盘啦,以前都是你在前面披荆砍棘开路的嘛

Unregistered user Tuesday, March 20, 2007 2:23:17 PM

lang er writes: 说的简单,不好找啊。。。。

Yan Janus Le JanusLe Friday, March 23, 2007 4:33:01 AM

很久不见了,不知道可好?还记得我否?嘿嘿~

419 Friday, March 23, 2007 1:53:12 PM

记得!Leyan!
我的编程又很久没学了……见到你真好,我会重新再学编程的。

Write a comment

New comments have been disabled for this post.