日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

銀河麒麟4.0.2(Ubuntu)擴展boot分區過程介紹_Linux

更新時間: 2021-12-09 編程語言

前言

在一些場合(如開發內核模塊)我們需要安裝多個版本的內核,這時候容易出現boot分區空間不夠的問題,本文介紹如何擴展銀河麒麟(4.0.2)的boot分區。

由于boot分區通常位于磁盤的第一個分區,直接擴展難度較大,因此采取新分區替換原分區的方式間接實現boot分區的擴展。請注意,替換boot分區有風險,請評估完風險后,謹慎操作。

1、準備新的分區

如何是虛擬機,可以直接添加一塊虛擬磁盤,如果是物理機,可以從現有磁盤中清理出一塊未用分區,并用磁盤工具(如parted)格式化。

如果磁盤是msdos格式,新分區須為primary。如何使用磁盤工具,這里不再贅述。假設新分區為/dev/newpart(你的新分區肯定不會叫這個名字),利用mkfs格式化:

mkfs.ext4 /dev/newpart

2、復制boot分區

首先將新分區掛載到某個目錄,如/mnt:

mount /dev/newpart /mnt

然后將/boot中的所有文件復制到掛載的目錄:

cp –a /boot/* /mnt

3、修改fstab文件

利用命令blkid或者lsblk –f查看新分區的UUID,并記下來。在root權限下修改/etc/fstab文件,將原boot分區對應的分區UUID替換為新分區的UUID,保存退出。重啟前,可以用:

systemctl daemon-reload
mount –a
lsblk

依次確認配置文件修改正確,新分區能正常加載,重啟系統。重啟的目的是讓系統識別到新的boot分區,然后方便自動更新grub。

4、更新grub

使用update-grub命令更新grub,并打開/boot/grub/grub.cfg確認是從新分區加載內核和驅動,如下圖中黃線標注處應為新分區的UUID。圖中只列出了一個啟動項的內容,如果有多個啟動項,可以逐個檢查下。

但通常如果第一個是正確的,后面的也應該是正確的。

理論上,接下來讓bios或者uefi從新分區啟動就可以了,但遺憾的是通常即使新的分區設置了boot屬性為on,在引導時也不一定能從新分區啟動(也可能是我操作的問題)。為了解決這個問題,我們仍然保留原來被替換掉的引導分區,而且

將新的grub配置文件復制到原分區的grub目錄下。這樣操作系統仍然會從原來的引導分區啟動,但由于新的grub配置文件將內核和驅動文件的位置指向了新的磁盤分區,所以原有分區下的內核和驅動文件就可以刪除了,boot分區空間不足的

問題就解決了。假設原boot分區掛載在/dev/oldpart下,重新掛載原分區實現grub.cfg文件的復制:

mount /dev/oldpart /mnt
cp /boot/grub/grub.cfg /mnt/grub/

查看/mnt/grub/grub.cfg,確認一切正確后,此時可以重啟操作系統了。引導后,可以在grub引導界面里進到相應的啟動項中進一步確認boot分區更換的正確性。

如果引導一切正常,進入系統后,可以通過df –h查看新的boot分區的利用率情況。此外,如果想進一步節省磁盤空間,可以刪除掉原boot分區中的內核和驅動文件以。

如果不刪除,也沒有任何影響,因為后續添加新內核等操作都不會用到這個原來的boot分區了。

值得一提的是,如果后續有新的內核加入,在執行完update-grub生成新的/boot/grub/grub.cfg后,不要忘了將該文件復制到原boot分區下的grub目錄中,否則在grub啟動界面中看不到相應的內核。

因為我們仍然是從原分區啟動的,grub啟動界面顯示的是原boot分區中的grub.cfg。

原文鏈接:https://blog.csdn.net/sword__wj/article/details/121607086

欄目分類
最近更新