LFS 搭建 1 准备工作

本文同步发布于
https://williamgong.github.io/2021/11/19/lfs%E6%90%AD%E5%BB%BA1/

那么,现在就正式开始。
目前目标机的硬盘在宿主机的位置为/dev/sdb

分区

目前的分区方案如下

分区位置 大小 类型(挂载点)
/dev/sdb1 256M EFI 分区
/dev/sdb2 4G swap
/dev/sdb3 剩余部分 /

现在采用 parted 进行分区

# parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart ESP fat32 1M 257M
(parted) set 1 boot on
(parted) mkpart primary linux-swap 258M 4353M
(parted) mkpart primary ext4 4353M -1

建立文件系统

分区完成后,接下来就是格式化。
目前,ESP 分区采用 fat32,根分区采用 ext4。

mkfs.vfat /dev/sdb1
mkswap /dev/sdb2
mkfs.ext4 /dev/sdb3

设置环境变量

首先,根据 LFS 手册的要求,设置LFS环境变量。
从现在开始,宿主机就要进入 root 进行操作了,当然理论上一直 sudo 也可以,但为了方便且预防一些奇奇怪怪的错误,还是进入 root 操作吧。
此处$LFS的值为 LFS 根分区在宿主机挂载点的位置。

export LFS=/mnt/lfs

当然,也可以直接写在~/.bashrc里,方便。

挂载分区

现在就可以挂载分区了。
再设置好$LFS后,进行这些需要输入路径的操作就方便多了。
考虑到标准位置,把 ESP 挂载到$LFS/boot/efi下。

# mount /dev/sdb3 $LFS
# mkdir -p $LFS/boot/efi
# mount /dev/sdb1 $LFS/boot/efi

准备软件包

首先建立一个软件包存放目录,且这个目录 LFS 会要求打开粘滞模式。

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

这里使用 ustc 的镜像,镜像地址:
http://mirrors.ustc.edu.cn/lfs/lfs-packages/11.0/
本来要打算使用镜像里的 wget-list,但是好家伙,打开一看地址都是源地址,完美镜像。
而且此时 LCTT 给的列表是9.0的……
不过好心的 ustc 给了 tar 包。

# cd $LFS/sources
# wget http://mirrors.ustc.edu.cn/lfs/lfs-packages/lfs-packages-11.0.tar
# tar -xvf lfs-packages-11.0.tar

此处对文件进行一些整理

# mv $LFS/sources/11.0/* $LFS/sources/
# rm -r 11.0/
# rm lfs-packages-11.0.tar

此处也可以检查下 checksum。

准备阶段收尾工作

该部分主要是设置目录,用户,环境变量等一系列配置。

建立系统目录

建立一些之后编译安装软件包时会用到的系统目录。
但此处创建的目录并不完全。
使用下面的脚本,以 root 运行。

#!/bin/bash

mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}

for i in bin lib sbin; do
ln -sv usr/$i $LFS/$i
done

case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac

建立工具目录

还要建立一个存放临时工具链的目录。

# mkdir -pv $LFS/tools

相比于 9.0 的手册,11.0 版本少了将这个工具目录连接到/的操作,emmmmmm

创建 LFS 用户

毕竟在 root 下进行编译是十分危险的,创建一个普通用户很有必要。
虽说自用的用户就行,但在安装过程中还要设置一大堆环境变量,没人想把自己用户的环境变量搞得一团糟吧?

# groupadd lfs
# useradd -s /bin/bash -g lfs -m -k /dev/null lfs

此处创建用户的参数就根据自己的喜好了。
记得设置密码。

# passwd lfs

接下来要将 $LFS的目录的所有权改为 lfs。
因为指南提供的是多行代码,因此使用脚本运行要方便些。

#!/bin/bash
chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
case $(uname -m) in
x86_64) chown -v lfs $LFS/lib64 ;;
esac

当然这些目录的所有者后期是要改回来的,不然会出事情的。

同时软件包源码目录的所有者也要改

# chown -v lfs $LFS/sources

现在,就要登录 lfs 用户进行操作了。
如果要直接切换,使用su - lfs

设置环境变量

首先在~/.bash_profile里加上如下内容:

exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash

用于清除多余的环境变量。
之后再在~/.bashrc里加上如下内容:

set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
CONFIG_SITE=$LFS/usr/share/config.site
export LFS LC_ALL LFS_TGT PATH CONFIG_SITE

如果 lfs 使用了其他的 shell,需要根据具体 shell 确定写入的文件。
比如我用的是zsh,以上内容就要写到~/.zprofile~/.zshrc里,同时 shell 的路径也要相应改动。
别无脑写进 bashrc,不然之后环境变量没配置成功还不知道呢。

最后,运行

source ~/.bash_profile

至此,准备部分结束。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容