Mac命令行格式化U盘以及烧录镜像

之前在为树莓派做前期准备的时候,用SD Card Formatter这款软件对TF卡进行了格式化,然后用Apple-Pi Baker这款软件烧录Raspberry系统镜像到TF卡里。

由于Zero W的主板被我玩得烧坏了,退回去检修时间比较长,手上无机可玩。正好家里找到了闲置的标准SD卡一张,所谓物尽其用,我又买了个一代树莓派,插标准SD卡的那款1B,主要是穷,只能买个二手老古董。

我寻思着要不这次格式化SD卡以及烧录镜像就不用图形化软件了,这玩意虽然很方便,但容易让人产生依赖思想。反正底层都是调用命令行,这次就用命令行来试试格式化SD卡以及烧录树莓派镜像吧。

格式化SD卡

不光是SD卡,只要是U盘,都可以用命令行格式化。在Mac命令行输入

1
diskutil list

即可查看当前U盘设备有哪些。将SD卡插上读卡器后,执行上述命令,显示如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 250.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD *249.8 GB disk1
Logical Volume on disk0s2
37633BC5-B9B2-49AF-911D-EEA5ABB4F4B9
Unencrypted
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *3.9 GB disk2
1: DOS_FAT_32 NO NAME 3.9 GB disk2s1

可以看到/dev/disk2就是我的SD卡了,4G容量对我来说正好,主要是没有8G的卡,4G对我来说也能凑合。

接下来就是把它格式化了

1
sudo diskutil eraseDisk FAT32 CAM_STORE MBRFormat /dev/disk2

其中CAM_STORE是格式化后的卷标名称,你也可以取个其它的名字。可以看到我原先的卷标名叫NO NAME

命令执行后的输入

1
2
3
4
5
6
7
8
9
10
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk2s1 as MS-DOS (FAT32) with name CAM_STORE
512 bytes per physical sector
/dev/rdisk2s1: 7683384 sectors in 960423 FAT32 clusters (4096 bytes/cluster)
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2 drv=0x80 bsec=7698430 bspf=7504 rdcl=2 infs=1 bkbs=6

Mounting disk
Finished erase on disk2

表示格式化SD卡成功。

烧录镜像

执行命令查看一下磁盘,看看有没有挂载引导盘之类的

1
df -h

输出如下

1
2
3
4
5
6
Filesystem      Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1 233Gi 136Gi 96Gi 59% 35756973 25224273 59% /
devfs 188Ki 188Ki 0Bi 100% 653 0 100% /dev
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
/dev/disk2s1 3.7Gi 836Ki 3.7Gi 1% 0 0 100% /Volumes/CAM_STORE

可以看到上面格式化SD卡后,系统默认挂载了格式化后的SD卡/Volumes/CAM_STORE,先把SD卡磁盘卸载了。

1
sudo diskutil unmount /Volumes/CAM_STORE

然后重新查看一下U盘设备

1
diskutil list

我只关心这一段输出

1
2
3
4
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *3.9 GB disk2
1: DOS_FAT_32 CAM_STORE 3.9 GB disk2s1

注意到SD卡的路径了吗,是/dev/disk2,写入镜像时需要修改成/dev/rdisk2,接下来就是写入镜像

1
sudo dd bs=1m if=[镜像文件路径] of=[SD卡磁盘路径]

以我为例,我的SD卡磁盘路径是/dev/rdisk2,等待写入完成,过程比较漫长,没有进度条,可能需要5~10分钟。最后显示

1
2
3
1776+0 records in
1776+0 records out
1862270976 bytes transferred in 381.430572 secs (4882333 bytes/sec)

说明烧录成功。最后卸载SD卡

1
2
3
diskutil list
diskutil unmount [SD卡引导盘路径]
diskutil eject [SD卡磁盘路径]
avatar

chilihotpot

You Are The JavaScript In My HTML