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

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

寫(xiě)在前面

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

?

準(zhǔn)備新硬盤(pán)

為了更加符合“從零開(kāi)始構(gòu)建Linux”的要求,我在虛擬機(jī)中,新建了一個(gè)磁盤(pán)

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

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

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

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

警告:原Ubuntu所安裝的磁盤(pán),務(wù)必掛載為第一塊磁盤(pán),因?yàn)槠渌疟P(pán)內(nèi)沒(méi)有引導(dǎo),不掛載為第一塊磁盤(pán)將導(dǎo)致無(wú)法開(kāi)機(jī)。

?

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

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

如上所示,有sda和sdb兩個(gè)硬盤(pán),其中SCSI 0:0被識(shí)別為了sda,SCSI 0:1被識(shí)別為了sdb

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

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

?

分區(qū)

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

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

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

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

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

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

?

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

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

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

?

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

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

在完成上述設(shè)置后,記得輸入w并回車,以保存對(duì)磁盤(pán)分區(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)

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

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

對(duì)于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)類型

?

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

?

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

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

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

export LFS=/mnt/lfs

我們可以使用echo $LFS進(jìn)行確認(rèn)

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

警告:整個(gè)創(chuàng)建過(guò)程中務(wù)必確保LFS變量有效,在切換用戶時(shí)(如從alphainf切換到root,tester,chroot,lfs)時(shí)務(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/

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