重走LFS之路:(三) 磁盘初始化与源码准备

重走LFS之路:(三) 磁盘初始化与源码准备

当硬件部分都准备就绪,就可以开始动手来准备软件了。不过在开始编译之前需要先做一件事,就像Windows中说的要格式化分区。虽然我真心不喜欢用Linux和Windows比,因为那样着实像是在英语和汉语之间来回翻译,想想就知道印欧语系和汉藏语系两门语言跨语系表述是多别扭的事。

(题图来自: techradar.com)

在Linux中,我们把这个操作叫做建立文件系统。Linux使用的文件系统是ext系列和swap,其中swap只用作交换分区的格式,所谓交换分区可以理解为虚拟内存。

此时我们已经建立了三个分区/dev/sdb1 /dev/sdb2 /dev/sdb5,其中/dev/sdb1用作引导分区,我们将其文件系统建立为ext2,虽然实测ext4也没问题,但是可能是为了兼容一些老的东西吧,习惯上引导分区还是用ext2。作为swap分区的/dev/sdb2单独有分区格式,就叫做swap。剩下的/dev/sdb5使用ext4就好了。


  1. sudo mkfs -v -t ext2 /dev/sdb1
  2. sudo mkswap /dev/sdb2
  3. sudo mkfs -v -t ext4 /dev/sdb5

1-mkfs&mkswap

建立文件系统后,就可以挂载,然后使用这块空间了。不过在此之前为了方便,我们来加个环境变量


  1. export LFS=/mnt/lfs

从此以后,我们就以$LFS来作为lfs工程的存储根目录,只不过需要记得,每次宿主系统重启之后,都需要重新export和mount,如果嫌这样太麻烦,可以把环境变量定义和分区挂载写入用户配置文件~/.bashrc

建立$LFS,用到p和v两个选项,p是parents,如果父目录不存在就一路新建,v会创建成功后回显信息。


  1. sudo mkdir -pv $LFS

此时回显了一条信息


  1. mkdir: created directory `/mnt/lfs’

当看到这条回显信息时证明已经新建成功,接下来我们把lfs工程的主要存储分区/dev/sdb5挂载到这个目录上


  1. sudo mount -v -t ext4 /dev/sdb5 $LFS

其中-v选项依然是操作成功后回显信息,而值得注意的是-t选项,由它来指定需要挂载的是什么文件系统的分区,在稍微老一点的linux中挂载NTFS时候可能需要用到这个选项,保险起见我们还是显式定义了这个参数。


  1. /dev/sdb5 on /mnt/lfs type ext4 (rw)

当看到这条回显信息的时候,证明/dev/sdb5分区已经成功地以读写方式挂载到了/mnt/lfs目录,接下来我们就可以像操作一个目录一样地操作这个分区。如果不太放心自己的$LFS定义的是否正确,可以用echo打印出来看看


  1. echo $LFS

至此我们就可以在$LFS上面来下载和编译我们所需的lfs组件了,不过在此之前为了方便,我们需要把$LFS目录的属主改为当前用户,否则每次不危险的操作都加sudo得多别扭。顺便把等下要用到的存储下载源码的路径$LFS/src一起新建出来


  1. sudo chown -R purehow.purehow $LFS
  2. mkdir $LFS/src

2-mount&createsrc

现在我们就可以进入$LFS/src来下载所需的组件,此时我们手动一个一个下载可就太痛苦了,好在wget有一个–input-file选项可以指定下载列表。官方提供了下载列表,我们此时需要下载两个文件,一个是文件下载列表wget-list,另一个是这个列表中每个文件的md5sum值,这样可以有效校验我们下载的源码文件是否完整正确。


  1. cd $LFS/src
  2. wget http://archive.linuxfromscratch.org/lfs-museum/stable/wget-list
  3. wget http://archive.linuxfromscratch.org/lfs-museum/stable/md5sums

其中md5sum这个文件等下下载完成我们才能用到,现在先下载这些文件


  1. wget –input-file=wget-list –continue –directory-prefix=$LFS/src

3-download

此时我们可以看到,文件已经在下载了。

关于wget的参数:

–input-file是下载列表文件,文件格式就是每行一个链接。

–continue是断点续传,预防某种网络错误导致的下载中断。

–directory-prefix下载存储目录

有些人总嫌直接下载慢,需要个快点的代理。现在的翻墙代理貌似还真的只有ssh还比较靠谱,但是ssh tunnel回来的是一个本地的socks5端口,不巧的是wget里面压根就没法直接用socks5代理。这时候需要个小工具privoxy。


  1. sudo aptitude install privoxy
  2. sudo vi /etc/privoxy/config

从里面能找到listen-address一行,它默认配的是localhost:8118,我是改成了127.0.0.1:8118,这行配置是指的转成的http代理用哪个端口。再找一行叫做forward-socks5,本来是注释的,我也没打开这个注释,直接新加一行forward-socks5 127.0.0.1:1080,1080就是ssh tunnel回来的socks5端口。


  1. listen-address 127.0.0.1:8118
  2. forward-socks5 127.0.0.1:1080

此时的wget就可以使用-e参数来指定http_proxy,于是刚才的下载命令就变成了酱紫


  1. wget –input-file=wget-list –continue –directory-prefix=$LFS/src -e “http_proxy=http://127.0.0.1:8118″

好吧~本站提供这堆东西的打包下载

http://www.haopingrui.cn/lfs.tar.gz 124e1eb0e52f176ab84c38118b4975e3

只要你的网速没问题,北京联通实测能够稳定在300KBps左右,峰值曾经到1MBps以上。

下载完成后验证md5sum无误,就可以解压lfs.tar.gz了,如果不是从本站下载的可以忽略这一步

之后将源码包目录压入目录栈,并且使用刚才下载的md5sums文件来验证每个源码包和补丁是否下载正确,这一步非常重要。值得注意的是,pushd之后需要popd,否则会一直压着。另外pushd之后当前目录会改变为这个目录,所以需要../md5sum。


  1. #md5sum lfs.tar.gz
  2. 124e1eb0e52f176ab84c38118b4975e3  lfs.tar.gz
  3. #tar zxvf lfs.tar.gz > /dev/null
  4. #pushd $LFS/src/lfs
  5. /mnt/lfs/src/lfs /mnt/lfs/src
  6. #md5sum -c ../md5sums
  7. acl-2.2.52.src.tar.gz: OK
  8. attr-2.4.47.src.tar.gz: OK
  9. autoconf-2.69.tar.xz: OK
  10. automake-1.15.tar.xz: OK
  11. bash-4.3.30.tar.gz: OK
  12. bc-1.06.95.tar.bz2: OK
  13. binutils-2.25.tar.bz2: OK
  14. bison-3.0.4.tar.xz: OK
  15. bzip2-1.0.6.tar.gz: OK
  16. check-0.9.14.tar.gz: OK
  17. coreutils-8.23.tar.xz: OK
  18. dejagnu-1.5.2.tar.gz: OK
  19. diffutils-3.3.tar.xz: OK
  20. eudev-2.1.1.tar.gz: OK
  21. eudev-2.1.1-manpages.tar.bz2: OK
  22. e2fsprogs-1.42.12.tar.gz: OK
  23. expat-2.1.0.tar.gz: OK
  24. expect5.45.tar.gz: OK
  25. file-5.22.tar.gz: OK
  26. findutils-4.4.2.tar.gz: OK
  27. flex-2.5.39.tar.bz2: OK
  28. gawk-4.1.1.tar.xz: OK
  29. gcc-4.9.2.tar.bz2: OK
  30. gdbm-1.11.tar.gz: OK
  31. gettext-0.19.4.tar.xz: OK
  32. glibc-2.21.tar.xz: OK
  33. gmp-6.0.0a.tar.xz: OK
  34. gperf-3.0.4.tar.gz: OK
  35. grep-2.21.tar.xz: OK
  36. groff-1.22.3.tar.gz: OK
  37. grub-2.02~beta2.tar.xz: OK
  38. gzip-1.6.tar.xz: OK
  39. iana-etc-2.30.tar.bz2: OK
  40. inetutils-1.9.2.tar.gz: OK
  41. intltool-0.50.2.tar.gz: OK
  42. iproute2-3.19.0.tar.xz: OK
  43. kbd-2.0.2.tar.gz: OK
  44. kmod-19.tar.xz: OK
  45. less-458.tar.gz: OK
  46. lfs-bootscripts-20150222.tar.bz2: OK
  47. libcap-2.24.tar.xz: OK
  48. libpipeline-1.4.0.tar.gz: OK
  49. libtool-2.4.6.tar.xz: OK
  50. linux-3.19.tar.xz: OK
  51. m4-1.4.17.tar.xz: OK
  52. make-4.1.tar.bz2: OK
  53. man-db-2.7.1.tar.xz: OK
  54. man-pages-3.79.tar.xz: OK
  55. mpc-1.0.2.tar.gz: OK
  56. mpfr-3.1.2.tar.xz: OK
  57. ncurses-5.9.tar.gz: OK
  58. patch-2.7.4.tar.xz: OK
  59. perl-5.20.2.tar.bz2: OK
  60. pkg-config-0.28.tar.gz: OK
  61. procps-ng-3.3.10.tar.xz: OK
  62. psmisc-22.21.tar.gz: OK
  63. readline-6.3.tar.gz: OK
  64. sed-4.2.2.tar.bz2: OK
  65. shadow-4.2.1.tar.xz: OK
  66. sysklogd-1.5.1.tar.gz: OK
  67. sysvinit-2.88dsf.tar.bz2: OK
  68. tar-1.28.tar.xz: OK
  69. tcl8.6.3-src.tar.gz: OK
  70. texinfo-5.2.tar.xz: OK
  71. tzdata2015a.tar.gz: OK
  72. udev-lfs-20140408.tar.bz2: OK
  73. util-linux-2.26.tar.xz: OK
  74. vim-7.4.tar.bz2: OK
  75. XML-Parser-2.44.tar.gz: OK
  76. xz-5.2.0.tar.xz: OK
  77. zlib-1.2.8.tar.xz: OK
  78. bash-4.3.30-upstream_fixes-1.patch: OK
  79. bc-1.06.95-memory_leak-1.patch: OK
  80. bzip2-1.0.6-install_docs-1.patch: OK
  81. coreutils-8.23-i18n-1.patch: OK
  82. glibc-2.21-fhs-1.patch: OK
  83. kbd-2.0.2-backspace-1.patch: OK
  84. mpfr-3.1.2-upstream_fixes-3.patch: OK
  85. readline-6.3-upstream_fixes-3.patch: OK
  86. sysvinit-2.88dsf-consolidated-1.patch: OK

4-verifymd5sum1

检测无误,分区和源码准备完成。

原文发布时间:2015-04-04

本文来自云栖合作伙伴“linux中国”

时间: 2025-01-19 20:24:04

重走LFS之路:(三) 磁盘初始化与源码准备的相关文章

重走LFS之路:(二) 存储设备准备

重走LFS之路:(二) 存储设备准备 (题图来自: techradar.com) LFS的编译需要单独有一块存储,条件不好的就单独划个分区,条件好的就再挂块硬盘,实在不行就新建个目录来做这件事好了,只不过这样是没法引导起来,只能chroot之后当编译环境用. 我这就以VirtualBox新建一块SATA硬盘,然后接入虚拟机,分区,挂载为例来记录这个过程. 打开VirtualBox,左侧列表中选择我用来做LFS的虚拟机PureDebian-LFS. 单击设置,弹出的对话框中选择存储这一项,从右侧点

重走LFS之路:(四) 工具链编译-1

重走LFS之路:(四) 工具链编译-1 经过了充分的准备工作之后,我们要来着手工具链的编译.LFS不能直接使用宿主系统的编译器和库进行编译,而是用宿主系统的编译器和库再编译出来一份编译器和库,然后二次编译编译器和库,最后才能用最终的编译器来编译构建LFS系统.所以我们现在需要做的是来编译这些工具. (题图来自: techradar.com) 这些工具的编译比较冗长,所以可能需要数篇的篇幅来记录这些过程. 首先需要创建一个目录来安置这些工具 mkdir -v $LFS/tools 然后为了方便,我

重走LFS之路:(一) 环境准备

重走LFS之路:(一) 环境准备 自从大学二年级的寒假没日没夜地用了整整两个月的时间编译了LFS之后,就再也没做过.这两天在Linux中国的微信公众号上看到LFS都升级到7.7了,故而觉得是时候重新再编译一遍的时候了. 诚然LFS是Linux学习和深入理解的终南捷径,每个真心希望了解Linux的人都建议去做一遍LFS,因为每做一次就会获得新的知识,对Linux有更多更深入的理解. (题图来自: techradar.com) 貌似LFS官网(http://www.linuxfromscratch.

重走LFS之路:(八) 基础系统编译-1

重走LFS之路:(八) 基础系统编译-1 (题图来自: techradar.com)   从现在开始,我们进入真正意义上的LFS系统的基础系统编译. 这个阶段比较漫长,中间还有可能出现各种各样的问题,我会尽量翔实地记录遇到的各种状况和解决方案,以供后来参考. Linux-3.19 API Headers cd /src/linux-3.19 执行编译清理 cd /src/linux-3.19 重新编译 make INSTALL_HDR_PATH=dest headers_install 删除非必

重走LFS之路:(七) 基础系统编译准备

重走LFS之路:(七) 基础系统编译准备 (题图来自: techradar.com) 准备虚拟内核文件系统 建立系统挂载目录 mkdir -pv $LFS/{dev,proc,sys,run} 创建初始设备节点 sudo mknod -m 600 $LFS/dev/console c 5 1 sudo mknod -m 666 $LFS/dev/null c 1 3 挂载并填充设备目录 sudo mount -v –bind /dev $LFS/dev 挂载虚拟内核文件系统 mount -vt

[三]RabbitMQ-客户端源码之ChannelManager

关于ChannelManager,官方注解:Manages a set of channels, indexed by channel number (1.. _channelMax). ChannelManager类的代码量不是很多,主要用来管理Channel的,channelNumber=0的除外,应为channelNumber=0是留给Connection的特殊的channelNumber. 下面是ChannelManager的成员变量: /** Monitor for <code>_c

首富疯狂并购 阿里重走盛大之路:马云会成为下一个陈天桥吗

中介交易 SEO诊断 淘宝客 云主机 技术大厅 原文标题: 马云,还记得西子湖畔的陈天桥吗? 2003年底,第四届西湖论剑,这是陈天桥第一次应马云之约参加这样的论坛,也是唯一一次. 次年,盛大网络上市,陈天桥成为最年轻的首富,收购吉胜.边锋.起点,开始从网络游戏厂商的定位迈向"数字娱乐提供商",打造"网络迪士尼". 盛大文学.盛大在线.盛大游戏.酷6.华友世纪.盛世影业.盛世骄阳等一些列与此定位相关的产业链上下游公司或收购,或合资组建而成,而类似盒子计划.突袭新浪等

中国移动CEO李跃:重走移动互联路

中移动的移动互联战略不乏先见之明.创新突破,但成果为何不及预料?新任CEO李跃抑其弊端,战线回收,能带领中移动走出一条新路吗?2010年5月的CEO交接班正在全面改变中移动 李跃履新CEO后,内部变革次第展开.上台后,他第一次承认了运营商普遍抗拒的"管道"命运(但在前面多了两个字:智能):他通过将增值业务的分成模式改为固定承包付费模式,停下快速扩张.高速增长步伐,转而修炼内功:同时将分散于各地的增值业务适当集中. 过去10年间,中移动一直保持着有别于其他电信运营商的活力劲头,快马扬鞭,

蝠王自曝欲加盟快船沃弗尔或将重走诺瓦克之路

不怪老板太抠门,只怪姚明突然伤势加重打乱了火箭的一切计划.阿泰斯特如此,野兽本欲留在休城,但最终还是只接受一份中产投奔湖人:沃弗尔同样如此,他希望能继续留在休城,然而火箭却仅给他提出了一份2年350万的报价.这显然是他无法接受的. 沃弗尔成下一个诺瓦克? 为此,沃弗尔只有离队这一种选择.尤其是当火箭签下阿里扎后,沃弗尔更是"走定了".那么他的下家将是何处?坊间传言不少,从骑士到森林狼,都有可能成为09-10赛季沃弗尔的新东家. 据媒体透露,沃弗尔的心理价位大约为300-400万,因此对