前天看了一些关于《编译自己的linux系统》的文章,也照着做了一下,发现很好玩。
我大概整理了一些我的安装过程(可惜当时没抓图),给大家分享一下,欢迎指正!
啥也不说了,开始吧,该明白的以后自然会明白!
声明:以下内容大部分收集自网络,有不明白的请查看原作者的详细说明
参考网址:
http://www.linuxfromscratch.org/(LFS官方网站)
http://lamp.linux.gov.cn/Linux/LFS-6.2/(中文翻译)
http://www.linuxsir.org/bbs/thread322894.html
LFS6.3自动化脚本-之ALFS(jhalfs-2.3.1)(原创)
http://blog.chinaunix.net/u2/81513/showart.php?id=1276389
LFS6.3完成后继续安装openssh和samba client
http://linux.chinaunix.net/techdoc/system/2008/10/13/1038096.shtml
先大致扫一遍前面的文章,
准备工作:
1)Windows下准备大概20G或更多的空间[E:],准备开始linux生涯
2)Windows下建立共享目录 [E:\win-share],允许修改
3)下载Linux资源
lfslivecd-x86-6.3-r2160.iso E:\linux-lfs
utf8-kernel-2.6.22.5-core-1.patch.bz2 E:\win-share
utf8-kernel-2.6.22.5-fonts-1.patch.bz2 E:\win-share
openssh-4.7p1.tar.gz E:\win-share
openssl-0.9.8g.tar.gz E:\win-share
openssl-0.9.8g-fix_manpages-1.patch E:\win-share
blfs-bootscripts-20080816.tar.bz2 E:\win-share
参考下载地址
http://www.linuxfromscratch.org/livecd/download.html(页面)
http://zdbr.net.cn/download/utf8-kernel-2.6.22.5-core-1.patch.bz2
http://zdbr.net.cn/download/utf8-kernel-2.6.22.5-fonts-1.patch.bz2
http://sunsite.ualberta.ca/pub/OpenBSD/OpenSSH/portable/openssh-4.7p1.tar.gz
http://www.openssl.org/source/openssl-0.9.8g.tar.gz
http://www.linuxfromscratch.org/patches/blfs/6.3/openssl-0.9.8g-fix_manpages-1.patch
http://www.linuxfromscratch.org/blfs/download.html(页面)
3)下载脚本文件(可选,没有也行,下载后用UE修改其中的IP等相关项,DOS格式)
alfs_01.sh(可选) E:\win-share
alfs_02.sh(可选) E:\win-share
openssh-install.sh(可选) E:\win-share
参考下载地址
http://blog.chinaunix.net/u2/81513/showart.php?id=1276389(附件:目标另存为)
http://linux.chinaunix.net/techdoc/system/2008/10/13/1038096.shtml(附件:目标另存为)
解压后用UltraEdit将01.sh中
echo "--------------------start:Samba-3.0.30 --------"
至倒数第六行的 EOF 之间内容用注释或者删除
文件另存为 E:\win-share\openssh-install.sh
3)下载Windows软件
vmware 6.5 E:\(建议安装目录)
SecureCRT 6.2 E:\(建议安装目录)
SecureFX 6.2 E:\(建议安装目录)
UltraEdit (这个都有吧,不多说了)
--------------------------------------------------------------------
第一步:
安装 SecureCRT 6.2
安装 vmware
1)(可选)
Edit->Prefrences->
->Workspase->Default location(可选)
->Keep vMs running after Workstation closes
->Save screenshots to(可选)
2)Edit->Virtual Network Editor
->Host Virtual Adapters ->Add-> VMnet1 ->OK->应用
->Host Virtual Network Mapping ->VMnet1->">"(button)->
subnet->192.168.0.0->OK->应用
->确定
3)File->Virtual Machine->Custom->Next
Workstation 6.5->Next
Installer disc image file(iso)->Browse->
[E:\linux-lfs\lfslivecd-x86-6.3-r2160.iso] ->Next
Linux->Other Linux 2.6.x kernel-> Next
[lfslivecd-x86-6.3-r2160] -> [E:\linux-lfs] (以后可以改) -> Next
[Two or One]->Next
[796]M->Next
Use host-only networking->Next
BusLogic->Next
Create a new virtual disk -> Next
IDE->Next
Allocate all disk space now->Next
...->Next->Finish
---------------------------------------------------------------------
第二步:Power on 一路默认回车,到root [ ~ ]#下
更改root密码,临时供SecureCRT登录用
root [ ~ ]# passwd root
root [ ~ ]# net-setup->eth0<Enter>->static<Enter>->
[192.168.0.76]->24->[192.168.0.255]->OK
root [ ~ ]# /etc/rc.d/init.d/sshd start
最小化vmware[退出光标用Ctrl+Alt],打开SecureCRT,
Connect->SSH2->[192.168.0.76]->open in a tab->Connect
如果遇到显示乱码情况,请尝试
Options->Session Options->Appearance
->Character encoding(UTF-8)
看到 linux提示符 root [ ~ ]#
然后在windows里面使用SecureCRT,copy&paste(Ctrl+Shift+V)如下命令
说明:可打开SecureCRT的View->ChatWindows在里边粘贴(Ctrl+V)后回车)
如果行尾有连接符 && 或者 \ ,可作为整体copy&paste,为省事我加了好多&&
cfdisk
[New] hda1 Primary linux 512M
[New] hda2 Primary linux ***M [Write]->Quit
mkswap /dev/hda1 &&
mkfs.xfs -f /dev/hda2
激活交换分区并挂载硬盘
swapon /dev/hda1 &&
export LFS=/mnt/build_dir &&
mkdir -pv $LFS &&
mount /dev/hda2 $LFS &&
chmod -v a+wt $LFS &&
chown -v jhalfs $LFS &&
passwd jhalfs
(TODO:改成啥???我改的jhalfs)
转到用户jhalfs
su jhalfs
cd &&
cd jhalfs-2.3.1/ &&
time make
--- Build Settings --->
[ ] Run testsuites
[*] Create installed files logs
--- Advanced Features --->
[ ] Create SBU and disk usage report
...
jhalfs完成,大概需要2到4个小时
---------------------------------------------------------------------
jhalfs [ ~/jhalfs-2.3.1 ]$
退出用户jhalfs
exit
#root [ ~ ]# echo $LFS
#/mnt/build_dir
mount --bind /dev $LFS/dev &&
mount -vt proc proc $LFS/proc &&
mount -vt sysfs sysfs $LFS/sys &&
mkdir -v $LFS/win-share
挂载 [E:\win-share] 目录,虚拟网卡VMnet1-IP[192.168.0.1],请替换PC用户名和密码
mount -t smbfs -o username=[***],password=[***] //192.168.0.1/win-share $LFS/win-share/
#28604: session request to 192.168.0.1 failed (Called name not present)
#28604: session request to 192 failed (Called name not present)
chmod 777 $LFS/win-share/ &&
chmod 777 $LFS/win-share/*.sh
为最后的设置进入chroot环境
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
root:/#
<----分步 [下载了alfs_01.sh的]-----开始--->##
--脚本alfs_01.sh主要设置 /etc/fstab, /etc/hosts, /etc/sysconfig/clock,
-------/etc/sysconfig/console,/etc/sysconfig/network,
-------/etc/sysconfig//network-devices/ifconfig.eth0/ipv4
sh /win-share/alfs_01.sh
mv /*.log /win-share/
可在 E:\win-share 查看输出结果
</----分步 [下载了alfs_01.sh的]----完成--->##
<----分步 [没有alfs_01.sh的]------开始---->
cat > /etc/profile << "EOF"
# Begin /etc/profile
export LANG=zh_CN.UTF-8
export INPUTRC=/etc/inputrc
alias ls="ls --color"
export PS1='\u:\w\$ '
# End /etc/profile
EOF
#
echo "HOSTNAME=talon" > /etc/sysconfig/network
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (network card version)
127.0.0.1 localhost
192.168.0.76 talon
# End /etc/hosts (network card version)
EOF
#
cat > /etc/sysconfig/network-devices/ifconfig.eth0/ipv4 << "EOF"
ONBOOT=yes
SERVICE=ipv4-static
IP=192.168.0.76
GATEWAY=192.168.0.1
PREFIX=24
BROADCAST=192.168.0.255
EOF
#
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/hda2 / xfs defaults 1 1
/dev/hda1 swap swap pri=1 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
# End /etc/fstab
EOF
</----分步 [没有alfs_01.sh的]------完成---->##
-----安装openSSH--------------------------
sh /win-share/openssh-install.sh
mv /*.log /win-share/
<----分步 [没有openssh-install.sh的]---开始--->
cd /sources
#
echo "----------------------start:OpenSSL-0.9.8g--------------------"
tar xvf openssl-0.9.8g.tar.gz
cd openssl-0.9.8g
patch -Np1 -i ../openssl-0.9.8g-fix_manpages-1.patch
./config --openssldir=/etc/ssl --prefix=/usr shared
make MANDIR=/usr/share/man
make MANDIR=/usr/share/man install
cp -v -r certs /etc/ssl
install -v -d -m755 /usr/share/doc/openssl-0.9.8g
cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
/usr/share/doc/openssl-0.9.8g
cd ..
rm -rf openssl-0.9.8g
#
echo "--------------------start:OpenSSH-4.7p1 ---------------------"
tar xvf openssh-4.7p1.tar.gz
cd openssh-4.7p1
install -v -m700 -d /var/lib/sshd &&
chown -v root:sys /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd \
-s /bin/false -u 50 sshd
sed -i 's@-lcrypto@/usr/lib/libcrypto.a -ldl@' configure
sed -i 's@ -ldes@@' configure &&
./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd \
--libexecdir=/usr/lib/openssh --with-md5-passwords \
--with-privsep-path=/var/lib/sshd \
--with-xauth=/usr/bin/xauth &&
make
rm /usr/bin/scp &&
if test -f /usr/bin/scp-bak
then
rm /usr/bin/scp-bak
fi
make install
install -v -m755 -d /usr/share/doc/openssh-4.7p1
install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
/usr/share/doc/openssh-4.7p1
cd ..
rm -rf openssh-4.7p1
</----分步 [没有openssh-install.sh的]---完成--->
-----安装blfs-bootscripts(开机自动启动ssh)---
cp /win-share/blfs-bootscripts-20080816.tar.bz2 /sources
cd /sources
tar xvf blfs-bootscripts-20080816.tar.bz2
cd blfs-bootscripts-20080816
make install-sshd
-----编译linux内核------------------------
cd /sources
export LFS=/sources
tar xvf $LFS/linux-2.6.22.5.tar.bz2
cd linux-2.6.22.5
#UTF-8编码文字显示补丁
cp /win-share/utf8-kernel-2.6.22.5-core-1.patch $LFS
cp /win-share/utf8-kernel-2.6.22.5-fonts-1.patch $LFS
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
--1)支持BusLogic的SCSI磁盘
-----Device Drivers->SCSI device support->SCSI low-level drivers->
--------<*>BusLogic SCSI support
--2)支持网络
-----Device Drivers->Network device support->Ethernet (10 or 100Mbit)->
--------<M>AMD PCnet32 PCI support
--3)显示UTF-8编码文字
-----Device Drivers->Graphics support->
--------<*>Support for frame buffer devices
--------[*]VESA VGA graphics supports
--------Console display driver support->
--------<*>Framebuffer Console support
--------[*]Select compiled-in fonts
--------[*]VGA 8x16 font
--4)支持声卡
-----Device Drivers->Sound->[M]Advanced Linux Sound Architecture->PCI devices->
--------<M>(Creative) Ensoniq AudioPCI 1371/1373
--5)文件系统XFS
-----File Systems->XFS support->
--------<*>XFS filesystem support
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 /win-share/alfs_02.sh
<----分步 [没有alfs_02.sh的]---开始----->
cat > /boot/grub/menu.lst << "EOF"
# Begin /boot/grub/menu.lst
# By default boot the first menu entry.
default 0
# Allow 3 seconds before booting the default.
timeout 3
# Use prettier colors.
color green/black light-green/black
# The first entry is for LFS.
title Talon LFS 6.3
root (hd0,1)
kernel /boot/lfskernel-2.6.22.5 root=/dev/hda2
EOF
#
echo "start:Link menu.lst To /etc---------------"
mkdir -v /etc/grub
ln -sv /boot/grub/menu.lst /etc/grub
#
</----分步 [没有alfs_02.sh的]---完成----->
设置一下密码(供今后登录用,请牢记)
passwd root
root:/# logout
root [ ~ ]# reboot
到 vmware 回车等重启完成
SecureCRT重新连接看看,Ok了是吧?
在vmware中确认选了
Edit->Preferences->Keep vMs running after Workstation closes
关闭Vmware(我不习惯Ctrl+Alt),感谢VMware在后台给我们静静守候!
想传文件?安装SecureFX,建FSTP,[192.168.0.76]
开始玩吧,Good Luck!