如何为 Raspberry Pi 写入 SD 卡

了解写入 SD 卡的两种不同方法。
381 位读者喜欢这篇文章。
Raspberry Pi 3 board

Raspberry Pi 基金会。CC BY-SA 4.0

为 Raspberry Pi 写入 SD 卡是每个 Pi 社区成员都尝试过的事情。有些人是老手,可以轻松完成这项任务,但对有些人来说,这让他们感到恐惧。

在本文中,我将介绍两种不同的 SD 卡写入方法。首先是使用最新的应用程序,它提供了一个简单的 GUI,Etcher。然后,我将介绍 dcfldd,这是一个 Linux 终端命令,它扩展了流行的 dd 命令,并提供了更多的功能。

为什么我选择这两个应用程序?有很多选项可以用来写入 SD 卡,例如 NOOBS、Win32 DiskImager、dd 以及 Raspbian 操作系统中内置的新的 SD 卡创建工具。但我为这篇文章选择的这两个应用程序,不仅提供了一种简单的方式来写入 SD 卡,而且这些应用程序还提供了每个人都可以访问的额外功能。

让我们来看看第一个应用程序。

Etcher

Etcher 在 2016 年横空出世,此后成为最佳的跨平台 SD 卡创建体验。为什么?好吧,简短的答案是一致性。无论与什么操作系统一起使用,它的工作方式都完全相同。下载应用程序非常容易,运行应用程序也同样容易,即使在 Linux 上也是如此,这要归功于它使用 AppImage 来创建一个简单的可执行文件。

An image showing the Etcher application running on Ubuntu 16.04 LTS

在 Ubuntu 16.04 LTS 上运行的 Etcher。

An image showing the Etcher application running on Windows 10

在 Windows 10 上运行的 Etcher(与 Ubuntu 应用程序相同)。

无论您使用什么操作系统,您所需要做的就是将 Etcher 指向您想要写入的映像。接下来,将一张空白的 microSD 卡插入您的计算机。Etcher 将检测到该卡并检查它是否已准备好使用。完成检查后,单击“Flash”开始该过程。对于 Linux 用户,您需要提供 sudo / root 密码才能开始 Flash 过程。

An image showing the Etcher application running on Ubuntu 16.04, writing an image to the microSD card.

Etcher 以您系统可能达到的最佳速度写入卡。在这里我们看到写入一个映像大约需要八分钟。

Etcher 有一些很棒的功能。首先,写入 SD 卡的映像会经过验证,确保您的卡写入正确。其次,默认情况下,Etcher 只会写入 SD 卡,而忽略大型硬盘驱动器。但是,您不应该认为这种能力是理所当然的,您应该始终检查您使用的是正确的驱动器。Etcher 允许您使用同一个映像写入多张卡。您只需要提供卡,Etcher 就会完成剩下的工作。

当需要写入新的 SD 卡时,我使用 Etcher,因为它快速、简单且高效。它是一个真正伟大的应用程序,为所有级别的用户提供了如此多的功能。

Dcfldd

现在让我们转向 dcfldd,它是 dd 的增强版本,工作方式非常相似,但它也提供了更多的取证和安全相关的功能。与 dd 类似的语法,dcfldd 需要 microSD 卡的挂载位置和要刷写的映像的位置。通常,我会使用 df -h 来查找包含我的 microSD 卡的驱动器。在本例中,您可以看到我的笔记本电脑 SD 读卡器中有一张 SD 卡,它被挂载在 /dev/mmcblk0

les@les-ThinkPad-X220:~/Downloads$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  9.5M  1.6G   1% /run
/dev/sda1       425G  252G  151G  63% /
tmpfs           7.8G  489M  7.4G   7% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           1.6G   72K  1.6G   1% /run/user/1000
/dev/sdb1       3.6T  876G  2.6T  26% /media/les/Seagate
/dev/sdc1       3.8G  720M  3.1G  19% /media/les/USB DISK
/dev/mmcblk0p1   63M   21M   42M  33% /media/les/boot
/dev/mmcblk0p2  3.9G  3.5G  130M  97% /media/les/7f593562-9f68-4bb9-a7c9-2b70ad620873

为了将映像写入 microSD 卡,我需要确保驱动器已卸载。记住,当您尝试这样做时,请更改位置以匹配您自己的机器。

umount /dev/mmcblk0p1
umount /dev/mmcblk0p2

因为 dcfldd 的语法再次与 dd 非常相似,所以一个典型的命令如下所示。

sudo dcfldd if=./IMAGE TO WRITE of=LOCATION OF SD CARD sizeprobe=if

术语 if 指的是输入文件,即我希望写入到我的卡的映像,而 of 是输出文件,即我的 SD 卡的位置。您会注意到使用了 sizeprobe,它将获取映像文件的大小,并使用它来计算和显示应用程序的进度。例如,如果我想将最新的 Pixel 映像写入我的 microSD 卡,我会输入。

sudo dcfldd if=./2017-01-11-raspbian-jessie.img of=/dev/mmcblk0 sizeprobe=if

为什么我应该使用 dcfldd 而不是 dd?对我来说,最强大的功能是能够写入多个输出设备。换句话说,我可以一次写入多张卡。

假设我需要为我的朋友写入三张卡。使用 USB 读卡器和我的内置 SD 读卡器,我可以运行以下命令

sudo dcfldd if=./2017-01-11-raspbian-jessie.img of=/dev/mmcblk0 of=/dev/sdb of=/dev/sdc sizeprobe=if

您可以看到 of=/ 使用了三次。这三个实例意味着我可以使用一个映像文件一次写入三张卡。您的机器越强大,您可以一次写入的卡就越多。它与 dd 一样强大和危险,但能够轻松地一次写入多张卡。对于那些熟悉终端的人来说,它是一个强大的工具。

标签
Les, holding a neopixel powered glove light to his face
Linux Format、Linux Voice、MagPi、Pi User 和 @element14 Trainer 的作者,以及 #picademy 团队的成员。Maker 专注于 Raspberry Pi 项目。

3 条评论

感谢您的分享。这是很棒的信息。我一直很喜欢内置的 SD 卡复制器进行克隆,但很高兴听到其他选择。

您会推荐什么用于批量克隆?在 dcfldd 中写入映像,然后多次写入,还是可以绕过映像写入?您能给我一个映像写入和/或直接克隆的示例命令吗?

谢谢,
Pablo

我赢得了一台 Raspberry Pi……微笑!!……加奶油!还有呢?我想为我的小型网店制作机械臂辅助装置。然后 USB、摄像头……以及所有这些都将发挥作用。我正在等待 Pi 2 到货~;( 在此期间..) 我正在寻找我用我的 @GW37C 帐户建立的推文连接……并找到了您的网站!嗨。很高兴认识你。

正在设置 5G MIMO 小型蜂窝,并考虑我可以使用 Linux/Ubuntu 运行它?我正在学习。谢谢。*inspired-lilGet

感谢您提供的非常有用的信息。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© 2025 open-source.net.cn. All rights reserved.