前言

一般来说,在将openwrt写入虚拟机的时候,它的默认大小由它的作者大神所编译,比如官方的原版写入后占用的磁盘空间为120.28M,可以说容量非常小。

直接在虚拟机中更改硬盘的大小,最终并非直接在系统中直接增加,仅仅只是未分配状态。

因此,在网上查了很多资料后,大多数都是针对overlay扩容,但是我这个版本根本就没有这个磁盘,谈何扩容。

最终在不懈地努力下,终于找到一个适合我的方法。

注意:此方法仅测试了官方的efi版本的,未测试其他

步骤

1.关机状态下,直接编辑虚拟机的硬盘容量

2.再次打开虚拟机,可以看到,即使调整了容量,并不会直接体现在系统里,仍然只有100M

3.SSH连接openwrt,输入以下命令安装必要软件

1
2
opkg update
opkg install block-mount e2fsprogs fdisk blkid vim

4.配置磁盘空间

依次输入以下命令:

  1. fdisk -l

    可以看到 /dev/sda 变为 2GB 了。

  2. fdisk /dev/sda

    这边输入 m 可以查看帮助,也可以按照我的来,直接跳过

  3. 输入 n (新建分区)

    出现3个提示,直接回车即可。

  4. 输入 p (打印分区信息),可以看到多了一个 sda3 的分区

  5. 输入 w (写入分区信息并退出)

  6. 输入 mkfs.ext4 /dev/sda3 (格式化分区) 并复制 UUID

  7. 重启 reboot

5.配置fstab

分别执行下面的命令:

1
2
3
4
5
6
7
8
9
uci add fstab mount
uci set fstab.@mount[-1].uuid=UUID #UUID改为你上面得到的值
uci set fstab.@mount[-1].options=rw,sync,noatime
uci set fstab.@mount[-1].fstype=ext4
uci set fstab.@mount[-1].enabled_fsck=1
uci set fstab.@mount[-1].enabled=1
uci set fstab.@mount[-1].target=/
uci set fstab.@mount[-1].device=/dev/sda3
uci commit fstab

6.将根目录复制到新的分区下

执行以下命令:

1
2
3
4
5
6
7
mkdir /mnt/sda3
mount /dev/sda3 /mnt/sda3
mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda3 -xf -
umount /tmp/cproot
umount /mnt/sda3

7.启用引导

1
2
/etc/init.d/fstab enable
/etc/init.d/fstab start

8.重启

reboot

进入系统查看分区信息

成功扩容了。

注意点

以上需要自行更改的一个是磁盘挂载的盘符,我这边是 /dev/sda3 ,另一个是 UUID,其他照抄就行。

最后

由于精力有限,只能测试 efi 的版本,其他几个版本均为测试,网上有很多教程都不是针对 efi 的,大家可以自行找一下。

之前也用过大神编译的,画面非常好看,功能也非常多,但是对我来说,我有自己的服务器,有服务器上的个人网盘,也有群晖,也有ddns ipv6动态域名解析做远程访问,所以那些功能对我来说比较多余,所以还是用个官方原版的,自行安装需要的软件。

这篇文章发出来记录一下,大概率根据我的个性,说不定过几天又要重新安装一遍。哈哈哈~