寫在前面
本文將會(huì)詳細(xì)記錄LFS中,構(gòu)建分區(qū),構(gòu)建文件系統(tǒng)和掛載分區(qū)的全過程
?
準(zhǔn)備新硬盤
為了更加符合“從零開始構(gòu)建Linux”的要求,我在虛擬機(jī)中,新建了一個(gè)磁盤
注意:原先的20GB的磁盤中,需要有一個(gè)已經(jīng)安裝好的Linux操作系統(tǒng)
創(chuàng)建方法:編輯虛擬機(jī)設(shè)置——硬件,添加——硬盤——SCSI(S)——?jiǎng)?chuàng)建新虛擬磁盤——最大磁盤大小40GB,將虛擬磁盤拆分成多個(gè)文件——磁盤文件命名隨意——完成
虛擬機(jī)設(shè)置如下圖所示:
注意:新創(chuàng)建的磁盤,在“高級(jí)”中可以設(shè)置虛擬設(shè)備節(jié)點(diǎn),虛擬設(shè)置節(jié)點(diǎn)請(qǐng)采用默認(rèn),即$SCSI 0:1$對(duì)應(yīng)新磁盤,$SCSI 0:0$對(duì)應(yīng)磁盤。
警告:原Ubuntu所安裝的磁盤,務(wù)必掛載為第一塊磁盤,因?yàn)槠渌疟P內(nèi)沒有引導(dǎo),不掛載為第一塊磁盤將導(dǎo)致無法開機(jī)。
?
?我們將會(huì)在這個(gè)新磁盤上構(gòu)建所需的分區(qū)和文件系統(tǒng),并對(duì)其進(jìn)行掛載
創(chuàng)建新磁盤后,我們啟動(dòng)虛擬機(jī),輸入sudo fdisk -l,查看當(dāng)前虛擬機(jī)磁盤的情況
如上所示,有sda和sdb兩個(gè)硬盤,其中SCSI 0:0被識(shí)別為了sda,SCSI 0:1被識(shí)別為了sdb
其中sda所掛載的是當(dāng)前系統(tǒng),分了三個(gè)區(qū),分別是Linux,Extended和Swap
sdb為我們剛創(chuàng)建的新硬盤,尚未進(jìn)行分區(qū)
?
分區(qū)
根據(jù)書中的要求,我們要對(duì)即將構(gòu)造lfs的磁盤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ū)一定要是第一塊磁盤的第一個(gè)分區(qū)。
(有同學(xué)可能會(huì)問: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ū)的過程如下,注意,我輸入的內(nèi)容均在冒號(hào)的后面
比如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并回車,以保存對(duì)磁盤分區(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)建的磁盤(對(duì)應(yīng)root分區(qū)和boot分區(qū))
?
設(shè)置$LFS環(huán)境變量
在接下來的配置中,為了方便設(shè)置,我們將多次使用LFS變量
設(shè)置LFS的代碼如下:
export LFS=/mnt/lfs
我們可以使用echo $LFS進(jìn)行確認(rèn)
經(jīng)確認(rèn),環(huán)境變量已正確設(shè)置
警告:整個(gè)創(chuàng)建過程中務(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/