之前写过一篇文章《LFS6.3半自动化脚本》(),但是中间需要输入命令,后来发现ALFS项目本身就可以做这项工作的,只需要一开始手动输入一些命令,和结束的时候手动输入一些命令,也算是一个自动化的工具了。关于ALFS的文章有:echo的《使用jhalfs2.1快速建立LFS》以及《使用jhalfs创建LFS完整过程(LFS系列一)》
http://blog.chinaunix.net/u1/49674/showart_399860.html,都是使用jhalfs-2.1,对于最新的jhalfs-2.3.1却没有介绍,本文对前两篇文章做了一些修改,使得更加快速的创建LFS。
准备工作:
1.在windows里面装个SecureCRT,我的是Version 6.1.0 (build 349) ,以便在windows里面用它来登陆LiveCD中的sshd服务,这样子就可以copy&paste了。
2.在windows里添加共享目录,名称为share
3.下载本文附件中的两个脚本和《第二版 手把手教你如何建立自己的Linux系统》中提到的中文utf8-kernel-2.6.22.5-core-1.patch utf8-kernel-2.6.22.5-fonts-1.patch(下不到 可以从这里下载)下载解压后放到上面建的windows共享目录share中
4.在windows里面装个UltraEdit,看脚本和日志用
5.关于脚本的输出日志,我在第1个脚本里面加入{要执行的脚本} 1>> alfs6.3_01.log 2>> alfs6.3_01.log,来记录脚本输出
6.脚本执行流程和《第二版 手把手教你如何建立自己的Linux系统》一样,建议先看一下脚本,大体对照一下
7.建议:在虚拟机设置硬盘的时候3G就够了,最好当时分配空间,这样子加快速度
8.lfslivecd-x86-6.3-r2160.iso
在我的机子上执行时间,做个参考:
20:40 start,然后配置jhalfs,接着执行jhalfs的make所花费时间为:
real 144m46.347s
user 82m22.351s
sys 48m1.189s
23:04 jhalfs end
23:16 开始配置内核
23:38 编译完
总共耗时3.0小时左右吧.比我的半自动化流程要快半个小时,下面开始:
#在虚拟机里启动sshd服务,这里一定要设置密码,否则SecureCRT登陆不上去
passwd root
/etc/rc.d/init.d/sshd start
#然后在windows里面使用SecureCRT,copy&paste如下命令
cfdisk
mkswap /dev/hda1
mkfs.xfs -f /dev/hda2
swapon /dev/hda1
#挂载硬盘
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
chmod -v a+wt /mnt/lfs
chown -v jhalfs /mnt/lfs
#转到jhalfs
passwd jhalfs
su jhalfs
cd
cd jhalfs-2.3.1/
time make
#设置4项就可以了,其它都用默认
--- General Settings --->常规设置
1.(/mnt/build_dir) Build Directory 建立的LFS位置,这里设置/mnt/lfs
--- Build Settings --->
2.语言设置$LANG 为zh_CN.UTF-8
3.[*] Run testsuites 不选
--- Advanced Features --->高级设置
4.[*] Create SBU and disk usage report 不选
...
#jhalfs完成,大概需要2个小时24分钟
exit
mount --bind /dev /mnt/lfs/dev
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
#mount –vt devpts devpts $LFS/dev/pts
#mount –vt tmpfs shm $LFS/dev/shm
#这里我写了两个脚本,方便设置,以及下载两个中文补丁
mkdir -v $LFS/mylfsshell
mount -t smbfs -o username=***,password=*** //192.168.187.1/share $LFS/mylfsshell/
chmod 777 $LFS/mylfsshell/
chmod 777 $LFS/mylfsshell/*.sh
echo "start:为最后的设置进入chroot环境-------------------------------"
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
cp /mylfsshell/utf8-kernel-2.6.22.5-core-1.patch /sources
cp /mylfsshell/utf8-kernel-2.6.22.5-fonts-1.patch /sources
#脚本alfs_01.sh主要设置 /etc/fstab, /etc/hosts, /etc/sysconfig/clock,/etc/sysconfig/console,/etc/sysconfig/network, /etc/sysconfig//network-devices/ifconfig.eth0/ipv4
sh /mylfsshell/alfs_01.sh
#接下来和《第二版 手把手...》中一模一样了,最后执行alfs_02.sh
mv /alfs6.3_01.log /mylfsshell/
echo "start:安装内核Linux-2.6.22.5-------------------------------"
cd /sources
export LFS=/sources
tar xvf $LFS/linux-2.6.22.5.tar.bz2
cd linux-2.6.22.5
#如果之前下载了UTF-8编码文字显示补丁,那么这里可以将这两个补丁打入内核
patch -Np1 -i $LFS/utf8-kernel-2.6.22.5-core-1.patch
patch -Np1 -i $LFS/utf8-kernel-2.6.22.5-fonts-1.patch
make mrproper
make menuconfig
make
make modules_install
cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5
cp -v System.map /boot/System.map-2.6.22.5
cp -v .config /boot/config-2.6.22.5
install -d /usr/share/doc/linux-2.6.22.5
cp -r Documentation/* /usr/share/doc/linux-2.6.22.5
grub
root (hd0,1)
setup (hd0)
quit
sh /mylfsshell/alfs_02.sh
#设置一下密码
passwd root
logout
#大功告成,退出重启,ok了
转载自:
http://blogold.chinaunix.net/u2/81513/showart.php?id=1276389