树莓派Pi OS备份镜像设置自动扩展磁盘,完全基于树莓派原版系统实现方式(镜像备份全流程)
寫入樹莓派官方鏡像的時候,我們會發現當樹莓派第一次啟動后,磁盤空間會自動擴充到整個TF卡。那么當我們自己制作鏡像的時候,能不能去除未使用的空間,制作體積較小的鏡像,并在該鏡像啟動時自動擴展,從而適應不同大小的新TF卡呢?答案是當然可以,通過在國內外各種論壇的探索,本文將介紹完全基于樹莓派原版系統實現方式的自動磁盤擴展。
由于我們備份鏡像需要對磁盤空間進行更改,需要另一個Linux系統對需要創建鏡像的磁盤進行操作。如果你的電腦裝有Linux系統,可以直接使用讀卡器讀取需要創建鏡像的TF卡。如果沒有,也可以將另一張安裝了Linux系統的TF卡插入樹莓派,再使用讀卡器掛載需要創建鏡像的TF卡。本文使用后一種方式,如果是前一種方式也是雷同。
目錄
1、重新放入“resize2fs_once”文件
2、修改“cmdline.txt”
3、縮小磁盤大小
4、制作鏡像并進一步壓縮
1、重新放入“resize2fs_once”文件
其實在樹莓派的官方鏡像中,在“/etc/init.d”路徑下,共有33個文件,而不是啟動后的32個。原因是有一個名叫“resize2fs_once”的文件,顧名思義只在啟動時運行一次,然后自我刪除,它就是官方用來自動擴展磁盤的腳本。那么事情就簡單了,只需重新在需要做鏡像的磁盤中放入即可。
“resize2fs_once”文件可以直接從官方鏡像文件中獲取,只要是全新未啟動過的都會含有,建議從自己的全新鏡像中提取。
這里提供一個提取自“raspios_arm64-2021-05-28”的“resize2fs_once”,不保證全版本適用。https://raw.githubusercontent.com/TimeFlyingAway/Raspberry_Pi_OS-resize/main/resize2fs_once
首先插入另一塊TF卡啟動樹莓派,系統正常啟動后將需要制作鏡像的TF卡插入讀卡器連接到樹莓派的USB接口。此時,正常情況下,樹莓派會自動掛載插入的TF卡并在桌面顯示兩個磁盤,“boot”和“rootfs”(默認掛載在路徑“/media/pi”下)。
?
打開“rootfs”,依次進入“etc”,“init.d”(默認路徑“/media/pi/rootfs/etc/init.d”),放入“resize2fs_once”文件。任何放入方法均可,這里不再贅述。
然后授予“resize2fs_once”,755權限。
sudo chmod 755 resize2fs_once*需要注意,“resize2fs_once”在第一次啟動,擴展至全磁盤時,會導致swap分區恢復到默認大小,但如果swap分區配置正確,無需任何操作再次重啟即可恢復用戶設置。
【樹莓派】永久修改swap分區大小的正確方式,簡單只需一步
2、修改“cmdline.txt”
完成“resize2fs_once”的放入后,還需將“cmdline.txt”復原。
打開掛載的“boot”磁盤(默認路徑“/media/pi/boot”),編輯“cmdline.txt”后保存。
#可以使用任何你喜歡的方式編輯,比如 sudo nano /media/pi/boot/cmdline.txt sudo vi /media/pi/boot/cmdline.txt#在“quiet”和“splash”中間添加 init=/usr/lib/raspi-config/init_resize.sh#比如,如果原先是 console=serial0,115200 console=tty1 root=PARTUUID=0a1b2c3d-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles#則改為 console=serial0,115200 console=tty1 root=PARTUUID=0a1b2c3d-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles###請務必保留其余部分不變###至此,有關自動擴展磁盤的設置已經結束,以下內容為如何創建占用空間較小的符合官方鏡像燒寫軟件“Raspberry Pi Imager”?的鏡像。
3、縮小磁盤大小
然后使用GParted對磁盤大小進行調整。GParted是圖形化界面,易于理解同時自帶校驗等,當然也可以直接使用parted、fdisk或resize2fs等命令進行操作,這里不再贅述。(Windows對于ext4的支持十分差,雖然個別軟件也能分區,但還是建議直接使用Linux,不給自己找麻煩,是吧)
然后打開LX終端,啟動GParted。
sudo gparted如果出現“sudo: gparted:找不到命令”,即沒有安裝GParted,請先安裝。
sudo apt install gparted?正常打開后會出現圖形化界面。
?
?右側將磁盤選擇為讀卡器,一般為“/dev/sda”。選中“rootfs”,右鍵,選擇“卸載(U)”。
?然后繼續選中“rootfs”,右鍵,選擇“更改大小/移動(R)”。
?
?根據實際情況調整分區大小,建議略大于已占用空間,并點擊“調整大小/移動”。
?點擊工具欄“應用全部操作”,保存修改并執行,同時校驗磁盤。彈出警告點擊“應用(A)”確認。
?等待進度條完成,完成后點擊“關閉(C)”,待GParted自動刷新后,檢查分區結果。
4、制作鏡像并進一步壓縮
?制作鏡像的方式也有很多,這里我使用“Win32DiskImager”。“映像文件”選擇保存鏡像的位置,并新建一個“.img”結尾的文件,選中。“設備”選擇TF卡對應的任意一個盤符即可,但請務必選擇正確,避免選中其他U盤等。校驗值根據喜好選擇,也可以選擇“無”。務必勾選“僅讀取已分配分區”。然后點擊讀取,等待進度條完成。
完成后將“.img”文件添加到壓縮文件,變為“.zip”進一步縮小鏡像體積。這里強力推薦使用開源免費小巧的壓縮軟件7-Zip。使用7-Zip添加壓縮文件,壓縮格式選擇“zip”,壓縮等級選擇“5 - 標準壓縮”,其他默認即可。通過這樣生成的壓縮文件,可以直接被樹莓派官方的鏡像刷寫軟件“Raspberry Pi Imager”識別并刷寫。
總結
以上是生活随笔為你收集整理的树莓派Pi OS备份镜像设置自动扩展磁盘,完全基于树莓派原版系统实现方式(镜像备份全流程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【解决XBuilder X代码提示失效问
- 下一篇: Hbuilderx3.6.18连接逍遥模