之前安装了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
对空闲空间进行分区,默认分区类型为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配置页面只会显示安装在根目录的软件包,希望后面可以优化,将指定的安装目录加入空闲空间。