前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志系列芯片linux下格式化SD卡脚本工具

全志系列芯片linux下格式化SD卡脚本工具

作者头像
阿志小管家
发布2024-02-02 15:26:01
1250
发布2024-02-02 15:26:01
举报
文章被收录于专栏:全志嵌入式那些事
代码语言:javascript
复制
 #!/bin/bash

function pt_error()
{
    echo -e "\033[1;31mERROR: $*\033[0m"
}

function pt_warn()
{
    echo -e "\033[1;31mWARN: $*\033[0m"
}

function pt_info()
{
    echo -e "\033[1;32mINFO: $*\033[0m"
}

function install_package()
{
    PACKAGE=${1}
    if dpkg -s ${PACKAGE} 2>&1 | grep "not installed" > /dev/null; then    
        apt-get install ${PACKAGE} --force-yes -y
    fi
}

if [ $UID -ne 0 ]
    then
    pt_error "Please run as root."
    exit
fi

if [ $# -ne 1 ]; then
    pt_error "Usage:./format_sd.sh device"
    exit 1
fi

case $1 in
/dev/sd[a-z] | /dev/loop[0-9] | /dev/mmcblk1)
    if [ ! -e $1 ]; then
        pt_error "$1 does not exist."
        exit 1
    fi
    DEV_NAME=`basename $1`
    BLOCK_CNT=`cat /sys/block/${DEV_NAME}/size` ;;&
/dev/sd[a-z])
    DEV_PART_NAME=${DEV_NAME}1
    REMOVABLE=`cat /sys/block/${DEV_NAME}/removable` ;;
/dev/mmcblk1 | /dev/loop[0-9])
    DEV_PART_NAME=${DEV_NAME}p1
    REMOVABLE=1 ;;
*)
    pt_error "Unsupported SD reader"
    exit 0
esac

if [ $? -ne 0 ]; then
    pt_error "Error: Can't find device ${DEV_NAME}"
    exit 1
fi

if [ ${BLOCK_CNT} -le 0 ]; then
    pt_error "Error: NO media found in card reader."
    exit 1
fi

if [ ${BLOCK_CNT} -gt 64000000 ]; then
    pt_error "Error: Block device size (${BLOCK_CNT}) is too large"
    exit 1
fi

install_package dosfstools
umount /dev/${DEV_NAME}* >/dev/null 2>&1
pt_info "formatting ${DEV_NAME}, please wait..."
dd if=/dev/zero of=/dev/${DEV_NAME} bs=16M count=4
sync

fdisk /dev/$DEV_NAME <<EOF
o
n
p



w
EOF
mkfs.vfat /dev/${DEV_PART_NAME} -n SD
sync
pt_info "format success."

phoenixCard格式化失败,可用该脚本先格式化SD卡。使用方法:

代码语言:javascript
复制
sudo ./format_sd.sh 你的盘符

eg:

代码语言:javascript
复制
mod@archlinux sdcard $ sudo ./format_sd.sh /dev/sdb
INFO: formatting sdb, please wait...
记录了4+0 的读入
记录了4+0 的写出
67108864字节(67 MB,64 MiB)已复制,15.2602 s,4.4 MB/s

欢迎使用 fdisk (util-linux 2.36.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x00c807cc 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):创建了一个磁盘标识符为 0x476e6317 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):分区号 (1-4, 默认  1): 第一个扇区 (2048-60751871, 默认 2048): 最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-60751871, 默认 60751871): 
创建了一个新分区 1,类型为“Linux”,大小为 29 GiB。

命令(输入 m 获取帮助):分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

mkfs.fat 4.2 (2021-01-31)
INFO: format success.

原贴链接:https://bbs.aw-ol.com/topic/103/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档