Openwrt分区扩容,重启不失效,群晖虚拟机可用

Openwrt官网下载的镜像默认只有120MB,根分区也仅有104MB。如果要安装ADGuard Home、Nginx、Clash等服务就很容易不够用了。这里介绍一种安装前扩容根分区的办法,相比于安装后的方法,重启后不会失效。

需要准备一台Linux,虚拟机也可以,这里介绍Ubuntu上的操作方法,其他系统类似。

安装依赖的工具:

  • wget
  • gzip
  • lsblk
  • e2fsck
  • resize2fs
  • losetup
  • fdisk
  • partx
sudo apt-get install wget gzip util-linux mount fdisk

这里使用的是:openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz

# 下载:官网或者国内镜像网址,根据实际情况选择 # 官网下载地址:https://downloads.openwrt.org/releases/22.03.0/targets/x86/64/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz # 国内镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/openwrt/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.1 使用 dd 命令增加镜像空间

使用dd命令,将镜像文件增加到10G(群晖虚拟机最小磁盘大小)。

注意:dd命令中“count=512”,如果是其他值可能会失败

也可根据需要修改bs的值,改为自己需要的大小

dd if=/dev/zero bs=20080k count=512 >> openwrt-22.03.0-x86-64-generic-ext4-combined.img记录了512+0 的读入 记录了512+0 的写出 10527703040字节(11 GB,9.8 GiB)已复制,104.59 s,101 MB/sls -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 查看挂载的设备的名称

此处名为 /dev/loop12,实际每个人loop后面的数值可能不一样,注意根据文件名区分

losetupNAME 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 

对应上面查到的“/dev/loop12”,可以看到块大小已经增加到10G左右

lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ********************(省略其它)*********************** loop12 7:12 0 9.9G 0 loop 

3.4 读取分区信息,加载到系统

partx -a /dev/loop12
lsblkNAME 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就是扩容的分区,虽然已经增加到10G,但是识别到的仍然是120M。所以还需要进行下面的操作。

3.5 使用 fdisk 命令调整分区大小

fdisk /dev/loop12欢迎使用 fdisk (util-linux 2.37.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。# 输入p查看分区信息,记住/dev/loop12p2分区的开始扇区 命令(输入 m 获取帮助): p Disk /dev/loop12:9.92 GiB,10654056448 字节,20808704 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x266b958d设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/loop12p1 * 512 33279 32768 16M 83 Linux /dev/loop12p2 33792 246783 212992 104M 83 Linux# 删除/dev/loop12p2分区,输入d之后输入2(默认) 命令(输入 m 获取帮助): d 分区号 (1,2, 默认 2): 2分区 2 已删除。# 输入n新建分区 命令(输入 m 获取帮助): n 分区类型p 主分区 (1 primary, 0 extended, 3 free)e 扩展分区 (逻辑分区容器) # 输入p主分区 选择 (默认 p): p # 输入2(默认) 分区号 (2-4, 默认 2): 2 # 输入分区2的开始扇区,一定要和上面的一样,这里是33792!!! 第一个扇区 (33280-20808703, 默认 34816): 33792 # 输入结束扇区,一定要比33792大,如果直接回车就是全部剩余都将作为第二分区,这里直接回车 Last sector, +/-sectors or +/-size{K,M,G,T,P} (33792-20808703, 默认 20808703):创建了一个新分区 2,类型为“Linux”,大小为 9.9 GiB。 分区 #2 包含一个 ext4 签名。# 提示,是否移除分区的签名,这里一定要输入n,不然镜像会出问题!!! 您想移除该签名吗? 是[Y]/否[N]: N# 输入w保存我们的更改 命令(输入 m 获取帮助): w# 会有警告,这里不用管 分区表已调整。 将调用 ioctl() 来重新读分区表。 重新读取分区表失败。: 无效的参数# 提示说内核依然会使用旧的分区表,新的分区表需要在下次重启或运行 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 更新新的分区信息,查看新的分区表

partx -u /dev/loop12 
lsblkNAME 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分区已经扩容成功

3.7 同步更改后的分区信息到系统内核

e2fsck -f /dev/loop12p2e2fsck 1.46.5 (30-Dec-2021) 第 1 遍:检查 inode、块,和大小 第 2 遍:检查目录结构 第 3 遍:检查目录连接性 第 4 遍:检查引用计数 第 5 遍:检查组概要信息 Inode 位图末尾的填充值未设置。 处理<y>? 是rootfs:***** 文件系统已被修改 ***** rootfs:1445/6656 文件(0.0% 为非连续的),5165/26624 块 
resize2fs /dev/loop12p2resize2fs 1.46.5 (30-Dec-2021) 将 /dev/loop12p2 上的文件系统调整为 2596864 个块(每块 4k)。 /dev/loop12p2 上的文件系统大小已经调整为 2596864 个块(每块 4k)。

3.8 卸载

partx -d /dev/loop12
losetup -d /dev/loop12

3.9 安装、使用

此处不再赘述。

文中部分参考网络。

原文链接:http://www.taodudu.cc/news/show-4983224.html

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享