LFS 搭建 6 系统配置

现在正式进入系统配置阶段。 网络配置 这里使用 systemd-networkd 和 systemd-resolved 因为我需要远程登录,因此此处选择静态 ip: 静态 IP 配置 这里还不知道目标机器网卡接口名,这个值可以用于大部分有线接口,其他参数自行替换。 1 2 3 4 5 6 7 8 9 cat > /etc/systemd/network/10-eth-static.network << "EOF" [Match] Name=en* [Network] Address=192.168.1.105/24 Gateway=192.168.1.1 DNS=192.168.1
阅读更多

LFS 搭建 5 正式构建 (2)

现在继续构建剩下的软件包。 构建软件包 Inetutils-2.1 1 2 tar -xvf inetutils-2.1.tar.xz cd inetutils-2.1 configure 1 2 3 4 5 6 7 8 9 10 ./configure --prefix=/usr \ --bindir=/usr/bin \ --localstatedir=/var \ --disable-logger \ --disable-whois \
阅读更多

LFS 搭建 4 正式构建 (1)

在临时系统构建完成后,从现在开始,就进入正式构建阶段。 根据 LFS 手册,绝大多数包在编译时都不使用静态库,且一般都会在 configure 中直接关闭,不过 gcc 之类需要的除外。 在现阶段我并没有移植包管理器的打算,也许以后有时间我会出一篇将 Portage 移植到 LFS 的教程吧。 :D 进入 Chroot 环境 每次登录,都要检查$LFS: echo $LFS 首先先挂载/dev和内核虚拟文件系统 1 2 3 4 5 mount -v --bind /dev $LFS/dev mount -v --bind /dev/pts $LFS/dev/pts mount -v
阅读更多

LFS 搭建 3 Chroot 以及构建额外工具

现在开始就要 chroot 了,同时现在开始用户也要从lfs到root。 不过这个顺序相比 9.0 差别太大了吧…… 那么,现在就su吧。 记得设置$LFS: export LFS=/mnt/lfs 改变 LFS 系统目录的所有者 毕竟一个正常的系统其系统文件所有者不可能是lfs 1 2 3 4 chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} case $(uname -m) in x86_64) chown -R root:root $LFS/lib64 ;; esac 准备虚拟内核文件系统 首先需要建立 dev
阅读更多

LFS 搭建 2 构建临时系统

准备工作做完之后,就要开始搭建临时工具链了。 但说是工具链,其实还包括一些其他工具。 开始前的准备 首先当然是登录lfs用户。 之后检查下$LFS是否设置正确。 echo $LFS 之后,需要检查以下部分是否正确设置,虽然大部分都不需要刻意留意,但不排除像我这样有特殊习惯的用户会不满足以下条件。 1. shell 用的是 bash。 不过目前大部分 shell 都是兼容 bash 的,比如我用的 zsh。 2. sh 符号链接到 bash。 这个绝大多数发行版都满足。 3. /usr/bin/awk符号链接到 gawk。 这个也不用在意 4. /usr
阅读更多

LFS 搭建 1 准备工作

那么,现在就正式开始。 目前目标机的硬盘在宿主机的位置为/dev/sdb。 分区 目前的分区方案如下 分区位置大小类型(挂载点)/dev/sdb1256MEFI 分区/dev/sdb24Gswap/dev/sdb3剩余部分/现在采用 parted 进行分区 1 2 3 4 5 6 # parted /dev/sdb (parted) mklabel gpt (parted) mkpart ESP fat32 1M 257M (parted) set 1 boot on (parted) mkpart primary linux-swap 257M 4353M (parted) m
阅读更多

LFS 的搭建 0 前言

前言 其实一开始要搭建 LFS 时,我是拒绝的。 但奈何自己手贱加学校的教务系统出问题,我同时选择了操作系统和操作系统课程设计。 而正常情况下是不能同时选择的。 而操作系统课程设计的大作业,就是搭 LFS。 也罢,这也是我的终极目标,虽然早了点,时间还被一大堆大作业和实验报告占满了,还有 ddl 催命。 于是,我就只能硬着头皮上了。 选择的版本 秉承要安装就要最新版的原则,我选择了最新的11.0 对了,是 systemd 版本的。 不过根据现在 LCTT 的进度,中文版最新到 9.0,因此 11.0 的版本只能硬啃生肉。 当然,不同版本之间差距应该并不大,所以我会参考中文最新版的就是了。
阅读更多