當前位置:首頁 > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

LFS(Linux From Scratch)構(gòu)建過程全記錄(二):磁盤分區(qū)
2022-09-06 22:41:12

寫在前面

本文將會詳細記錄LFS中,構(gòu)建分區(qū),構(gòu)建文件系統(tǒng)和掛載分區(qū)的全過程

?

準備新硬盤

為了更加符合“從零開始構(gòu)建Linux”的要求,我在虛擬機中,新建了一個磁盤

注意:原先的20GB的磁盤中,需要有一個已經(jīng)安裝好的Linux操作系統(tǒng)

創(chuàng)建方法:編輯虛擬機設(shè)置——硬件,添加——硬盤——SCSI(S)——創(chuàng)建新虛擬磁盤——最大磁盤大小40GB,將虛擬磁盤拆分成多個文件——磁盤文件命名隨意——完成

虛擬機設(shè)置如下圖所示:

注意:新創(chuàng)建的磁盤,在“高級”中可以設(shè)置虛擬設(shè)備節(jié)點,虛擬設(shè)置節(jié)點請采用默認,即$SCSI 0:1$對應(yīng)新磁盤,$SCSI 0:0$對應(yīng)磁盤。

警告:原Ubuntu所安裝的磁盤,務(wù)必掛載為第一塊磁盤,因為其它磁盤內(nèi)沒有引導(dǎo),不掛載為第一塊磁盤將導(dǎo)致無法開機。

?

?我們將會在這個新磁盤上構(gòu)建所需的分區(qū)和文件系統(tǒng),并對其進行掛載

創(chuàng)建新磁盤后,我們啟動虛擬機,輸入sudo fdisk -l,查看當前虛擬機磁盤的情況

如上所示,有sda和sdb兩個硬盤,其中SCSI 0:0被識別為了sda,SCSI 0:1被識別為了sdb

其中sda所掛載的是當前系統(tǒng),分了三個區(qū),分別是Linux,Extended和Swap

sdb為我們剛創(chuàng)建的新硬盤,尚未進行分區(qū)

?

分區(qū)

根據(jù)書中的要求,我們要對即將構(gòu)造lfs的磁盤sdb進行分區(qū)。

我們將其分成三個分區(qū),分別為boot,swap,root。其中:

boot分區(qū)用于進行系統(tǒng)引導(dǎo),且是sdb的第一個分區(qū),分區(qū)大小為256MB。設(shè)置為第一個分區(qū)的原因是:用于系統(tǒng)引導(dǎo)的分區(qū)一定要是第一塊磁盤的第一個分區(qū)。

(有同學(xué)可能會問:sdb現(xiàn)在并不是第一個分區(qū),在第11章,你將會看到我如何將sda和sdb互換)

swap分區(qū)用于進行內(nèi)存交換,分區(qū)大小為2G。該分區(qū)將用于進行內(nèi)存交換(當運行內(nèi)存不足時將會發(fā)生交換)

root分區(qū)為主分區(qū),整個LFS系統(tǒng)將會構(gòu)造在其中

?

構(gòu)建boot分區(qū)的過程如下,注意,我輸入的內(nèi)容均在冒號的后面

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

我們可以看到/dev/sdb1已經(jīng)出現(xiàn)

?

我們可以通過同樣的方法,構(gòu)造出/dev/sdb2用于swap分區(qū),構(gòu)造、dev/sdb3用于root分區(qū)

完成分區(qū)后的磁盤狀態(tài)如圖所示:

在完成上述設(shè)置后,記得輸入w并回車,以保存對磁盤分區(qū)的修改

修改完成后將出現(xiàn)以下提示:

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

?

在分區(qū)上創(chuàng)建文件系統(tǒng)

我們可以依次輸入下列指令,實現(xiàn)文件系統(tǒng)的創(chuàng)建

我們需要將boot分區(qū)(/dev/sdb1)和root分區(qū)(/dev/sdb3/)設(shè)置為ext4文件系統(tǒng)

對于swap分區(qū)(/dev/sdb2),我們需要將其設(shè)置為交換目錄,命令如下

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

創(chuàng)建完成后,我們可以先輸入parted /dev/sdb ,再輸入print list查看分區(qū)文件系統(tǒng)類型

?

此時我們可以在Files中,看到兩個剛創(chuàng)建的磁盤(對應(yīng)root分區(qū)和boot分區(qū))

?

設(shè)置$LFS環(huán)境變量

在接下來的配置中,為了方便設(shè)置,我們將多次使用LFS變量

設(shè)置LFS的代碼如下:

export LFS=/mnt/lfs

我們可以使用echo $LFS進行確認

經(jīng)確認,環(huán)境變量已正確設(shè)置

警告:整個創(chuàng)建過程中務(wù)必確保LFS變量有效,在切換用戶時(如從alphainf切換到root,tester,chroot,lfs)時務(wù)必確保LFS有效

?

掛載分區(qū)

警告:務(wù)必確保掛載正確,否則你將喜提重做(筆者就重做了一次才成功)

我們創(chuàng)建文件夾/mnt/lfs,并將root分區(qū)(/dev/sdb3)掛載到/mnt/lfs中,代碼如下:

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

我們創(chuàng)建文件夾$LFS/boot,并將boot分區(qū)(/dev/sdb1)掛載到$LFS/boot下,代碼如下:

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

我們可以輸入df -h查看掛載的情況,可以看到/dev/sdb1和/dev/sdb3已經(jīng)完成掛載

我們用下面這條指令掛載swap分區(qū)

/sbin/swapon -v /dev/sdb2

至此,第二章已經(jīng)完成?

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

開通會員,享受整站包年服務(wù)立即開通 >