LFS笔记 00 准备环境

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


先介绍一下我的环境,Ubuntu 13.04 Desktop amd64

虚拟机:VirtualBox Ubuntu 12.04 Server i386

LFS版本:7.3

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

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


0.安装Ubuntu 12.04 Server i386

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

注意两点:

安装i386,不是amd64,否则会有一些麻烦。

格式化磁盘时不要使用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 目标系统根目录

如图:

LFS笔记 00 准备环境_第1张图片


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'



环境准备完成!

你可能感兴趣的:(ubuntu,lfs)