forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 3276|回复: 3

    [经验分享] 关于BE3600的U盘挂载问题解决思路

    [复制链接]

    2

    主题

    14

    帖子

    82

    积分

    注册会员

    Rank: 2

    积分
    82
     楼主| 发表于 2025-4-29 17:00:53 | 显示全部楼层 |阅读模式
    本帖最后由 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.sh
    remount_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"



    回复

    使用道具 举报

    2

    主题

    14

    帖子

    82

    积分

    注册会员

    Rank: 2

    积分
    82
     楼主| 发表于 2025-4-29 17:01:56 | 显示全部楼层
    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
    回复

    使用道具 举报

    2

    主题

    14

    帖子

    82

    积分

    注册会员

    Rank: 2

    积分
    82
     楼主| 发表于 2025-4-29 17:03:02 | 显示全部楼层
    3.3 /etc/fstab修改
    # <文件系统> <挂载点>   <文件系统类型>  <挂载选项>          <转储> <检查>
    /dev/sda1    /mnt/newdata   ext4    rw,relatime    0   0
    回复

    使用道具 举报

    2

    主题

    14

    帖子

    82

    积分

    注册会员

    Rank: 2

    积分
    82
     楼主| 发表于 2025-4-29 17:06:20 | 显示全部楼层
    通过以上修改后,docker能够使用U盘的空间(需在docker配置中改为自己的U盘路径 /mnt/newdata),但是docker不能够跑起来,挂载U盘正常。也算折腾的副产品了。做个Mark,需大神出手,对这个固件重新编译下,解决docker问题。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2025-6-3 16:32 , Processed in 0.020597 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表