Openwrt官網(wǎng)下載的鏡像默認只有120MB乌奇,根分區(qū)也僅有104MB减响。如果要安裝ADGuard Home、Nginx、Clash等服務就很容易不夠用了。這里介紹一種安裝前擴容根分區(qū)的辦法阳欲,相比于安裝后的方法,重啟后不會失效陋率。
1球化、準備
需要準備一臺Linux,虛擬機也可以翘贮,這里介紹Ubuntu上的操作方法赊窥,其他系統(tǒng)類似。
安裝依賴的工具:
wget
gzip
lsblk
e2fsck
resize2fs
losetup
fdisk
partx
sudo apt-get install wget gzip util-linux mount fdisk
2狸页、下載解壓鏡像文件
這里使用的是:openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
注意:這里只能用ext4-combined
下載:官網(wǎng)或者國內(nèi)鏡像網(wǎng)址,根據(jù)實際情況選擇
官網(wǎng)下載地址:https://downloads.openwrt.org/releases/22.03.0/targets/x86/64/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
wget https://downloads.openwrt.org/releases/22.03.0/targets/x86/64/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
解壓扯再,將會得到文件openwrt-22.03.0-x86-64-generic-ext4-combined.img
gzip -d openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
3芍耘、擴容
3.1 使用 dd 命令增加鏡像空間
使用dd命令,將鏡像文件增加到10G(群暉虛擬機最小磁盤大邢ㄗ琛)斋竞。
注意:dd命令中“count=512”秃殉,如果是其他值可能會失敗
也可根據(jù)需要修改bs的值,改為自己需要的大小
dd if=/dev/zero bs=20080k count=512 >> openwrt-22.03.0-x86-64-generic-ext4-combined.img
記錄了512+0 的讀入
記錄了512+0 的寫出
10527703040字節(jié)(11 GB钾军,9.8 GiB)已復制鳄袍,104.59 s吏恭,101 MB/s
ls -lh openwrt-22.03.0-x86-64-generic-ext4-combined.img
-rwxr-xr-x 1 root root 10G 9月 7 10:28 openwrt-22.03.0-x86-64-generic-ext4-combined.img
3.2 使用 losetup 命令,掛載鏡像到 loop 設備
losetup -f openwrt-22.03.0-x86-64-generic-ext4-combined.img
3.3 查看掛載的設備的名稱
3.3.1樱哼、使用 losetup 命令查看掛載的虛擬區(qū)塊設備
此處名為 /dev/loop12,實際每個人loop后面的數(shù)值可能不一樣搅幅,注意根據(jù)文件名區(qū)分
losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
**********************(省略其它)**************************
/dev/loop12 0 0 0 0 openwrt-22.03.0-x86-64-generic-ext4-combined.img 0 512
3.3.2、使用 lsblk 命令查看塊設備信息
對應上面查到的“/dev/loop12”茄唐,可以看到塊大小已經(jīng)增加到10G左右
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
********************(省略其它)***********************
loop12 7:12 0 9.9G 0 loop
3.4 讀取分區(qū)信息息裸,加載到系統(tǒng)
3.4.1 使用 partx 命令,加載分區(qū)信息
partx -a /dev/loop12
3.4.2 使用 lsblk 命令查看加載分區(qū)信息結(jié)果
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
************************(省略其它)*********************
loop12 7:12 0 9.9G 0 loop
├─loop12p1 259:0 0 16M 0 part
└─loop12p2 259:1 0 104M 0 part
loop12p2就是擴容的分區(qū)界牡,雖然已經(jīng)增加到10G簿寂,但是識別到的仍然是120M。所以還需要進行下面的操作宿亡。
3.5 使用 fdisk 命令調(diào)整分區(qū)大小
fdisk /dev/loop12
歡迎使用 fdisk (util-linux 2.37.2)常遂。
更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤挽荠。
使用寫入命令前請三思克胳。
# 輸入p查看分區(qū)信息,記住/dev/loop12p2分區(qū)的開始扇區(qū)
命令(輸入 m 獲取幫助): p
Disk /dev/loop12:9.92 GiB圈匆,10654056448 字節(jié)漠另,20808704 個扇區(qū)
單元:扇區(qū) / 1 * 512 = 512 字節(jié)
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標簽類型:dos
磁盤標識符:0x266b958d
設備 啟動 起點 末尾 扇區(qū) 大小 Id 類型
/dev/loop12p1 * 512 33279 32768 16M 83 Linux
/dev/loop12p2 33792 246783 212992 104M 83 Linux
# 刪除/dev/loop12p2分區(qū),輸入d之后輸入2(默認)
命令(輸入 m 獲取幫助): d
分區(qū)號 (1,2, 默認 2): 2
分區(qū) 2 已刪除跃赚。
# 輸入n新建分區(qū)
命令(輸入 m 獲取幫助): n
分區(qū)類型
p 主分區(qū) (1 primary, 0 extended, 3 free)
e 擴展分區(qū) (邏輯分區(qū)容器)
# 輸入p主分區(qū)
選擇 (默認 p): p
# 輸入2(默認)
分區(qū)號 (2-4, 默認 2): 2
# 輸入分區(qū)2的開始扇區(qū)笆搓,一定要和上面的一樣,這里是33792N嘲痢B堋!
第一個扇區(qū) (33280-20808703, 默認 34816): 33792
# 輸入結(jié)束扇區(qū)叹括,一定要比33792大算墨,如果直接回車就是全部剩余都將作為第二分區(qū),這里直接回車
Last sector, +/-sectors or +/-size{K,M,G,T,P} (33792-20808703, 默認 20808703):
創(chuàng)建了一個新分區(qū) 2汁雷,類型為“Linux”净嘀,大小為 9.9 GiB。
分區(qū) #2 包含一個 ext4 簽名侠讯。
# 提示挖藏,是否移除分區(qū)的簽名,這里一定要輸入n继低,不然鏡像會出問題0静浴!袁翁!
您想移除該簽名嗎柴底? 是[Y]/否[N]: N
# 輸入w保存我們的更改
命令(輸入 m 獲取幫助): w
# 會有警告,這里不用管
分區(qū)表已調(diào)整粱胜。
將調(diào)用 ioctl() 來重新讀分區(qū)表柄驻。
重新讀取分區(qū)表失敗。: 無效的參數(shù)
# 提示說內(nèi)核依然會使用舊的分區(qū)表焙压,新的分區(qū)表需要在下次重啟或運行 partprobe(8)或kpartx(8)命令后生效
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
3.6 更新新的分區(qū)信息鸿脓,查看新的分區(qū)表
3.6.1 使用 partx 命令抑钟,更新分區(qū)信息
partx -u /dev/loop12
3.6.2 使用 lsblk 命令查看新的分區(qū)信息
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
**********************(省略其他)***********************
loop12 7:12 0 9.9G 0 loop
├─loop12p1 259:2 0 16M 0 part
└─loop12p2 259:3 0 9.9G 0 part
可以看到loop12p2分區(qū)已經(jīng)擴容成功
3.7 同步更改后的分區(qū)信息到系統(tǒng)內(nèi)核
3.7.1 使用 e2fsck 鏡像檢測,糾錯
e2fsck -f /dev/loop12p2
e2fsck 1.46.5 (30-Dec-2021)
第 1 遍:檢查 inode野哭、塊在塔,和大小
第 2 遍:檢查目錄結(jié)構
第 3 遍:檢查目錄連接性
第 4 遍:檢查引用計數(shù)
第 5 遍:檢查組概要信息
Inode 位圖末尾的填充值未設置。 處理<y>? 是
rootfs:***** 文件系統(tǒng)已被修改 *****
rootfs:1445/6656 文件(0.0% 為非連續(xù)的)拨黔,5165/26624 塊
3.7.2 使用 resize2fs 命令,同步分區(qū)大小
resize2fs /dev/loop12p2
resize2fs 1.46.5 (30-Dec-2021)
將 /dev/loop12p2 上的文件系統(tǒng)調(diào)整為 2596864 個塊(每塊 4k)篱蝇。
/dev/loop12p2 上的文件系統(tǒng)大小已經(jīng)調(diào)整為 2596864 個塊(每塊 4k)。
3.8 卸載
3.8.1 卸載系統(tǒng)中的分區(qū)
partx -d /dev/loop12
3.8.2 卸載loop設備
losetup -d /dev/loop12
3.9 安裝麸塞、使用
此處不再贅述涧衙。
文中部分參考網(wǎng)絡。
————————————————
原文鏈接:https://blog.csdn.net/yuanmingming521/article/details/126741073