Linux學習篇(八):優麒麟20.4 添加分區、home目錄重定向--ARM_Linux


優麒麟20.4 是基於ubuntu20.4的國產發行版,ARM架構版本有許多組件默認未安裝,軟件源用的跟x86_64的也不一樣下文中對個分區的  空間大小只是 記個大概數值,不必糾結。

 

一:實驗環境

硬件:

1. 樹莓派4B   2. 顯示器  3. 128G的 SD卡  4. 讀卡器 (用於鏡像寫入SD卡) 5. microHDMI轉HDMI 線、 6. 鼠標、鍵盤  7. 聯網的路由器、光纖線(wifi連不上)

軟件:

1. 操作平台 為windows10  2. 樹莓派版——優麒麟 系統鏡像ubuntukylin-20.04.1-desktop+raspi.img   ( 可以說是 ARM版 ubuntu )   3. 刻錄軟件 balenaEtcher 

 

windows10中下載系統鏡像 ubuntukylin-20.04.1-desktop+raspi.img 后用balenaEtcher  將鏡像寫到SD卡中。制作好U盤(SD卡)啟動盤后放到樹莓派啟動,連接好該連接的線,顯示器HDMI接的是樹莓派的信號、用光纖線聯網給樹莓派。

 

二:初遇難題

運行優麒麟20.4后提示存儲空間不足。原因是 雖然我SD卡 是128G,但刻錄后只格式化 用了大概 8G。除去其他SD卡約有100G左右的空間隱藏起來了,這部分空間沒有 分區、沒有格式化、更沒有掛載到Linux的文件系統(ext4)

 system-boot 是 /dev/sda0p1 的標簽, writable 是 /dev/sda0p2 的標簽。制作U盤啟動盤后就已經存在了。

 

三:操作過程

思路是   根目錄下的usr 和home 文件夾比較大,將這兩個文件夾轉移到新增分區。

查看分區

root@localhost#  sudo fdisk -l

得到的信息有:

 /dev/sda0 115G

/dev/sda0p1 256M

/dev/sda0p2 7.7G 

可見sda0p1、sda0p2 加起來 遠沒有 115G ,有一部分空間隱藏起來了。

 

創建分區:

以下節選關鍵操作命令,具體要根據 提示信息 隨機應變。

root@localhost#  sudo fdisk /dev/sda0

fdisk 模式下執行選項:
n     (新建分區) 
p     (選擇主分區) 
3     (默認新分區編號) 
+40G   (指定空間大小,不指定則默認 用完尾部余下空間) 
w     (寫入以上更改,若過程中出錯可輸入 q 放棄更改)

我這里 創建了的一個新的分區叫 /dev/sda0p3 , lsblk 命令應該能看到.

格式化分區:

命令行形式:

root@localhost# mkfs.ext4 /dev/sda0p3 

圖形界面形式:

root@localhost#  sudo apt install gparted   #安裝 gparted
root@localhost#  sudo gparted           #管理員身份啟動

一系列圖形界面操作。 這步順帶為分區打上 LABEL。

這一步其實偷懶用了 gparted 來將分區格式化為 ext4 格式、並且給分區 打上 LABEL,即 usrdata 標簽。有了LABEL后面改/etc/fstab 就不用寫一長串分區的UUID了。

題外話:blKid 可以查看分區UUID。

 

掛載分區:

先在文件系統中創建一個文件夾:

root@localhost# mkdir -p /mnt/usrdatadir

掛載/dev/sda0p3到 /usrdatadir文件夾:

root@localhost# mount -t ext4 /dev/sda0p3 /mnt/usrdatadir 

此時可以用命令查看是否掛載成功:

root@localhost# df -h

掛載成功將能看到類似這樣的:

 /dev/sda0p3 40G  1G 39G 2.5% /mnt/usrdatadir 

 

數據遷移: 

復制usr下的內容到 /usrdatadir,本質上就是復制到分區 /dev/sda0p3 :

root@localhost# sudo   rsync -aXS --progress --exclude='/*/.gvfs'  /usr/.   /mnt/usrdatadir/.

gvfs 指的應該是 “守護進程”。復制好以后可以將 usr 文件夾改名為 usrold 或其他,這樣接下來重啟系統后才找得到這個文件夾,才可以刪除或者移動它,騰出空間。

root@localhost# mv /usr /usrold

 

照葫蘆畫瓢: 

重復以上步驟將 SD 卡余下或部分空間  格式化為 ext4,得到/dev/sda0p4分區。用gparted為該分區打上LABEL即 homedata 標簽。掛載該分區到/mnt/homedatadir 復制 /home 的內容 到該分區對應的文件夾 /homedatadir 。別忘了復制home文件夾內容后 重命名home 為 homeold 或其他。 關鍵命令節選:

復制/home下的內容到 /homedatadir,本質上就是復制到分區 /dev/sda0p4 :

root@localhost# sudo rsync -aXS --progress --exclude='/*/.gvfs' /home/. /mnt/homedatadir/.

重命名home為homeold:

root@localhost# mv /home  /homeold

 

啟動配置:

將usrdata、homedata分區與相應文件夾關聯,這樣系統啟動后才能正確掛載分區到指定文件夾。/etc/fstab 追加兩行后

LABEL=writable	   /	            ext4	defaults	0	0
LABEL=system-boot  /boot/firmware   vfat	defaults	0	1
LABEL=usrdata	   /usr	            ext4	defaults	0	0
LABEL=homedata	   /home	    ext4	defaults	0	0

 (這里應該還把usrdatadir  homedatadir分別重命為了 usr   home )

重新啟動:

完成后就可以在終端輸入reboot重啟電腦了

root@localhost# reboot

 重啟后到根目錄下刪除或轉移 usrold、homeold文件夾,才真正的騰出了空間。 不放心的話,就將 這兩個文件夾移動到別的分區作為備份。

root@localhost# sudo   rm  -fr  /homeold
root@localhost# sudo   rm  -fr  /usrold

  

四:完成效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM