从LFS官方文档构建完整Linux系统

http://www.cnblogs.com/sonofdark/p/4962609.html

这不是新手教程!!!

  • Parallels Desktop (为防止找不到网卡 NIC Type设成Intel(R) PRO/1000 MT)。
  • kali-linux-2.0-amd64(i386).iso (该liveCD编译工具算完整,liveCD启动另外安装bison、gawk,直接apt-get install 安装即可)。需要多次编译的包,先删掉,再重新解压,编译,否则会造成不可扭转的错误。
  • 其它虚拟机硬件按个人需求设置。
  • 宿主系统所需工具检测

library-check.sh

1
2
3
4
5
6
#!/bin/bash
for lib in lib{gmp,mpfr,mpc}.la; do
  echo $lib: $(if find /usr/lib* -name $lib|
               grep -q $lib;then :;else echo not;fi) found
done
unset lib

编译安装 GMP、MPFR、MPC

version-check.sh

 1 #!/bin/bash
2 # Simple script to list version numbers of critical development tools
3
4 export LC_ALL=C
5 bash --version | head -n1 | cut -d" " -f2-4
6 echo "/bin/sh -> `readlink -f /bin/sh`"
7 echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
8 bison --version | head -n1
9 if [ -e /usr/bin/yacc ];
10 then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
11 else echo "yacc not found"; fi
12
13 bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
14 echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
15 diff --version | head -n1
16 find --version | head -n1
17 gawk --version | head -n1
18 if [ -e /usr/bin/awk ];
19 then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
20 else echo "awk not found"; fi
21
22 gcc --version | head -n1
23 ldd --version | head -n1 | cut -d" " -f2- # glibc version
24 grep --version | head -n1
25 gzip --version | head -n1
26 cat /proc/version
27 m4 --version | head -n1
28 make --version | head -n1
29 patch --version | head -n1
30 echo Perl `perl -V:version`
31 sed --version | head -n1
32 tar --version | head -n1
33 echo "Texinfo: `makeinfo --version | head -n1`"
34 xz --version | head -n1
35
36 echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
37 if [ -x dummy ]
38 then echo "gcc compilation OK";
39 else echo "gcc compilation failed"; fi
40 rm -f dummy.c dummy
41
42 echo 'main(){}' > dummy.c && g++ -o dummy dummy.c
43 if [ -x dummy ]
44 then echo "g++ compilation OK";
45 else echo "g++ compilation failed"; fi
46 rm -f dummy.c dummy
  • 构建方法按官方文档一步步来,只是复制粘贴而已。下面说些要注意的地方。(构建完tools,进入chroot后)

  编译安装GCC时,可以不要check,但一定执行以下命令

1 install -v -dm755 /usr/lib/bfd-plugins
2
3 ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.2.0/liblto_plugin.so /usr/lib/bfd-plugins/

  否则后续编译软件的时候出现找不到类库和头文件的问题。如果不放心,每次安装完一个软件ldconfig一下。

  • 安装完软件后(编译内核和安装GRUB前)可以不按照文档的方法配置相关文件。安装下面方法配置基本系统所需的文件,可满足系统的基本运行,和连接网络。
时间设置(Configuring the setclock Script)
cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock
UTC=1
# End /etc/sysconfig/clock
EOF bash /lib/udev/init-net-rules.sh cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \
SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \
SYMLINK+="tvtuner"
EOF cat > /etc/inittab << "EOF"
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc S
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# End /etc/inittab
EOF cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console
FONT="lat2a-16 -m 8859-2"
# End /etc/sysconfig/console
EOF cat > /etc/shells << "EOF"
# Begin /etc/shells
/bin/sh
/bin/bash
# End /etc/shells
EOF 设置bash下的键盘功能键设置
cat > /etc/inputrc << "EOF"
set horizontal-scroll-mode Off
set meta-flag On
set input-meta On
set convert-meta Off
set output-meta On
set bell-style none
"\eOd": backward-word
"\eOc": forward-word
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\eOH": beginning-of-line
"\eOF": end-of-line
"\e[H": beginning-of-line
"\e[F": end-of-line
EOF 设置Bash Shell启动文件(The Bash Shell Startup Files)
cat > /etc/profile << "EOF"
# Begin /etc/profile
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_NUMERIC=en_US.UTF-8
export LC_TIME=en_US.UTF-8
export LC_MONETARY=en_US.UTF-8
export LC_PAPER=en_US.UTF-8
export LC_IDENTIFICATION=en_US.UTF-8
export LC_NAME=en_US.UTF-8
export LC_ADDRESS=en_US.UTF-8
export LC_TELEPHONE=en_US.UTF-8
export LC_MEASUREMENT=en_US.UTF-8
export INPUTRC=/etc/inputrc
alias ls="ls --color"
export PS1='\u:\w\$ '
# End /etc/profile
EOF 设置本地网络名
echo "HOSTNAME=SCoreLFS" > /etc/sysconfig/network 设置hosts文件
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)
127.0.0.1 SCoreLFS localhost
# End /etc/hosts (no network card version)
EOF 设置网络的静态地址
cd /etc/sysconfig/
 cat > ifconfig.eth0 << "EOF"
ONBOOT=yes

IFACE=eth0
SERVICE=ipv4-static
IP=10.211.55.49
GATEWAY=10.211.55.1
BROADCAST=10.211.55.255

EOF 设置DNS
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
nameserver 10.211.55.1
nameserver 8.8.8.8
# End /etc/resolv.conf
EOF 建立fstab文件
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/sda1 / ext4 defaults 1 1
/dev/sda2 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 install -v -m755 -d /etc/modprobe.d cat > /etc/modprobe.d/usb.conf << "EOF" # Begin /etc/modprobe.d/usb.conf
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
# End /etc/modprobe.d/usb.conf
EOF
  • 编译内核时选择下面基本的项
-> Device Drivers
-> SCSI device support
- > SCSI disk support -> Device Drivers
-> SCSI device support
-> SCSI low-level drivers -> BusLogic SCSI support -> Device Drivers
-> Fusion MPT device support
-> Fusion MPT (base + ScsiHost) drivers -> Device Drivers
-> Networking support
-> Ethernet (10 or 100Mbit)
-> AMD PCnet32 PCI support -> Device Drivers
-> USB support
-> Support for Host-side USB
-> EHCI HCD (USB 2.0) support
-> UHCI HCD (most Intel and VIA) support -> USB Mass Storage support E100/E1000、ext4 相关项
  • logout到宿主系统前记得passwd设置一下root密码。

为了后续安装软件和使用方便,建议根据blfs文档安装openssh、openssl和wget。至于ssh的配置可以按照下面方法,可以解决root登录和权限问题

1 vim /etc/ssh/sshd_config 添加下面代码
2
3 PasswordAuthentication yes
4 PermitRootLogin yes
  • 问题:安装完系统虚拟机的磁盘占空间过大,达10几G。而在LFS系统内查询的结果,加swap分区也不过2G。而且无法释放。这个问题很困惑,找了很久没找到方法。如果谁知道的,在评论里面回复。谢谢!!!

http://www.linuxfromscratch.org/livecd/download.html

http://wiki.linuxfromscratch.org/lfs/browser#trunk

http://www.linuxfromscratch.org/livecd/download.html

http://ftp.osuosl.org/pub/lfs-livecd/

http://ftp.osuosl.org/pub/lfs/lfs-packages/

http://ftp.osuosl.org/pub/clfs/clfs-packages/

http://ftp.osuosl.org/pub/blfs/svn/

从LFS官方文档构建完整Linux系统的更多相关文章

  1. Dapr 官方文档中文翻译 v1.5 版本正式发布

    作者:敖小剑 - Dapr Approver 经过 Dapr 中国社区十余位贡献者一个多月的努力,Dapr 官方文档中文翻译 v1.5 版本完成翻译和审校,正式发布并上线 Dapr 官网. 访问方式 ...

  2. 一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档

    接触Power BI的时间也只有几个月,虽然花的时间不多,但通过各种渠道了解收集,谈不上精通,但对一些重要概念和细节还是有所了解.在整理官方文档的过程中,也熟悉和了解了很多概念.所以从前到后把微软官方 ...

  3. 为开源社区尽一份力,翻译RocketMQ官方文档

    正如在上一篇文章中写道:"据我所知,现在RocketMQ还没有中文文档.我打算自己试着在github上开一个项目,自行翻译."我这几天抽空翻译了文档的前3个小节,发现翻译真的不是一 ...

  4. hbase官方文档(转)

    FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Soft ...

  5. gRPC官方文档(概览)

    文章来自gRPC 官方文档中文版 概览 开始 欢迎进入 gRPC 的开发文档,gRPC 一开始由 google 开发,是一款语言中立.平台中立.开源的远程过程调用(RPC)系统. 本文档通过快速概述和 ...

  6. HBase官方文档

    HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3. ...

  7. 【苦读官方文档】2.Android应用程序基本原理概述

    官方文档原文地址 应用程序原理 Android应用程序是通过Java编程语言来写.Android软件开发工具把你的代码和其它数据.资源文件一起编译.打包成一个APK文件,这个文档以.apk为后缀,保存 ...

  8. Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

    内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...

  9. TestNG官方文档中文版(2)-annotation(转)

    1. 介绍    TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的 ...

随机推荐

  1. opencv 和 parfor

    一次遇到两个不熟悉的,因此在一起记一下. OpenCV的全称是:Open Source Computer Vision Library. OpenCv是一个基于(开源)发行的跨平台计算机视觉库,可以运 ...

  2. RT-thread内核之空闲线程

    空闲线程是系统线程中一个比较特殊的线程,它具有最低的优先级,当系统中无其他线程可运行时,调度器将调度到空闲线程.空闲线程通常是一个死循环,永远不被挂起.RT-Thread实时操作系统为空闲线程提供了钩 ...

  3. 在上传文件时候 request.setCharset对文件名有效 对普通文本域无效 需要通过手动转换编码方式编码

    在上传文件时候 request.setCharset对文件名有效 对普通文本域无效 需要通过手动转换编码方式编码

  4. (转)java +libsvm 安装与测试:

    libsvm 用SVM实现简单线性分类  (转自:http://www.cnblogs.com/freedomshe/archive/2012/10/09/2717356.html) 0. 下载lib ...

  5. [WC2008]游览计划 状压DP,斯坦纳树

    ---题面--- 题解: 这是一道斯坦纳树的题,用状压+spfa来解决 什么是斯坦纳树? 一开始还以为是数据结构来着,其实跟最小生成树很像,大致就是最小生成树只能在各个点之间直接相连,而斯坦纳树则允许 ...

  6. python安装方法- 3.6.3版本

    一. 官网下载安装包: 官网网址:https://www.python.org/ 我下载的是3.6.3版本,如下图:  二. 安装安装包, 1. 直接双击运行  2. 选择Customize inst ...

  7. Java异常捕捉

    相信你在处理异常的时候不是每次都把它 throws 掉就完事了,很多时候异常是需要我们自己来 catch 并针对所抛出的 Exception 做一些后续的处理工作. 直接上代码,先贴下面测试需要调用的 ...

  8. c#中文件流的读写

    文件流读入:第一static void Main(string[] args) { //C#文件流写文件,默认追加FileMode.Append string msg = "okffffff ...

  9. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)

    (其实今天好热啊? 题目大意:插入,删除,k小,前驱后继,数的排名. splay和treap裸题...过几天补个treap的 splay: #include<iostream> #incl ...

  10. CSS设计一个三列布局的页面

    探讨这种布局是因为最近对话框组件以及信息系统B/S界面布局的需要.无论是什么,我们在写CSS之前首先引入reset.css,我使用的是淘宝的reset. 01 /* 02 KISSY CSS Rese ...