最近沒什麼事,再玩一次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'
環境準備完成!