[毁灭系列] jhalfs HOWTO
时间:2006-05-31
来源:互联网
jhalfs 是新一代的 ALFS script,用以取代 nALFS profile 作为自动建立系统的自动脚本,遗陷的是 LFS 开发团队至今仍没有详尽的 Documentation 来介绍 jhalfs 的使用方法,令 jhalfs 未能被广范使用,在下按照 LFS-6.2pre4 LiveCD 上的 README 及自行探索後,发现原来 jhalfs 的确比 nALFS 优胜,不单目录架构更完整,而且更可延伸到 BLFS,CLFS 及 HLFS 中使用,因此急不及待撰写本文,希望各位能对 jhalfs 更加了解及广范使用。
准备工作:
1. 最好拥有良好的网络,系统会载入最新的 SVN BOOK 内各章节对应的 xml 文件来产生所需的 Makefile,缺少的包及补丁可以自动下载,否则便要自己先下载回来
2. 先准备好编译内核所需的 .config 文件
由於 LFS-6.2pre4 LiveCD 已有 jhalfs 及 较新的 Book 及 软件包,因此我打算用没有 jhalfs 的系统来说明,以下部骤均以 LFS-6.2pre3 LiveCD 来解说,旧版的 LiveCD 或现成系统应该也不难对应。
正式开始:
1. 取得 jhalfs (如用 LFS-6.2pre4 LiveCD,可跳过这一步)
LFS-6.2pre3 LiveCD 提供了 nALFS profile,没有 jhalfs profile,按 LFS 网页提示,可用以下命令取得 jhalfs
svn co svn://svn.linuxfromscratch.org/ALFS/jhalfs/trunk jhalfs-trunk
完结後,在当前目录(假设是 ~)下的多了一个 jhalfs-trunk 目录,当中就是 jhalfs 的 profile 了
2. 设定 profile
2.1 编辑 ~/jhalfs-trunk/common/config,按自己需要修改(基本都有说明的):
BUILDDIR=/mnt/lfs
...
GETPKG=1
...
SERVER=http://ftp.osuosl.org (取一个较快的 mirror)
...
OPTIMIZE=1
...
TEST=0 (我习惯全程不 TEST 的)
STRIP=1
PAGE=A4
...
存档
2.2 编辑 ~/jhalfs-trunk/optimize/opt_config,按自己需要修改(若对优化设置不熟识,请勿使用):
...
DEF_OPT_MODE=O3pipe_march (也可自行定义一个 O2pipe 来用)
...
另外, ~/jhalfs-trunk/optimize/opt_override 是针对某些包(如 binutils, gcc, glibc 等)来作特定的 CFLAGS 设置,基本上不用改动
2.3 编辑 ~/jhalfs-trunk/optimize/opt_config.d/O3pipe_march
可修改所有 -march 及加入 -fomit-frame-pointer
3. 准备编译
在 jhalfs-trunk 目录下有几个 symlink 来击活 master.sh 此脚本,分别是 lfs,blfs,clfs 及 hlfs,故名思义了。master.sh 本身不能单独启用,必需由该命令来决定要建立的系统。
现在我要做 LFS,当然就是执行 ./lfs 了,在 jhalfs-trunk 目录下执行
#export SRC_ARCHIVE=/lfs-sources && ./lfs
其间,系统会要求你核对编译设置及优化条件,接着系统会先行下载最新的 SVN BOOK 内各章节对应的 xml 文件来产生所需的 Makefile,(将会存放在 /mnt/lfs/jhalfs 内),系统会检查 /lfs-sources 内有没有所需的包,缺少的包及补丁自动从先前指定的 mirror下载。
4. 开始编译
#cd /mnt/lfs/jhalfs
#time make
一直等它完成。。。
(测试系统配置是 Sempron 3000+,1.5GB RAM,980M Swap,不编译内核,版本 LFS-SVN-20060528,共需时 164m20s)
後记:
1. 我用的是 jhalfs svn 版,现时默认只会 build svn development branch,据 LFS 网页描述,要做 stable branch LFS-6.1.1 的话要用 jhalfs-0.2 版才行,0.2 版在配置上有少许不同,是更改 jhalfs.conf 文件
2. ALFS 的对像是对 LFS 有经验的玩家,对初次接独 LFS 的新手,请勿使用
3. 我还未试过将 jhalfs 用於 BLFS/CLFS/HLFS,无法作出说明,对 jhalfs 的测试也未必足够深入,大家若然有其他发现,敬请反馈,谢谢!
(今天为止,jhalfs 暂时不能用於 BLFS,jhalfs 仍在改进中)
PS:先前 Sir 里有位兄弟做了一个半自动的 LFS Build System,对比之下觉得 jhalfs 更能得心应手,在下无条件下全力推荐 jhalfs
Change log:
1.0 May31,06 Initial release
1.1 May31,06 更正後记 stable branch 说明
1.2 Oct9,06 补充适用的 jhalfs 版本
Remark:
本 Howto 只适用於 jhalfs-1.0 或当期时的 svn 版,亦适用於 LiveCD-6.2。现在的 svn 版经过大幅改良,从 mailing list 得知,将会以 jhalfs-2.0 推出,配置方法跟本文很不相同,读者要注意了
作者: d00m3d 发布时间: 2006-05-31
要注意,完成 jhalfs build 并不等於完成了 LFS 基本系统,内核尚未编译,而且还有重要部骤未做:
To be able to boot your new system you need to follow the next steps: - Enter to the chroot using the command found in the section - Entering the Chroot Environment - except if building CLFS with METHOO=boot. - Set a password for the root user - Edit /etc/fstab, /etc/hosts, /etc/sysconfig/clock, /etc/sysconfig/console, /etc/sysconfig/network, /etc/sysconfig//network-devices/ifconfig.eth0/ipv4 and any other configuration file required to suit your needs. - Set-up the boot loader. See the relevant book section. - Unmount the filesystems. If you are an experienced LFS user, several of those steps can be skipped or done in a different way. But then, that is something that you already know and there is no need to discuss it here. Have a nice day :-)
附注:
jhalfs 是可以配合 PACO 打包系统一起使用的,详见 README.PACO 文件
疑问:
用 nALFS 的时候,由於有文字界面,可以自由选取哪些包交由脚本来自动制作的,暂时未知在
jhalfs 下如何实现?
作者: d00m3d 发布时间: 2006-05-31
不好意思。。。

作者: d00m3d 发布时间: 2006-05-31
export LANG=en_US; export SRC_ARCHIVE=/jhalfs/src ; ./lfs -B SVN -D /jhalfs -G -M -O 1 -T 0
执行到binutils pass1的时候就挂掉了,仔细查看了脚本,好象试解压缩包那儿出了问题;
有没有其他人测试成功过?
作者: sysit 发布时间: 2006-06-05
作者: d00m3d 发布时间: 2006-06-05
1、按照楼主说的步骤,进行了make后,是不是程序自动就logout到主系统下了?
2、屏幕上提示说要重新chroot,是不是运行以下命令:
chroot /mnt/lfs /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
mount -nvt tmpfs none /dev
/sbin/udevstart
mkdir -v /dev/pts
mkdir -v /dev/shm
mount -vt devpts -o gid=4,mode=620 none /dev/pts
mount -vt tmpfs none /dev/shm
cd /sources
export LFS=/sources
不知是不是这样的?但是好象没有/sbin/udevstart这个文件,只有/sbin/udevd之类的文件。哪里错了?
3、屏幕上说要编辑/etc/sysconfig/clock,/etc/sysconfig/network等等文件,是用cat命令吗?那可不可以在主系统下打开另一个终端,直接vi /mnt/lfs/etc/sysconfig/network呢?
会造成错误吗?
4、先前安装的Linux-Libc-Headers是2.6.11.2的,那我直接在http://www.kernel.org下最新的2.6.16.20版本的核心,能否正常编译?
另外说一句,我是新手,很多地方问的问题可能大家会觉得很简单,请不要见怪!
作者: zjracyx 发布时间: 2006-06-06
作者: 晨想 发布时间: 2006-06-06
作者: d00m3d 发布时间: 2006-06-06
作者: d00m3d
SRC_ARCHIVE 是存放源码的位置,LFS 的 LiveCD 自带的包都放在 /lfs-sources 里,若然系统找不到需要的包便会从指定的 mirror 下载,你的 /jhalfs/src 内有什麽内容?
|
我SRC_ARCHIVE是个空目录,看下载的过程是每个包都下载到这个目录,然后复制到/jhalfs/sources目录去.
我玩LFS也差不多两年了,跟着升级有点累了,所有就找偷懒的方法
作者: sysit 发布时间: 2006-06-12
作者: sysit
我SRC_ARCHIVE是个空目录,看下载的过程是每个包都下载到这个目录,然后复制到/jhalfs/sources目录去.
|
作者: d00m3d 发布时间: 2006-06-12
d00m3d兄 弄混了吧:)。。
作者: 晨想 发布时间: 2006-06-13

作者: d00m3d 发布时间: 2006-06-13
我上当了,光看到commands下面有对应的命令,但是实际上一些需要自己改动的地方对应的命令没有执行,内核也没编译,Grub也没安装,还得手动的来...-_-U,干脆就直接用jhalfs提供的脚本得了

作者: LanEast 发布时间: 2006-06-15
http://www.linuxfromscratch.org/livecd/news.html
开发团队仍在改进 BLFS 的支援中,已正式支援 LFS/CLFS/HLFS 各个 SVN 版及某些测试版
http://wiki.linuxfromscratch.org/alf...SupportedBooks
下了 1.0 的 tarball 回来,文档内仍未交待如何像 nALFS 那样自由选取哪些包交由脚本来自动制作,仍未知在 jhalfs 下能否实现?
作者: d00m3d 发布时间: 2006-07-24
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
然后准备给root设置一个密码,结果不行,出现下面问题:
root:/# passwd root
正在为 root 修改密码
请输入新密码(最少 5 最多 127 个字符)
请混合使用大小写字母和数字。
错误的密码:太短。
警告:脆弱的密码(重新输入以强制使用它)。
密码未更改。
root:/#
根本就没有提示我输入新密码!怎么回时?
怎么办?
作者: bird00126 发布时间: 2006-08-07
不知你的 root 密码是何时设置的,但要改 root 密码方法多的是,既然你能成功 chroot,难度不能改 /etc/passwd 的内容?
作者: d00m3d 发布时间: 2006-08-08
作者: echo 发布时间: 2006-10-08
作者: d00m3d 发布时间: 2006-10-10
作者: youbest 发布时间: 2006-10-10
作者: d00m3d 发布时间: 2006-10-10
作者: augustusqing 发布时间: 2006-11-06
不过个人认为,这样的成就感会少一些。
可自我改动的部分也少一些。
还是喜欢原汁的LFS。
(仅发表个人看法)
作者: 飞龙在天 发布时间: 2006-11-06
編譯版本是6.2
1.創建partition並掛載於/mnt/lfs
2.設定jhalfs文件(下面相對目錄是基於~/jhalfs-1.0目錄下)
修改common/config
BUILDDIR=/mnt/lfs TEST=0 STRIP=1 PAGE=A4
GETKERNEL=1 BOOK=/usr/share/LFS-BOOK-6.2-XML
export SRC_ARCHIVE=/lfs-sources && ./lfs -G -M
5.設定LFS機器環境與文檔
(1)重mount dev(很重要,關係到後面grub能不能找到device)
mount --bind /dev /mnt/lfs/dev
(3)設定root password
(4)設定下面文件符合自己需求
/etc/sysconfig/clock
/etc/sysconfig/network
/etc/sysconfig/network-devices/ipconfig.eth0/ipv4
/etc/resolv.conf
/etc/hosts
/etc/fstab
6.安裝kernel
7.安裝grub
這裡要記得把/usr/lib/grub/下面相對的stage1_5檔案copy到/boot/grub再繼續
8.退出chroot環境並umount磁碟
logout umount /mnt/lfs/dev umonut /mnt/lfs
作者: keima 发布时间: 2006-11-16
作者: d00m3d 发布时间: 2006-11-16
我昨天碰到的问题是,漫长的编译后,进入chroot里,发现/sbin下面没有udevstart程序,查看udev-0.96比lfs6.1中的udev-0.56安装的程序变化较大,找到并执行/etc/rc.d/init.d/udev start,/dev下面仍没有设备结点什么的,自然不能grub了
把其他文件编辑好,退出chroot,直接在livecd环境里安装grub,/boot/grub里就只有stage1,stage2,其他stage1_5懒得拷,也成功启动了
作者: augustusqing 发布时间: 2006-11-17
5-9步骤却花了30多分钟。
作者: 飞龙在天 发布时间: 2006-11-23
我用配置是:CPU AMD Sempron(tm) Processor 2800+ 256M内存-8M显存,512M Swap 不编内核。按照 keima的补充步骤 约149m(手工计时)
时间相差挺大的。(机器是清华同方品牌机)
作者: 飞龙在天 发布时间: 2006-11-23
作者: trublemaker 发布时间: 2007-10-22
作者: netdigger 发布时间: 2007-10-22
作者: netdigger
我用来做LFS系统的机器太老了,手工编译要两个星期,用脚本要两天。。
|
作者: shooter 发布时间: 2007-10-22
作者: newren.me 发布时间: 2009-01-03
作者: haday 发布时间: 2009-02-02
作者: cainiao55 发布时间: 2009-02-04
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28