关于BE3600的U盘挂载问题解决思路
本帖最后由 suntiny 于 2025-4-29 21:07 编辑经过几天Docker的折腾,主要是先运行Docker,然后不停死机,从Docker的存储空间,内存,CPU方面不停的尝试。Docker 没有运行起来,但是U盘挂载倒是解决了。
1、主要原因是Be3600系统只要有U盘,在启动时就挂在/tmp/mountd/disk1_part1。
2、解决思路,待路由器启动完成后,将原挂载解绑并重新挂载。
3、需要对三个文件进行配置。
3.1 /etc/config/rc.local。这个是路由器启动后接着启动的系统配置文件。更改内容如下:
#原有<
# Put your custom commands here that should be executed once# the system init finished. By default this file does nothing.#!/bin/sh
. /lib/functions/gl_util.shremount_ubifs#原有>
# rc.conf 示例配置# 系统初始化配置项
# 设置开机启动时加载的服务
# 确保需要的服务在启动时加载
STARTUP_SERVICES="syslogd network mountd"
# 确保 /mnt/newdata 存在并且正确挂载
# 设置 /dev/sda1 挂载到 /mnt/newdata
mount_extra_1="mkdir -p /mnt/newdata"
mount_extra_2="umount /tmp/mountd/disk1_part1" # 卸载 /tmp/mountd/disk1_part1
mount_extra_3="mount /dev/sda1 /mnt/newdata" # 挂载 /dev/sda1 到 /mnt/newdata
# Docker 服务设置
# 如果您希望 Docker 使用 /mnt/newdata,确保 Docker 配置正确
docker_config="/etc/config/dockerd"
docker_data_root="/mnt/newdata"
docker_restart_cmd="/etc/init.d/dockerd restart"
# 启动 Docker 服务并设置正确的数据目录
start_docker="start_service dockerd"
# 在启动时,确保 /dev/sda1 被正确挂载到 /mnt/newdata
mount_extra_4="mount -o rw,relatime /dev/sda1 /mnt/newdata"
# 在 rc.local 中确保处理挂载与卸载逻辑
rc_local_commands="
# 确保 /mnt/newdata 存在
mkdir -p /mnt/newdata
# 确保 /mnt/newdata 没有被 overlayfs 占用
if mount | grep -q '/mnt/newdata'; then
echo '检测到 /mnt/newdata 已经被挂载,尝试卸载 overlayfs...'
umount /mnt/newdata
if [ $? -eq 0 ]; then
echo '/mnt/newdata 卸载成功!'
else
echo '/mnt/newdata 卸载失败,可能是因为正在使用中!'
fi
fi
# 挂载 /dev/sda1 到 /mnt/newdata
echo '挂载 /dev/sda1 到 /mnt/newdata...'
mount /dev/sda1 /mnt/newdata
if [ $? -eq 0 ]; then
echo '/dev/sda1 挂载成功!'
else
echo '/dev/sda1 挂载失败,请检查日志或设备状态!'
fi
# 重启 Docker 服务(如果需要的话)
echo '重启 Docker 服务...'
/etc/init.d/dockerd restart
"
# 确保 /dev/sda1 不会挂载到 /tmp/mountd/disk1_part1
mount_extra_5="umount /tmp/mountd/disk1_part1"
3.2 /etc/config/fstab修改
config global
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'
# 确保 /mnt/newdata 被挂载
config mount
option target '/mnt/newdata'
option device '/dev/sda1'
option fstype 'ext4'
option options 'rw,relatime'
option enabled '1'
# 避免 /tmp/mountd/disk1_part1 被挂载
# 这里不添加该配置项,确保没有挂载到 /tmp/mountd/disk1_part1
3.3 /etc/fstab修改
# <文件系统> <挂载点> <文件系统类型><挂载选项> <转储> <检查>
/dev/sda1 /mnt/newdata ext4 rw,relatime 0 0
通过以上修改后,docker能够使用U盘的空间(需在docker配置中改为自己的U盘路径 /mnt/newdata),但是docker不能够跑起来,挂载U盘正常。也算折腾的副产品了。做个Mark,需大神出手,对这个固件重新编译下,解决docker问题。
页:
[1]