LFS(Linux From Scratch)构建过程全记录(二):磁盘分区
2022-09-06 22:41:12

写在前面

本文将会详细记录LFS中,构建分区,构建文件系统和挂载分区的全过程

 

准备新硬盘

为了更加符合“从零开始构建Linux”的要求,我在虚拟机中,新建了一个磁盘

注意:原先的20GB的磁盘中,需要有一个已经安装好的Linux操作系统

创建方法:编辑虚拟机设置——硬件,添加——硬盘——SCSI(S)——创建新虚拟磁盘——最大磁盘大小40GB,将虚拟磁盘拆分成多个文件——磁盘文件命名随意——完成

虚拟机设置如下图所示:

注意:新创建的磁盘,在“高级”中可以设置虚拟设备节点,虚拟设置节点请采用默认,即$SCSI 0:1$对应新磁盘,$SCSI 0:0$对应磁盘

警告:原Ubuntu所安装的磁盘,务必挂载为第一块磁盘,因为其它磁盘内没有引导,不挂载为第一块磁盘将导致无法开机。

 

 我们将会在这个新磁盘上构建所需的分区和文件系统,并对其进行挂载

创建新磁盘后,我们启动虚拟机,输入sudo fdisk -l,查看当前虚拟机磁盘的情况

如上所示,有sda和sdb两个硬盘,其中SCSI 0:0被识别为了sda,SCSI 0:1被识别为了sdb

其中sda所挂载的是当前系统,分了三个区,分别是Linux,Extended和Swap

sdb为我们刚创建的新硬盘,尚未进行分区

 

分区

根据书中的要求,我们要对即将构造lfs的磁盘sdb进行分区。

我们将其分成三个分区,分别为boot,swap,root。其中:

boot分区用于进行系统引导,且是sdb的第一个分区,分区大小为256MB。设置为第一个分区的原因是:用于系统引导的分区一定要是第一块磁盘的第一个分区。

(有同学可能会问:sdb现在并不是第一个分区,在第11章,你将会看到我如何将sda和sdb互换)

swap分区用于进行内存交换,分区大小为2G。该分区将用于进行内存交换(当运行内存不足时将会发生交换)

root分区为主分区,整个LFS系统将会构造在其中

 

构建boot分区的过程如下,注意,我输入的内容均在冒号的后面

比如Command (m for help): p中的p

我们可以看到/dev/sdb1已经出现

 

我们可以通过同样的方法,构造出/dev/sdb2用于swap分区,构造、dev/sdb3用于root分区

完成分区后的磁盘状态如图所示:

在完成上述设置后,记得输入w并回车,以保存对磁盘分区的修改

修改完成后将出现以下提示:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

 

在分区上创建文件系统

我们可以依次输入下列指令,实现文件系统的创建

我们需要将boot分区(/dev/sdb1)和root分区(/dev/sdb3/)设置为ext4文件系统

对于swap分区(/dev/sdb2),我们需要将其设置为交换目录,命令如下

mkfs -v -t ext4 /dev/sdb1
mkfs -v -T small -t ext4 /dev/sdb3
mkswap /dev/sdb2

创建完成后,我们可以先输入parted /dev/sdb ,再输入print list查看分区文件系统类型

 

此时我们可以在Files中,看到两个刚创建的磁盘(对应root分区和boot分区)

 

设置$LFS环境变量

在接下来的配置中,为了方便设置,我们将多次使用LFS变量

设置LFS的代码如下:

export LFS=/mnt/lfs

我们可以使用echo $LFS进行确认

经确认,环境变量已正确设置

警告:整个创建过程中务必确保LFS变量有效,在切换用户时(如从alphainf切换到root,tester,chroot,lfs)时务必确保LFS有效

 

挂载分区

警告:务必确保挂载正确,否则你将喜提重做(笔者就重做了一次才成功)

我们创建文件夹/mnt/lfs,并将root分区(/dev/sdb3)挂载到/mnt/lfs中,代码如下:

mkdir -pv $LFS
mount -v -t ext4 /dev/sdb3 $LFS

我们创建文件夹$LFS/boot,并将boot分区(/dev/sdb1)挂载到$LFS/boot下,代码如下:

mkdir -v $LFS/boot
mount -v -t ext4 /dev/sdb1 $LFS/boot

我们可以输入df -h查看挂载的情况,可以看到/dev/sdb1和/dev/sdb3已经完成挂载

我们用下面这条指令挂载swap分区

/sbin/swapon -v /dev/sdb2

至此,第二章已经完成 

本文摘自 :https://www.cnblogs.com/


更多科技新闻 ......