LFS笔记 00 准备环境

最近没什么事,再玩一次LFS吧,在这里将具体的步骤记录下来,分享给你们。 linux


先介绍一下个人环境,Ubuntu 13.04 Desktop amd64 shell

虚拟机:VirtualBox Ubuntu 12.04 Server i386 bash

LFS版本:7.3 框架

文档下载地址:http://www.linuxfromscratch.org/lfs/downloads/7.3/ ssh

package下载地址:ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.3.tar 工具


0.安装Ubuntu 12.04 Server i386 ui

Desktop对于LFS的制做来讲没有什么用,如何安装不说啦,网上都有。 spa

注意两点: .net

安装i386,不是amd64,不然会有一些麻烦。 code

格式化磁盘时不要使用LVM分区,使用LVM也会形成一些麻烦。


1.配置SSH

安装openssh server,注意不是Java的SSH框架哦。使用它能够很方便的登陆到终端上,强烈推荐。

sudo apt-get install openssh-server

客户端可使用Putty,具体网上都有,不写了。


2. 安装必要软件包

sudo apt-get install build-essential gawk bison texinfo

可能还会缺乏m4,patch两个包,若是没有的话也装上。


sudo apt-get install m4 patch


3.检查系统

生成脚本version-check.sh

cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools

export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
  then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
  else echo "yacc not found"; fi

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
if [ -e /usr/bin/awk ];
  then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
  else echo "awk not found"; fi

gcc --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
echo "Texinfo: `makeinfo --version | head -n1`"
xz --version | head -n1

echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
if [ -x dummy ]
  then echo "gcc compilation OK";
  else echo "gcc compilation failed"; fi
rm -f dummy.c dummy
EOF

执行:


bash version-check.sh


4.分区

建立了两块虚拟硬盘,/dev/sda用来安装宿主系统,/dev/sdb用来编译安装LFS。

给/dev/sdb分区,我使用cfdisk工具:


sudo apt-get install m4 patch


/dev/sdb1 交换分区

/dev/sdb2 目标系统根目录

如图:


5.格式化

格式化主分区/dev/sdb2为ext3:


sudo mkfs.ext3 /dev/sdb2


格式化交换分区/dev/sdb1:


sudo mkswap /dev/sdb1


6.使用root账号

受不了sudo了,直接用root吧~

sudo passwd root
根据提示输入root密码。

切换到root:

sudo passwd root


7.挂载新分区

设置环境变量:

export LFS=/mnt/lfs
建立文件夹并挂载:
mkdir -pv $LFS
mount -v -t ext3 /dev/sdb2 $LFS

能够检查一下当前的磁盘挂载状况,应该会多出一个/dev/sdb2


df -h


8.下载源代码包

wget ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.3.tar

建立文件夹并设置权限:

mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources

网速快的直接下载之: 网速通常的人也能够用迅雷等工具下载后scp到宿主机器上。

下载完成后,解压,验证md5 hash:

tar -vxf lfs-packages-7.3.tar
mv -v 7.3/* $LFS/sources
pushd $LFS/sources
md5sum -c md5sums
popd


9.继续

建立tools文件夹并作软连接:

mkdir -v $LFS/tools
ln -sv $LFS/tools /
添加lfs用户:
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
设置密码:
passwd lfs
获取权限:
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
切换到lfs用户:
su - lfs


9. 准备环境

建立.bash_profile

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

建立.bashrc

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF
生效:

source ~/.bash_profile

并行编译(可选):

若是双核CPU可使用'-j 2',四核使用‘-j 4’,其它相似。

export MAKEFLAGS='-j 2'



环境准备完成!

相关文章
相关标签/搜索