炼丹-002:从0开始编译Linux-准备(丹炉和丹)环境

现在,我们开始做炼丹的准备工作。

准备开始炼丹前,我们首先明白编译一个Linux的几个阶段。大王把它分为3个阶段:1、准备工具链,2、编译基础系统,3、编译完整系统。接下来,我们具体说说这三个阶段,我们都干了什么。

1、准备工具链。

在准备工具链时,我们要准备一个干净的磁盘分区,并把它挂载到一个目标目录上。此时,我们要做的事情,就是将要编译新操作系统的编译工具,核心工具等安装遭到这个挂载点,成为编译工具链,放在tools目录下,以便后面用该目录内的工具链开始编译系统。

2、编译基础系统。

将系统的虚拟根目录(chroot)切换到上一步骤说的目标目录上,并以此为基础,开始编译操作系统的各类工具、内核、基础应用、systemd等。在编译过程中,会重新编译一个系统内部的编译工具链,最后删除上一步骤建立的临时的tools目录。编译完成后,可以得到一个可以直接启动的linux,不过并没有图形界面,驱动加载也很有限。

3、编译完整系统。

在步骤2的基础上,编译各类工具、类库和软件,期间,会从底层到高层,逐步完善基础类库,磁盘工具,图形界面服务,3D加速,音频驱动和管理,桌面环境等一系列复杂安装,最终得到一个能跑的linux桌面环境。

回到具体准备环节的操作,为了安全起见,我建议我们的丹炉(编译用的宿主机)使用虚拟机来操作。这么做的原因是,在进行第二步中,作choot时,如果操作失败,则会导致宿主机彻底坏掉,因而不得不重装宿主机,从头开始。

丹炉和丹:

这里,再简单解释一下宿主机和目标机(客户机),炼丹过程中,我们使用的工作平台,也就是一个可以跑的linux发行本,就是宿主机,宿主机是炼丹的丹炉,是编译linux的整体支持环境,只有便已完成后,验证所编译linux是否好用,进行操作系统重启后,宿主机才不再工作。不过,即便已完成编译linux后,也不意味着宿主机就可以不要了,因为后面的编译调试仍然需要回到宿主机系统中,反复操作、重启、验证。

目标机(客户机),其实就是我们所编译的Linux,也可以称之为是“丹”。丹在炼制过程中,只是宿主机中的一个目录,并且有部分环境依赖项,需要宿主机映射和支持。

在整个炼丹过程中,初学者而言,最容易出现的问题,就是不理解丹炉和丹的关系,经常把在丹上操作的指令意外的搞到丹炉上,从而导致编译失败,丹炉爆裂。

了解以上概念后,为了安全起见,避免大家的工作环境彻底崩毁,大王建议在你电脑的Windows或Linux/Mac上先装虚拟机,在虚拟机里安装丹炉,并开始进行相关操作。虚拟机的安装,可以选择VMWare的虚拟机,或者Virtualbox。

VMWare和Virtualbox的安装,此处不再赘述,大家可以查阅相关材料进行。后面,大王都以VMWare Workstation Pro为例进行讲解。

安装虚拟机软件时的几个注意事项:

1、你需要给虚拟机分配的CPU数量,应当与实际主机的CPU数量一致。

2、内存分配尽可能的大,但不要占满(达到VMWare软件推荐的“最大建议内存”即可)。

3、虚拟磁盘建议分配55-60GiB容量。

4、系统启动类型要选择BIOS。在“虚拟机设置-选项-高级-估计类型”进行设置。(想要用UEFI的同学,可以在BIOS模式完成炼丹成功后,自行尝试)

5、创建新虚拟机时,先不选择安装ISO镜像文件。

这些都设置完毕后,我们就可以开始在虚拟机中安装一个好用的linux发行版,作为丹炉了。在这里,大王将以Debian12.1为例进行讲解。

设置虚拟机时,没有Debian12怎么办?

答:选择Debian11.x64位版即可。

Debian12.1的系统从哪里下载?

答:打开:
https://mirrors.ustc.edu.cn/,在右侧点击“获取安装镜像”,在弹窗中“选择安装发行版”选择“Debian”,“选择发行版版本”选择“12.1.0( AMD64, DVD Installer)”,点击获取ISO即可快速下载,网速好的同学,大概一分钟就能下载下来。

完成以上准备工作后,启动虚拟机,系统会提示你放入安装镜像,此时我们选择刚下载下来的Debian12.1安装镜像就可以了。

Debian12.1的安装注意事项:

1、安装分区设置,选择设置向导中的使用整个磁盘,并将所有目录都安装在/下即可。此处,大王不建议进行太多分区,这样做,对于编译需要大量空间而言,没有意义。

2、安装过程中,不要选择使用网络镜像。因为这样可以快速完成安装。需要设置网络安装镜像的同学,可以在系统安装完成后,在清华镜像站,或者中科大镜像站中,点击帮助,自己搜索如何手工切换成国内的镜像站,并进行一些设置。这样就可以进行快速更新了。

3、为了方便使用,虚拟机完装完成后,还是需要安装VMWareTools的。例如可以方便虚拟机和外面的主机之间互相拷贝文件等。

4、以上步骤完成,Debian安装完成后。手工在Debian虚拟机中添加一个20GB的虚拟磁盘(丹盘)。这个磁盘,就是用来装丹的。后面,我们所有的炼丹产出,都在该磁盘上。

对丹所在的磁盘进行分区

这是一个关键步骤。当Debian12.1安装完成后,重启系统,就可以在root用户上,通过fdisk -l命令查看到该磁盘。

进行分区前,我们要知道操作系统的一个坑,即磁盘序号混乱问题——不论是Linux还是Windows,只要安装了多个硬盘,那么计算机重启后,硬盘序号就可能发生变化。比如有的时候,你的硬盘是/dev/sda1,有的时候是/dev/sdb1。如果想要避免这个问题,要么你的debian一直不重启,要么,重启以后手工重新确定你的磁盘的序号,然后再进行操作。

接下来,为了避免磁盘序号混乱,导致操作失败,我们每次重启debian后,都应进行一下操作,以便确定丹盘的盘符序号,以继续之前没有完成的工作——在root下执行:df -h,如果你看到,某一行显示为“/dev/sdb1 xxG xxG xxG /”,即你看到当前系统/挂载点上挂载的磁盘是/dev/sdb1,那么我们可以推断出丹所在磁盘此时名为/dev/sda1。我们也可以在debian的“磁盘”工具中进行验证,或者执行“fdisk -l”进行查看验证。

分区操作:

接上所述,假定我们20GB分区的丹盘,此时设备编号为/dev/sda1,那么接下来以root用户进行如下操作:(#……表示笔者此处没有提供控制台的执行输出结果)

创建gpt分区表:

#parted -s /dev/sda mklabel gpt
#……

创建3个分区:

parted -s /dev/sda mkpart bios_grub 1MiB 10MiB

#……

parted -s /dev/sda root ext4 10MiB 15GiB

#……

parted -s /dev/sda home ext4 15GiB 100%

#……

激活首个分区

parted /dev/sda set 1 bios_grub on

#……

对单盘分区格式化:

echo Y | mkfs -t ext4 /dev/sda2

#……

echo Y | mkfs -t ext4 /dev/sda3

#……

特别要注意的是:不要对第一个分区进/dev/sda1行格式化。

至此,丹盘的准备工作就完成了。

接下来,以root用户对丹炉做一些准备工作:

1、安装一些所需组件:

apt -y install jq m4 make gawk bison gcc g++ texinfo patch cmake

#……

2、更新三个关键连接:

rm /usr/bin/awk && ln -sv /usr/bin/gawk /usr/bin/awk

#……

rm /usr/bin/yacc && ln -sv /usr/bin/bison /usr/bin/yacc

#……

rm /usr/bin/sh && ln -sv /usr/bin/bash /usr/bin/sh

#……

至此,丹炉的准备工作也已完成。下一篇,我们将开始炼丹之旅。中间过程,如有疑问,可以随时留言,联系。

你可能感兴趣的:(linux,服务器)