1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
这是一个用于**格式化并挂载USB/SD卡设备**的脚本,具体功能分析如下:
## 逐行解析
### 1. 卸载分区
```bash
sudo umount /dev/sdb* 2>/dev/null;
```
- 卸载所有 `/dev/sdb` 开头的分区(sdb1、sdb2等)
- `2>/dev/null` 隐藏错误信息(如未挂载的分区报错)
- **作用**:确保目标磁盘没有挂载的分区,避免后续操作冲突
### 2. 创建分区表与分区
```bash
sudo parted -s /dev/sdb mklabel msdos mkpart primary fat32 0% 100% set 1 boot on;
```
- `-s`:静默模式,不提示确认
- `mklabel msdos`:创建MS-DOS(MBR)分区表
- `mkpart primary fat32 0% 100%`:创建主分区,使用整个磁盘空间,文件系统标记为fat32
- `set 1 boot on`:设置第一个分区为可引导(活动分区)
### 3. 格式化分区
```bash
sudo mkfs.vfat -F 32 -n SDBOOT /dev/sdb1;
```
- `-F 32`:使用FAT32文件系统
- `-n SDBOOT`:设置卷标为"SDBOOT"
- 格式化第一个分区为FAT32
### 4. 挂载分区
```bash
udisksctl mount -b /dev/sdb1
```
- 使用udisksctl工具挂载设备
- 通常在`/media/用户名/`目录下创建挂载点
- 无需root权限(udisksctl允许普通用户挂载)
## 脚本整体目的
,**创建可引导的FAT32启动盘**,通常用于:
- BIOS/UEFI启动盘制作
- 系统安装盘(如Windows/Linux安装介质)
- 嵌入式设备(如树莓派)的启动卡
## 注意事项
?? **警告**:
- 操作目标为 `/dev/sdb`,请确认这是目标设备而非系统盘
- 会**完全擦除**该设备上的所有数据
- 建议先用 `lsblk` 或 `fdisk -l` 确认设备路径正确
|