You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux系统下自动挂载SD卡最大可用分区的方案咨询

自动挂载SD卡最大可用分区的解决方案

问题背景

现有两种SD卡:

SD卡类型可用分区分区大小
A型(烧录过镜像)mmcblk0p1、mmcblk0p2mmcblk0p1: 30Mb, mmcblk0p2: 31Gb
B型(全新)mmcblk0p1mmcblk0p1: 31Gb

通过/etc/fstab指定固定分区挂载时,更换SD卡类型会失效,需要实现无视SD卡类型,开机自动挂载最大可用分区的功能。


方法一:自定义脚本 + Systemd服务(推荐开机自动挂载)

1. 编写挂载脚本

创建/usr/local/bin/mount-largest-sd-part.sh,内容如下:

#!/bin/bash

# 挂载点路径,可自行修改
MOUNT_POINT="/mnt/sdcard"
# SD卡主设备,根据实际情况调整(比如/dev/sdb如果是USB读卡器)
SD_DEVICE="/dev/mmcblk0"

# 创建挂载点
mkdir -p "$MOUNT_POINT"
# 卸载已有挂载(避免冲突)
umount "$MOUNT_POINT" 2>/dev/null

# 筛选该设备下最大的分区
LARGEST_PART=$(lsblk -n -o NAME,SIZE,TYPE "$SD_DEVICE" \
    | grep "part" \
    | sort -k2 -n -r \
    | head -n1 \
    | awk '{print "/dev/"$1}')

# 执行挂载
if [ -n "$LARGEST_PART" ]; then
    # 如需指定文件系统,添加-t 参数,比如 mount -t ext4 "$LARGEST_PART" "$MOUNT_POINT"
    mount "$LARGEST_PART" "$MOUNT_POINT"
    echo "Success: Mounted $LARGEST_PART to $MOUNT_POINT"
else
    echo "Error: No valid partition found on $SD_DEVICE"
fi

2. 赋予脚本执行权限

chmod +x /usr/local/bin/mount-largest-sd-part.sh

3. 创建Systemd服务

创建/etc/systemd/system/mount-sdcard.service:

[Unit]
Description=Auto mount largest SD card partition
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/mount-largest-sd-part.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

4. 启用并启动服务

systemctl daemon-reload
systemctl enable mount-sdcard.service
systemctl start mount-sdcard.service

方法二:Udev规则(支持热插拔+开机自动处理)

如果需要SD卡热插拔时也自动挂载最大分区,可搭配udev规则:

  1. 创建udev规则文件/etc/udev/rules.d/99-mount-largest-sd.rules:
# 匹配SD卡主设备,根据实际调整KERNEL值
SUBSYSTEM=="block", KERNEL=="mmcblk0", ACTION=="add", RUN+="/usr/local/bin/mount-largest-sd-part.sh"
  1. 重新加载udev规则:
udevadm control --reload-rules
udevadm trigger

注意事项

  • 若SD卡不是/dev/mmcblk0,用lsblk命令查看实际设备名后替换脚本和规则中的对应值。
  • 如需让普通用户访问挂载点,可在mount命令中添加权限参数,比如:
    mount -o uid=1000,gid=1000 "$LARGEST_PART" "$MOUNT_POINT"
    
    (替换1000为你的用户UID/GID,可通过id命令查看)
  • 如需指定文件系统类型,在mount命令中添加-t ext4(或对应文件系统)参数。

内容的提问来源于stack exchange,提问作者curosity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:54:17