openwrt 扩展根目录空间
我在软路由上通过 esxi 安装了 openwrt 作为路由系统。虚拟机分配了 5 GB 作为存储空间,但是安装完成后通过命令查看发现系统识别到的空间只有很小:
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 252.0M 241.4M 5.5M 98% /rom
tmpfs 496.5M 68.0K 496.4M 0% /tmp
/dev/sda1 15.7M 3.8M 11.6M 25% /boot
/dev/sda1 15.7M 3.8M 11.6M 25% /boot
tmpfs 512.0K 0 512.0K 0% /dev
其中 /dev/root
是系统固件目录,不用考虑。/dev/sda*
就是系统实际可用的硬盘空间。我明明分配了 5 GB 空间给 openwrt 但是由于系统分区是在下载的固件中定义好的,所以其余空间就没有被识别。由于默认存储空间过小,当安装了过多的插件后,会提示空间不足导致无法安装更多插件:
verify_pkg_installable: Only have 0kb available on filesystem /overlay, pkg luci-app-openvpn needs 9
opkg_install_cmd: Cannot install package luci-app-openvpn
下面介绍如何将剩余空间挂在到 openwrt 中。
首先安装需要的插件,注意顺序不能错:
opkg update
opkg install block-mount e2fsprogs
opkg update
opkg install fdisk blkid
然后配置存储空间,注意 fdisk 指令后的几个选项:
fdisk -l
fdisk /dev/sda
m
n
p
<默认,回车> //–>分区号为3
<默认,回车>
<默认,回车>
w
reboot
重启后,格式化刚才建立的分区:
mkfs.ext4 /dev/sda3
reboot
重启后配置 fstab:
uci add fstab mount
# 将下面第一行命令输出的 UUID 替换第二行命令后的 UUID
blkid -s UUID /dev/sda3 | cut -d\" -f2
uci set fstab.@mount[-1].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
然后根目录复制到新的分区下:
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
然后启用引导:
/etc/init.d/fstab enable
/etc/init.d/fstab start
reboot
重启后再次查看系统分区信息:
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 252.0M 241.4M 5.5M 98% /rom
tmpfs 496.5M 1.0M 495.5M 0% /tmp
/dev/sda3 4.6G 257.2M 4.1G 6% /
/dev/sda1 15.7M 3.8M 11.6M 25% /boot
/dev/sda1 15.7M 3.8M 11.6M 25% /boot
tmpfs 512.0K 0 512.0K 0% /dev
可以看到 sda3 分区已经正常挂载了,后续可以继续安装需要的各种插件了。
参考链接
标签:无