Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159320
  • 博文数量: 32
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-07 14:39
个人简介

微信hillpigt

文章分类
文章存档

2011年(1)

2010年(9)

2009年(8)

2008年(14)

我的朋友

分类: LINUX

2008-10-09 09:24:20

LFS6.3 2160半自动化脚本
之前看过 孙海勇 《第二版 手把手教你如何建立自己的Linux系统》http://blog.chinaunix.net/u/13265/showart.php?id=477122, 由于第5章和第6章很容易出错,为了以后再编LFS方便,萌生了自己也写个shell脚本试试,以给想自己写脚本的lfsir多个参考,另外把脚本执行的 日志也传上来,给第一次编LFS的sir们做个参照。结果做了一半的时候发现早就有sir做了,如 wzl7222504 的《LFS6.3自制脚本视频攻略》,但是自己想多学习学习,然后就按照原来的思路和参照wzl7222504 的文章,自己做了一个。
说明:只所以叫半自动是因为有些命令不能在脚本里面执行,如第六章中,装完Bash-3.2后需要执行的exec /bin/bash --login +h命令,就得手动输入,这样子就不能叫做全自动了。过一段时间分析一下ALFS,再做个全自动的发过来。
准备工作:
1.在windows里面装个SecureCRT,我的是Version 6.1.0 (build 349) ,以便在windows里面用它来登陆LiveCD中的sshd服务,这样子就可以copy&paste了。
2.在windows里添加共享目录,名称为share,下载脚本解压后放到里面,以便linux通过smbfs访问这个目录
3.建议:在虚拟机设置硬盘的时候3G就够了,最好当时分配空间,这样子加快速度
4.在windows里面装个UltraEdit,看脚本和日志用,
5.关于脚本的输出日志,我在每个脚本里面加入{要执行的脚本} 1>> mylfs6.3_03.log 2>> mylfs6.3_03.log,来记录脚本输出
5.耗时间的主要在03.sh和07.sh,大约都需要70多分钟,07.sh和08.sh合起来就是第6章的内容了
6.脚本执行流程和《第二版 手把手教你如何建立自己的Linux系统》一样,建议先看一下脚本,大体对照一下
7.《第二版 手把手教你如何建立自己的Linux系统》中提到的中文utf8-kernel-2.6.22.5-core-1.patch utf8-kernel-2.6.22.5-fonts-1.patch 下载解压后放到上面建的windows共享目录share中
8.lfslivecd-x86-6.3-r2160.iso

在我的机子上执行时间,做个参考:
14:53 start:
14:53-14:55 2分钟 01.sh,02.sh,然后进入03.sh,其中01.sh要求创建的密码是用户lfs的
14:55-16:01 73分钟,执行完03.sh
16:13-16:14 1分钟 04.sh,05.sh,然后进入06.sh
16:14-17:25 71分钟,执行完06.sh,进入07.sh
17:25-17:49 24分钟,执行完07.sh,中间要输入root新设置的密码,我耽误了一会,实际执行时间更少,进入08.sh
17:49-17:11 22分钟,主要是编译linux2.6内核,我中间也浪费了些时间
总共耗时3.5小时左右吧.下面开始:





#在虚拟机里启动sshd服务,这里一定要设置密码,否则SecureCRT登陆不上去
passwd root
/etc/rc.d/init.d/sshd start

#然后在windows里面使用SecureCRT,copy&paste如下命令
cfdisk
mkswap /dev/hda1
mkfs.xfs -f /dev/hda2
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
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
sh $LFS/mylfsshell/01.sh

#01.sh中间需要输入lfs密码,很快就会执行完,在01.sh的脚本} 1>/dev/null 2>/dev/null之后的命令也就是下面的命令,所以,你也可以直接用UltraEdit打开所有的脚本,然后到每个脚本最后就是下面执行的命 令,注意多行注释我采用# :< sh /mnt/lfs/mylfsshell/02.sh


#02.sh也很快过去,下面进入70多分钟的03.sh注意:我的本是T61,不同的机器跑出来的时间可能不一样
source ~/.bash_profile
sh /mnt/lfs/mylfsshell/03.sh

#下面进入04.sh,很快就执行完04.sh
strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*
rm -rf /tools/{info,man}
exit
export LFS=/mnt/lfs
cp /home/lfs/mylfs6.3_03.log /mnt/lfs/mylfsshell
sh /mnt/lfs/mylfsshell/04.sh

#然后进入05.sh,很快就执行完05.sh
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h
sh /mylfsshell/05.sh

#下面进入06.sh,这里就是第6章的正式安装软件了,06.sh执行完也大概需要70多分钟
exec /tools/bin/bash --login +h
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chgrp -v utmp /var/run/utmp /var/log/lastlog
chmod -v 664 /var/run/utmp /var/log/lastlog
sh /mylfsshell/06.sh

#下面进入07.sh,中间需要执行一句exec /bin/bash --login +h,要不然06和07.sh可以合并成一个,07.sh总共大约需要20多分钟,中间执行到10分钟左右的时候需要输入root密码
exec /bin/bash --login +h
cp mylfs6.3_06.log /mylfsshell
sh /mylfsshell/07.sh

#下面为进入08.sh准备,其实08和09.sh都可以手动输入的,我这里也做成sh,是想尽可能的少手动输入,其中两个patch的是《第二版 手把手教你如何建立自己的Linux系统》中,提到的中文patch
cp mylfs6.3_07.log /mylfsshell
logout
echo "start:为Strip而进入chroot环境:-------------------------------"
chroot $LFS /tools/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/tools/bin/bash --login
echo "start:Strip:-------------------------------"
/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
-exec /tools/bin/strip --strip-debug '{}' ';'
echo "start:退出chroot环境-------------------------------"
logout
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
sh /mylfsshell/08.sh

#接下来和《第二版 手把手...》中一模一样了,最后执行09.sh
cp mylfs6.3_08.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/09.sh

#大功告成,退出重启,ok了
logout


最后是三个shell脚本输出日志,安装的时候做个参考,我每项安装都用“start:”类似字样,大家可以用它作为关键词搜索查看




中间过程截几张屏:




加我私人微信,交流技术。



------------------------
上传的附件
文件类型: zip (13.4 KB, 8 次查看)
阅读(2767) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-07-18 22:03:22

Sorry, I cant input Chinese now, my OS is English. Thanks very much, I have done this procedure very well as the instruction from you. A basic customized live cd have been generated. You've done me a great favor. Thank you