如何使用 OpenWrt挂载USB 在U盘上安装软件
OpenWrt挂载USB 如果你的路由器内存比较小,安装空间没有那么大的话,可以考虑 OpenWrt挂载USB 作为系统存储,这样 OpenWrt 在U盘上安装软件包,就不用担心软件大小的问题了。
参考 OpenWrt挂载USB 官方文档:https://openwrt.org/docs/guide-user/storage/usb-drives-quickstart
首先需要安装 OpenWrt挂载USB 的软件包列表:
步骤1:安装 OpenWrt挂载USB 的所需软件
- kmod-usb-ohci USB芯片的驱动。
- kmod-usb2,kmod-usb3 USB2.0、USB3.0驱动。
- kmod-usb-storage,kmod-usb-storage-extraUSB,kmod-usb-storage-uas储存驱动。
- block-mount,blockd挂载程序(安装完成后重启会在LuCI界面的系统下出现挂载点选项)。
- kmod-fs-ext4,kmod-fs-vfat,ntfs-3g,kmod-fs-ntfs分别是 ext4 分区格式支持,FAT 分区格式支持,和 NTFS 分区格式支持。kmod-fs-ntf是NTFS的内核驱动。
需要安装的软件包:
- kmod-usb-ohci
- kmod-usb2
- kmod-usb3
- kmod-usb-core
- kmod-usb-storage
- kmod-usb-storage-extras
- kmod-usb-storage-uas
- block-mount
- blockd
- kmod-fs-msdos
- kmod-fs-ext4
- kmod-fs-vfat
- kmod-fs-ntfs
- ntfs-3g
- e2fsprogs
- cfdisk
- hd-idle
- luci-i18n-hd-idle-zh-cn
- smartmontools
可以在系统的操作界面中安装,也可以通过SSH在路由器上安装,安装完成后,重新启动路由器。
opkg update opkg install kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-usb-core kmod-usb-storage kmod-usb-storage-extras kmod-usb-storage-uas block-mount blockd opkg install kmod-fs-msdos kmod-fs-ext4 kmod-fs-vfat kmod-fs-ntfs ntfs-3g e2fsprogs cfdisk hd-idle luci-i18n-hd-idle-zh-cn smartmontools
步骤2:设置挂载点
首先格式化U盘,将U盘转换为ext4系统,SSH到路由器,使用命令将U盘格式化ext4系统。如果之前没有安装 e2fsprogs 需要安装 e2fsprogs 才能格式化U盘。查看/dev/目录可以看到U盘。如果U盘只有一个分区,OpenWrt系统会自动识别为/dev/sda1
ls -al /dev/sd* mkfs.ext4 /dev/sda1 block detect | uci import fstab uci set fstab.@mount[0].enabled='1' && uci set fstab.@global[0].anon_mount='1' && uci commit fstab /sbin/block mount && service fstab enable #设置完毕后重新启动路由器 reboot
新建挂载点
在Openwrt的LUCI界面,系统->挂载点,自动加载配置,在挂载点处点击新增,挂载采用UUID方式挂载,这样可以保证重启后,总是挂载上正确的启动硬盘。这样就可以配置自动挂载U盘了。挂载点选择 /overlay 然后确认,点击保存并应用。
注意:一定要勾选挂载点里面的已启用,否则会挂载失败、
重新启动路由器后,系统进入U盘系统模式,U盘挂载成功。可以看到,已挂载的文件系统中,/dev/sda1 已经挂载在/overlay上了。此时是Openwrt系统已经恢复了出厂设置,还需要重新安装所需的软件源和软件包。在U盘系统下重新安装软件包,LUCI管理界面和SSH终端安装软件包都可以。
关于交换分区,挂载点配置完毕后,可以在母系统生成一个交换文件swapfile,作为交换分区即可。接下来重新启动后进入U盘的全新子系统。
dd if=/dev/zero of=/mnt/sda1/swapfile bs=1024 count=500000 mkswap /mnt/sda1/swapfile swapon /mnt/sda1/swapfile
启用交换分区
在U盘的子系统中,重新安装挂载点相关软件,之后SSH路由器,在系统中新建一个交换文件swapfile, 大小200MB作为交换分区。新建交换分区时候请耐心等待。
SSH进路由器,输入如下命令新建交换分区:
#新建swapfile交换分区 dd if=/dev/zero of=/overlay/swapfile bs=1024 count=200000 #将swapfile设置为swap空间 mkswap /overlay/swapfile #启用交换空间 swapon /overlay/swapfile #查看是否增加swap分区 free -h
如果你想删除交换分区,需要先关闭交换分区,然后再进行删除。
swapoff /overlay/swapfile rm /overlay/swapfile
配置交换分区
在OpenWrt管理页面,系统->挂载点, 交换分区-> 点击新增,在设备中选择自定义, 然后输入我们的上面生成交换文件 /overlay/swapfile , 勾选上面的启用选项, 保存应用。
到这里挂载U盘的设置已经全部完成了。
扩展阅读:关于“NTFS”、“FAT32”、“exFAT”与文件系统的区别
FAT32
32位文件分配表[文件分配表:FAT]被称为“FAT32 ”。根据位数的不同,也有“FAT16”和“FAT12”,但最近主要的FAT是32bit。
这个文件系统主要用在 Windows 98/Me 中,但后来的操作系统继续支持它。它可以与最新版本的Windows 11一起使用,也可以与MacOS和Linux等其他操作系统一起使用。
如果您将“64GB”USB 闪存格式化为“FAT32”,则根据 Windows 规范,最多只能识别“32GB”容量。按照“FAT32”的标准,它当然可以处理2TB,但如果你想在Windows上格式化容量大于32GB的存储设备,就必须使用第三方格式化程序。
NTFS
NT文件系统[NTFS]是Windows NT系列的标准文件系统,是目前Windows的主流文件系统。
由于是 NT 系统,因此可以与 Windows NT 或更高版本的操作系统(2000/XP 或更高版本)一起使用,但不能与 Windows 95、Windows 98 等一起使用。
NTFS 理论上可以管理 2 64 -1 个集群卷(最多 16 EB),但这也受到计算机性能的限制。
但是,对于“2048 KB”的集群大小,Windows 10 版本 1709 及更高版本最多支持“8 PB(PB)”(以及文件大小)。“Peta”是“Tera”的 1000 倍。支持超维度能力,尽管有限。
一些新的录制设备支持“4KB”扇区大小,如果操作系统和存储设备都原生支持4K,则可以更有效地管理大容量设备。
exFAT
exFAT [Extended File Allocation Table]是在传统 FAT 的基础上改进的文件系统。
针对 USB 闪存和 SD 卡等闪存设备优化的文件系统。
最大的优点是它支持大磁盘和文件大小。如果你使用最新的Windows,它支持“最大512TB的卷”和“最大128PiB的文件”,所以你可以认为一般使用几乎没有实际限制。
如果您想在计算机上使用外部 HDD/SSD (如扩展驱动器)而不移动它,您可以将其设置为“NTFS”没有任何问题。连接时,使用“exFAT”而不是“NTFS”进行格式化可能会管理数据更有效率。
但是,虽然命名为 FAT,但它与常规的 FAT32 不兼容,因此 exFAT 无法在仅支持 FAT32 的设备上使用。
“exFAT”还与 Apple 的 MacOS 兼容,因此在与 Windows 和 Mac 共享存储设备时,“exFAT”是最有可能的候选者。
如果是 NTFS,MacOS 可能无法很好地读取。也支持“FAT32”,但正如预期的那样,数据容量限制很严格,所以如果您处理大量数据,“exFAT”将是一个安全的选择。