文章目录
LFS学习总结
cfdisk磁盘分区指令
注意:磁盘分区总是从空闲部分的头开始创建,否则grub启动引导里配置磁盘分区号时无法辨别
工具链技术
围绕GCC+Binutils+Glibc三个工具展开:
Binutils:用于创建、管理和维护二进制目标文件的工具
GCC:一组编译工具,主要用于预处理和编译任务
Glibc:GNU发布的libc库,即c运行库
配置网络相关
BLFS学习
自定义boot device
解决主机系统出现分区信息丢失和文件损坏的情况,这些信息可以不依赖于被拯救的主机,直接依赖于外部的救援设备rescue device,录入:CDROM,USB驱动器,网卡等。
安装固件:microcode微码
微码:对CPU进行更新以解决勘误表问题
如果您已经确定更新后的微码可用于您的系统,那么是时候为
早期加载做好准备了。
这需要一个额外的包,cpio-2.13,并创建一个initrd,它
需要添加到grub.cfg中。在哪里准备initrd并不重要,
一旦它开始工作,您就可以将相同的initrd应用到同一
台机器上的后续LFS系统或更新的内核上,至少在
任何更新的微代码发布之前是这样。
bash shell启动文件
shell文件使用启动文件集合帮助创建环境,每个文件都有特定的用途,可能以不同的方式影响登录和交互环境。
补充知识:“交互/非交互”和“登录/非登陆”
重要文件1:/etc/profile.d/umask.sh配置文件
设置umask对于安全性非常重要,例如:
在这里,当用户名和组名不相同时,系统用户的默认组写权限被关闭。
Security篇(跳过)
文件系统和磁盘管理
关于initramfs
注意init关键字+fs关键字,因此在LFS环境中使用initramfs只有四个主要原因:
1.从网络加载rootfs(root filesystem-Rootfs:根文件系统);
2.从LVM逻辑卷加载rootfs;
3.在需要密码的情况下使用加密的rootfs;
4.为了方便将rootfs指定为LABEL或UUID。
例如:编写脚本,使得这些允许在LVM逻辑卷上指定一个rootfs,或者通过分区UUID或分区LABEL指定一个rootfs。
脚本1:
脚本2:
生成initrd将文件复制到boot目录下,并在grub启动引导界面增加相应的菜单项。
LVM2
LVM2包是一组管理逻辑分区的工具。它允许跨越多个物理磁盘和磁盘分区的文件系统,并提供逻辑分区的动态增长或收缩、镜像和低存储占用快照。
LVM(logical volume management 逻辑卷管理):LVM管理磁盘驱动器。它允许将多个驱动器和分区组合成更大的卷组,帮助通过快照进行备份,并允许动态调整卷大小。它还可以提供类似于RAID 1阵列的镜像
物理卷一般是物理磁盘的分区,卷组可以由任意数量的物理卷组成,逻辑卷由卷组构成 且 逻辑卷又可以逻辑上当成正常的linux分区使用。 (图片非原创,具体原链接详见编辑页)
通用库libraries、通用应用程序、常规应用程序、系统应用程序
./configure 、make、 make instal(Cmake, meson、ninja,ruby gem)安装通用的软件
网络组件
1.利用systemd-networkd来进行网桥设置;
2.用于访问各种服务器的客户机应用程序:桥接工具包、;
服务器组件
包括:主服务器(主服务器是向用户或其他程序提供内容或服务的程序)、邮件服务器、数据库等