X86 OpenWrt 分区扩容

By | 2019-09-12

之前安装了OpenWrt路由系统,结果查看系统只用了两百多M,我的硬盘是8G,太浪费空间了,而且如果长时间实用,安装更多的软件,后面空间可能会不够用。
这里教大家怎么扩容OpenWrt分区,充分利用磁盘空间。

================================================================
OpenWrt X86 安装教程
OpenWrt X86 编译教程
OpenWrt X86 分区扩容
================================================================

查看磁盘分配情况

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               252.0M     13.8M    233.0M   6% /
tmpfs                     1.9G      1.1M      1.9G   0% /tmp
/dev/sda1                15.7M      4.5M     10.9M  29% /boot
/dev/sda1                15.7M      4.5M     10.9M  29% /boot
tmpfs                   512.0K         0    512.0K   0% /dev

使用fdisk -l发现找不到命令,这里需要手动安装下

opkg install fdisk

安装后执行fdisk -l查看空间分配情况

root@OpenWrt:/# fdisk -l
Disk /dev/sda: 14.9 GiB, 16013942784 bytes, 31277232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6ad5f5a9

Device     Boot Start    End Sectors  Size Id Type
/dev/sda1  *      512  33279   32768   16M 83 Linux
/dev/sda2       33792 558079  524288  256M 83 Linux

对空闲空间进行分区

openwrt的fdisk貌似没有分区功能,没有fdisk -n命令,查找资料后发现可以使用cfdisk工具进行分区,cfdisk是一个基于curses的程序,用于分区任何硬盘驱动器
opkg install cfdisk

cfdisk

对空闲空间进行分区,默认分区类型为Linux
选择Free space——>primary——>Write——>yes
fdisk -l查看已经分好区了

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sda1  *       512    33279    32768   16M 83 Linux
/dev/sda2        33792   558079   524288  256M 83 Linux
/dev/sda3       559104 31277231 30718128 14.7G 83 Linux

先对分区进行格式化,然后进行挂载

mkfs.ext4 /dev/sda3
mkdir opt
mount -o rw /dev/sda3 opt/
root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               252.0M     14.2M    232.7M   6% /
tmpfs                     1.9G      1.1M      1.9G   0% /tmp
/dev/sda1                15.7M      4.5M     10.9M  29% /boot
/dev/sda1                15.7M      4.5M     10.9M  29% /boot
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda3                14.4G     40.0M     13.6G   0% /opt

调整安装目录

安装目录在配置文件/etc/opkg.conf中定义。配置文件中目的地址格式是以dest开头,紧跟着目的地址的名称,最后是目录路径,必须从跟目录开始。

dest root /
dest ram /tmp
dest soft /opt

安装目录定义后,目的地址名称就可以在安装命令中引用了。例如“-d ram”表示将软件安装到临时目录/tmp下。
安装命令类似如下格式:
opkg install <pkg> -d <目的地址>
例如:
先卸载之前安装的fdisk,opkg remove fdisk
重新安装到opt目录,opkg install fdisk -d soft
安装完成后,如果执行fdisk,并不会找到该命令,还需要设置环境变量PATH,编译配置文件/etc/profile
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/opt/sbin:/opt/usr/sbin:/opt/usr/bin"
export LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib

修改后使用正常

root@OpenWrt:/# ls /opt/usr/sbin/
fdisk    hostapd
root@OpenWrt:/# fdisk -l
Disk /dev/sda: 14.94 GiB, 16013942784 bytes, 31277232 sectors
Disk model: KINGSTON RBU-SMS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7fd3e4c3

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sda1  *       512    33279    32768   16M 83 Linux
/dev/sda2        33792   295935   262144  128M 83 Linux
/dev/sda3       296960 31277231 30980272 14.8G 83 Linux

有些软件安装包会在Init.d生成启动脚本,比如openvpn,这时就需要创建一个启动软连接;例如:
ln -s /opt/etc/init.d/openvpn /etc/init.d/openvpn

许多软件包在自定义的位置不能启动或者即使启动也不能成功执行,因为它在默认位置读取配置文件,因此需要在参数中制定配置文件位置,否则会因不能找到必须的配置文件而出错;
还有些软件包在更改了目录后需要额外的软连接或者修改动态链接库文件名后缀才能使用,并且Luci配置页面只会显示安装在根目录的软件包,希望后面可以优化,将指定的安装目录加入空闲空间。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注