Linux如何给SD卡分区?操作步骤与工具使用指南?

在Linux系统中对SD卡进行分区是一项常见操作,通常用于制作启动盘、扩展存储空间或实现数据隔离,由于SD卡容量较小且需兼容多种设备,分区时需谨慎操作,避免数据丢失,本文将详细介绍Linux环境下分区的完整流程,包括准备工作、工具选择、具体操作步骤及注意事项。

linux 如何给sd卡分区

准备工作

在开始分区前,需完成以下准备工作,确保操作安全且高效:

识别SD卡设备名

插入SD卡后,通过命令行识别其设备名(如/dev/sdb/dev/mmcblk0等),避免误操作其他存储设备。

  • 使用lsblk命令:
    lsblk

    输出结果中,容量与SD卡匹配的设备即为SD卡(例如/dev/sdb,容量为32GB)。

  • 使用fdisk -l命令:
    sudo fdisk -l

    注意:若设备名以mmcblk开头(如/dev/mmcblk0),表示是嵌入式设备的内置存储器(如树莓派),而/dev/sd*通常为外接存储设备。

备份重要数据

分区会清空SD卡所有数据,若SD卡中有重要文件,需提前备份至其他存储设备,可通过cprsync命令备份,

sudo cp -r /path/to/sdcard/* /path/to/backup/

安装必要工具

Linux系统通常已内置分区工具(如fdiskparted),若无可通过包管理器安装:

  • Ubuntu/Debian:sudo apt install parted gdisk
  • CentOS/RHEL:sudo yum install parted gdisk

分区工具选择

Linux中常用的分区工具包括fdisk(MBR分区表)、parted(支持MBR/GPT)和gparted(图形界面),本文以fdisk(适合新手)和parted(功能更强大)为例展开说明,两者对比如下:

linux 如何给sd卡分区

工具 支持分区表 特点 适用场景
fdisk MBR 简单易用,交互式操作 小容量SD卡(≤2TB),MBR分区表
parted MBR/GPT 支持大容量分区,可调整分区大小 大容量SD卡(>2TB),需GPT分区表
gparted MBR/GPT 图形界面,可视化操作 不熟悉命令行的用户

具体分区步骤

以常见的“FAT32启动分区+ext4根分区”为例(适用于树莓派等单板电脑),演示fdiskparted的分区流程。

(一)使用fdisk分区(MBR分区表)

fdisk适合小容量SD卡,操作简单,但最大支持2TB容量和4个主分区。

卸载SD卡

分区前需确保SD卡未被挂载,使用umount命令卸载(若提示“device is busy”,需先关闭占用进程):

sudo umount /dev/sdb1  # 卸载分区(若有多个分区需逐个卸载)
sudo umount /dev/sdb   # 卸载整个设备(若已挂载)

启动fdisk并创建分区表

sudo fdisk /dev/sdb

进入交互模式后,按以下步骤操作:

  • 输入o:清空原有分区表,创建新的MBR分区表。
  • 输入n:创建新分区。
    • 提示Partition type时,输入p选择主分区(Primary)。
    • 提示Partition number时,输入1(分区号默认从1开始)。
    • 提示First sector时,直接回车(默认从起始扇区开始)。
    • 提示Last sector时,输入+100M(设置启动分区大小为100MB,可根据需求调整)。
  • 输入n:创建第二个分区(根分区)。
    • 分区类型选p,分区号2,起始扇区回车,结束扇区输入+30G(剩余空间全部分配,若SD卡为32GB则用+32G)。
  • 输入a:激活启动分区(将第一个分区设为可启动)。
  • 输入w:保存分区表并退出。

格式化分区

  • 格式化启动分区为FAT32(兼容性最好):
    sudo mkfs.vfat -F 32 /dev/sdb1
  • 格式化根分区为ext4(Linux文件系统):
    sudo mkfs.ext4 /dev/sdb2

(二)使用parted分区(GPT分区表)

parted支持大容量分区和GPT分区表,适合SD卡容量超过2TB的场景。

卸载SD卡

fdisk,先卸载SD卡及其所有分区。

创建GPT分区表

sudo parted /dev/sdb

进入parted交互模式后:

linux 如何给sd卡分区

  • 输入mklabel gpt:创建GPT分区表(替代MBR)。
  • 输入mkpart primary fat32 1MiB 512MiB:创建第一个分区(FAT32,启动分区,起始1MiB对齐性能,大小512MB)。
  • 输入mkpart primary ext4 512MiB 100%:创建第二个分区(ext4,根分区,剩余空间全部分配)。
  • 输入set 1 boot on:激活第一个分区的启动标志。
  • 输入quit:退出parted

格式化分区

  • 格式化启动分区为FAT32:
    sudo mkfs.vfat -F 32 /dev/sdb1
  • 格式化根分区为ext4:
    sudo mkfs.ext4 /dev/sdb2

挂载与验证

分区格式化后,需挂载分区以验证是否成功,并设置开机自动挂载(可选)。

创建挂载点

sudo mkdir -p /mnt/sdcard/boot  # 启动分区挂载点
sudo mkdir -p /mnt/sdcard/root  # 根分区挂载点

临时挂载

sudo mount /dev/sdb1 /mnt/sdcard/boot  # 挂载启动分区
sudo mount /dev/sdb2 /mnt/sdcard/root  # 挂载根分区

验证挂载

df -h  # 查看挂载信息,确认分区已挂载
ls -l /mnt/sdcard/boot  # 检查启动分区内容
ls -l /mnt/sdcard/root  # 检查根分区内容

卸载测试

sudo umount /mnt/sdcard/boot
sudo umount /mnt/sdcard/root

设置开机自动挂载(可选)

通过修改/etc/fstab实现开机自动挂载,需先获取分区的UUID:

sudo blkid /dev/sdb1  # 获取启动分区UUID
sudo blkid /dev/sdb2  # 获取根分区UUID

编辑/etc/fstab

sudo nano /etc/fstab
```  替换UUID为实际值):  

UUID=xxxx-xxxx /mnt/sdcard/boot vfat defaults,utf8,umask=000 0 2
UUID=xxxxxxxxxxxx /mnt/sdcard/root ext4 defaults 0 2


保存后,执行`sudo mount -a`测试是否自动挂载成功。
### **五、常见问题处理**
1. **分区后SD卡无法识别**  
   - 原因:未刷新分区表或设备未正确卸载。  
   - 解决:执行`sudo partprobe`或重启系统;若仍无法识别,检查SD卡是否损坏。
2. **挂载时提示“权限不足”**  
   - 原因:普通用户无权限操作设备。  
   - 解决:挂载时加`sudo`,或通过`sudo chmod 777 /mnt/sdcard/*`调整挂载点权限(不推荐,存在安全风险)。
3. **分区大小显示错误**  
   - 原因:文件系统开销导致实际可用容量小于标注容量(正常现象)。  
   - 解决:通过`df -h`查看实际可用空间,标注容量为理论值。
### **六、相关问答FAQs**
**问题1:为什么用`fdisk`分区后,SD卡在Windows系统中无法识别?**  
解答:`fdisk`默认创建MBR分区表,而Windows系统可能无法识别MBR分区的引导标志,若需在Windows中使用,可通过`diskpart`命令清除引导标志(`select partition 1`,`attribute clear readonly`),或直接使用`parted`创建GPT分区表(Windows 10及以上版本支持GPT启动)。
**问题2:如何删除SD卡所有分区并恢复为原始状态?**  
解答:  
1. 卸载SD卡:`sudo umount /dev/sdb*`。  
2. 使用`fdisk`或`parted`清空分区表:  
   - `fdisk`:`sudo fdisk /dev/sdb`,输入`d`删除所有分区,输入`w`保存。  
   - `parted`:`sudo parted /dev/sdb`,输入`mklabel msdos`或`mklabel gpt`重建分区表。  
3. 格式化整个设备:`sudo mkfs.vfat -I /dev/sdb`(`-I`表示强制格式化整个设备,忽略分区表),完成后SD卡将恢复为未分区的原始状态。
通过以上步骤,即可在Linux系统中完成SD卡的分区操作,需注意,分区操作具有风险,务必提前备份数据并仔细确认设备名,避免误操作导致其他存储设备数据丢失。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28070.html

(0)
酷番叔酷番叔
上一篇 2小时前
下一篇 1小时前

相关推荐

  • Linux卡死?如何快速终止进程?

    核心方法:kill 命令kill 通过发送信号控制进程,默认信号为 SIGTERM(15),允许进程安全退出,步骤与示例:查找目标进程 PID:ps aux | grep "进程名" # ps aux | grep firefox输出示例:user 1234 0.5 2.1 1023456……

    2025年7月25日
    3400
  • 如何知道linux是哪一种

    过查看系统文件如/etc/os-release、使用命令`lsb_release

    2025年8月13日
    1800
  • 如何校准linux系统时间吗

    使用ntpdate命令同步网络时间,或通过timedatectl设置时区

    2025年8月17日
    2300
  • Linux如何清屏?这些快捷键和方法你必须知道

    在Linux系统中,清屏是终端操作中的基础需求,无论是为了清理冗余输出、提升可读性,还是为后续命令腾出显示空间,掌握多种清屏方法都能提升操作效率,本文将详细介绍Linux环境下清屏的各类方式,包括基础命令、快捷键、脚本应用及不同场景下的处理技巧,帮助用户根据实际需求选择最合适的清屏方案,基础清屏命令:clear……

    4天前
    900
  • Linux系统下7z压缩工具如何安装?

    在Linux系统中,7z是一款功能强大的压缩工具,支持多种压缩格式(如7z、zip、gzip、bzip2等),具有高压缩率和加密功能,安装7z的方法因Linux发行版的不同而有所差异,以下是几种常见的安装方式,涵盖主流发行版及通用安装手段,通过包管理器安装(推荐)不同Linux发行版默认的包管理器不同,以下以D……

    4天前
    1000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信