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

请求编写Bash脚本遍历文件夹并使用dd刷写指定img.xz镜像

实现eMMC镜像刷写的Bash脚本方案

直接上可运行的脚本,满足指定文件刷写或交互式选择刷写的需求:

#!/bin/bash

# 切换到/img/目录,失败则退出
cd /img/ || { echo "无法进入/img/目录,脚本退出"; exit 1; }

# 收集所有.img.xz镜像文件
IMAGE_FILES=(*.img.xz)

# 检查是否存在镜像文件
if [ ${#IMAGE_FILES[@]} -eq 0 ]; then
    echo "/img/目录下未找到任何.img.xz镜像文件"
    exit 1
fi

# 处理命令行参数:如果指定了镜像文件名,直接验证并刷写
if [ $# -eq 1 ]; then
    TARGET_IMAGE="$1"
    # 检查指定文件是否存在且是.img.xz格式
    if [[ -f "$TARGET_IMAGE" && "$TARGET_IMAGE" == *.img.xz ]]; then
        echo "开始刷写镜像: $TARGET_IMAGE 到 /dev/mmcblk0"
        echo "警告:此操作会清除/dev/mmcblk0上的所有数据!按Enter继续,按Ctrl+C取消"
        read -r
        unxz -c "$TARGET_IMAGE" | dd of=/dev/mmcblk0 bs=4096 status=progress
        if [ $? -eq 0 ]; then
            echo "镜像刷写完成"
        else
            echo "刷写过程中出现错误"
        fi
        exit 0
    else
        echo "指定的文件不存在或不是.img.xz格式"
        exit 1
    fi
fi

# 无参数时,列出所有镜像供用户选择
echo "找到以下镜像文件,请选择要刷写的序号:"
select IMAGE in "${IMAGE_FILES[@]}" "退出"; do
    if [ "$IMAGE" == "退出" ]; then
        echo "脚本已退出"
        exit 0
    elif [[ -n "$IMAGE" ]]; then
        echo "开始刷写镜像: $IMAGE 到 /dev/mmcblk0"
        echo "警告:此操作会清除/dev/mmcblk0上的所有数据!按Enter继续,按Ctrl+C取消"
        read -r
        unxz -c "$IMAGE" | dd of=/dev/mmcblk0 bs=4096 status=progress
        if [ $? -eq 0 ]; then
            echo "镜像刷写完成"
        else
            echo "刷写过程中出现错误"
        fi
        break
    else
        echo "无效选择,请重新输入"
    fi
done

脚本关键功能说明

  • 目录切换:启动时自动切换到/img/,切换失败直接退出,避免后续操作出错
  • 两种运行模式:
    • 指定文件名模式:直接在脚本后跟上镜像文件名(如./flash.sh my-image.img.xz),脚本验证文件有效性后执行刷写
    • 交互式选择模式:不带参数运行脚本,自动列出所有.img.xz文件,用户选择序号后执行刷写
  • 安全提示:刷写前弹出警告,要求用户确认,防止误操作
  • 状态反馈:使用dd的status=progress参数实时显示刷写进度,方便监控

注意事项

  • 权限要求:必须以root用户运行脚本(live环境通常默认root,若不是需加sudo)
  • 设备节点确认:确保/dev/mmcblk0是目标eMMC设备,可通过lsblk命令核对设备大小和分区信息,避免刷错存储设备
  • 数据备份:刷写会清除目标设备所有数据,操作前务必确认无重要数据
  • live环境兼容性:脚本依赖unxz和dd工具,主流Linux live镜像(如Ubuntu Live、Debian Live)均默认包含这些工具,无需额外安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:45:02