为 Raspberry Pi 写入 SD 卡是每个 Pi 社区成员都尝试过的事情。有些人是老手,可以轻松完成这项任务,但对有些人来说,这让他们感到恐惧。
在本文中,我将介绍两种不同的 SD 卡写入方法。首先是使用最新的应用程序,它提供了一个简单的 GUI,Etcher。然后,我将介绍 dcfldd,这是一个 Linux 终端命令,它扩展了流行的 dd 命令,并提供了更多的功能。
为什么我选择这两个应用程序?有很多选项可以用来写入 SD 卡,例如 NOOBS、Win32 DiskImager、dd 以及 Raspbian 操作系统中内置的新的 SD 卡创建工具。但我为这篇文章选择的这两个应用程序,不仅提供了一种简单的方式来写入 SD 卡,而且这些应用程序还提供了每个人都可以访问的额外功能。
让我们来看看第一个应用程序。
Etcher
Etcher 在 2016 年横空出世,此后成为最佳的跨平台 SD 卡创建体验。为什么?好吧,简短的答案是一致性。无论与什么操作系统一起使用,它的工作方式都完全相同。下载应用程序非常容易,运行应用程序也同样容易,即使在 Linux 上也是如此,这要归功于它使用 AppImage 来创建一个简单的可执行文件。
在 Ubuntu 16.04 LTS 上运行的 Etcher。
在 Windows 10 上运行的 Etcher(与 Ubuntu 应用程序相同)。
无论您使用什么操作系统,您所需要做的就是将 Etcher 指向您想要写入的映像。接下来,将一张空白的 microSD 卡插入您的计算机。Etcher 将检测到该卡并检查它是否已准备好使用。完成检查后,单击“Flash”开始该过程。对于 Linux 用户,您需要提供 sudo / root 密码才能开始 Flash 过程。
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 一样强大和危险,但能够轻松地一次写入多张卡。对于那些熟悉终端的人来说,它是一个强大的工具。
3 条评论