《树莓派学习指南(基于Linux)》——1.4 将Raspbian烧录到SD卡

1.4 将Raspbian烧录到SD卡

树莓派学习指南(基于Linux)
将Raspbian烧录到SD卡与简单的文件复制稍有不同。我们下载的镜像文件是一份完整的SD卡内容克隆。为了完成烧录的工作,我们需要使用前面提到的一些工具。

注意 你所下载的SD卡镜像文件被打包在一个zip压缩包里。在Windows 7下,双击即可以文件夹的形式打开zip压缩包。将SD卡镜像文件复制到自己的文件夹下以备使用。在Mac OS X下,双击zip压缩包后SD卡镜像文件将会自动被解压缩到“下载”(Downloads)目录中。

使用Image Writer进行烧录(Windows)
在Windows下推荐使用Image Writer这一工具进行烧录,你可以在树莓派下载页上找到它的链接,我们需要的是如图1-7所示的zip压缩包。

将zip压缩包解压到任意文件夹,双击其中的Win32DiskImager,你会看到如图1-8所示的警告信息。

1.单击Extract All(提取所有文件),在弹出的对话框中记得勾选“Show Extracted Files When Complete”(完成时显示提取的文件)。

2.单击Extract(提取),稍等片刻后你就会看到解压后的文件夹了。

3.双击Win32DiskImager程序,你会看到如图1-8所示的警告信息。

4.这是由于Image Writer需要申请一些系统权限来实现诸如磁盘擦写等操作,单击Yes(是)继续。

5.你有可能看到如图1-9所示的出错提示信息。别担心,在我们的测试中,这并不影响正常使用。单击OK继续。

注意 Image Writer只会在程序启动时尝试检测SD卡,所以我们必须在启动程序前将SD连接到电脑上。否则,即便你再插入SD卡,程序也无法检测到它。

6.在Device(驱动器)下拉菜单中选择SD卡相应的盘符(比如G:\)。如果下拉菜单是空的,可以尝试关闭Image Writer后再重新打开。在选择盘符时请尽量谨慎,万一错选成了相机的SD卡,你数年积累的照片可能会毁于一旦。

7.选择正确的驱动器(不确定的话,再打开“我的电脑”检查一次吧)和正确的磁盘镜像文件,单击Write(写入)按钮。烧录需要几分钟时间,喝杯咖啡休息一下吧。图1-10是运行中的Image Writer截图,可以看到写入的是写作本书时最新的Raspbian。

8.烧录完成后,将SD卡安装到树莓派上。

万事俱备了,快翻到“首次启动”部分开始折腾吧!

注意 细看图1-10可以发现,我们烧录的镜像文件后缀为.img。很多初学者忘记将镜像(.img)文件从zip压缩包中解压出来再烧录。如果再启动树莓派时再次遭遇黑屏,不妨再检查一下是否烧录了正确的文件。

在Mac系统上使用dd命令
我们很想为Mac用户介绍一种简单的方法,把Raspbian镜像写入到SD卡上,但很可惜,实在没法做到像在Windows系统上使用Disk Imager那么简单。Mac系统上有Disk Utility工具,它很强大,却无法处理我们的Raspbian镜像文件。我们试图将镜像转换成.dmg文件1,但还是不起作用。我们也尝试在网络上寻找一些工具来解决这个问题,但是最终我们发现,没有工具能明显地让这件事变得简单。

我们还是不得不使用命令行来解决问题。不过我们不准备在本章详细地解释将要执行的命令,后面的章节还会有介绍,所以先依葫芦画瓢吧。

打开终端(Terminal)
接下来的每个步骤,我们都会一边介绍,一边操作,最后会有一个完整的步骤列表。整个过程还是比较简单的,步骤也不是很多。

第一步,我们在应用程序(Applications)的实用工具(Utilities)目录中打开终端(Terminal)。打开终端后,我们需要使用sudo命令取得root用户权限,相当于Windows系统的Administrator用户。

由于直接操作底层设备是不安全的(比如,不能让病毒直接把数据写入硬盘),所以普通用户无法执行相关的命令。而我们需要将Raspbian镜像直接写入SD卡,必须能够直接操作硬件。root用户对系统拥有完全的操作权限,所以我们可以使用root用户将系统镜像写入SD卡。通过下面的命令来提升为root用户。

这个命令让我们可以在终端中得到root用户权限的交互环境。你也可以通过sudo(不带-i参数)直接以root用户身份执行单条命令,但是这里我们需要执行多条,所以这样做会方便一些。按下回车键后,sudo会询问密码(就是你登录时的账户密码),输入正确后,你就得到了root用户权限。

注意 得到root用户权限后,我们可以在系统上执行任意操作。但是请记住,这时除了可以将树莓派的系统镜像写入SD卡以外,我们也有可能会弄坏Mac系统。在Unix系统2中使用root用户时,你需要清楚自己在做什么,因为此时系统几乎没有任何保护。执行命令时请一定小心,仔细检查,确认没有错误再按回车键。而且在执行完命令后,请立即退出终端,以防万一。

使用终端写入镜像

OK,下面做什么?首先,我们遇到的第一个问题是确定SD卡对应的系统设备名称。为了避免一不小心抹掉主硬盘上的数据,我们需要先确定一下主硬盘的设备名称,防止误操作。

请在你的Mac上拔出SD卡,运行以下mount命令。

你应该能看到类似上面的输出,也有可能会有所不同。我们可以忽略devfs和map这几行,因为这些挂载项是操作系统的一部分。我们需要记住的是第一行,可以看到/dev/disk0s2的挂载路径是/。这是系统盘,也就是主硬盘,一定注意不能随便写入这个设备。也许,你还会看到其他一些条目,那可能是因为你还挂载了网络驱动器或者移动硬盘。那你也应该把这些设备名称都记录下来,现在的挂载状态就是系统的基本状态,我们会和挂载了SD卡之后做对比。

接下来,在Mac上插入SD卡。你应该会在Finder边栏的设备(DEVICES)下看到刚刚插入的SD卡,如图1-11所示。

因为Mac会自动挂载插入的SD卡,所以我们可以直接回到终端再次执行mount命令,观察一下发生了什么变化。

我们发现多了一个挂载的设备,在上面的例子中显示的是disk2s2,还能看到该设备的挂载路径是/Volumes/UNTITLED,这个设备正是接下来写入系统镜像的位置。

注意 BSD系统将磁盘划分为多个分区(slice),这个例子里挂载的文件系统位于disk2s2,也就是说文件系统位于第二个磁盘(disk2)的第二个分区(s2)。通过这个路径,可以让用户直接访问指定的分区。不过我们需要的是将数据直接写入设备,也就是磁盘,所以我们接下来将会对/dev/disk2进行操作。

在进行下面的操作之前,我们要先解决一个小问题。由于SD卡的文件系统被自动挂载了,我们无法直接向设备写入数据,而如果我们在Finder中卸载文件系统,SD卡对应的设备也会被Mac系统推出,这样的话我们还是无法直接操作设备。所以我们需要通过Mac系统的diskutil命令手工卸载文件系统,并在设备中保留SD卡。Mac系统也有UNIX标准的umount命令(这个命令在后面的章节会有详细解释),但是如果你想通过umount卸载SD卡,结果就是卸载失败并提示设备正忙。diskutil可以避免这些问题,并成功地完成任务,所以我们通过执行下面的命令来卸载SD卡的文件系统。

至此,我们在超级用户下得到了SD卡对应的设备名称,并从系统上卸载了SD卡的文件系统,这样我们就准备好向SD卡直接写入数据了。

我们将会使用一个古老的命令dd,该命令用于从一个设备读入数据,并写入另一个指定的设备。该命令不会处理文件系统,也不会关心使用的设备是硬盘还是SD卡,而是直接在两个设备上读写二进制数据。我们会在最后一章详细介绍dd命令,这里我们只说明如何将系统镜像写入SD卡。

使用dd命令只需要知道两个参数,读取位置(if参数)和写入位置(of参数)。我们之前已经知道了写入位置是/dev/disk2,那么读取位置呢?如果你按照本章前面的步骤一步步做了,那么树莓派的系统镜像文件应该已经躺在下载(Downloads)文件夹中了,这就是我们的读取位置。首先,在终端中输入:

之后在Finder中打开下载(Downloads)文件夹(或许你放在了其他文件夹中,请打开它),单击并拖动镜像文件到终端窗口。这样镜像文件的路径就会自动输入终端了,你应当会看到类似下面的显示。

这样我们就指定了读取位置,我们还需要为dd指定写入位置。在之前的操作中,我们已经得到了SD卡的设备名称:/dev/disk2。我们还要加上bs=512这个参数,让dd以较大的数据块写入SD卡(这样可以让写入过程快一些,否则可能需要等上4个小时)。最终整个命令是这样的:

按回车键执行命令,dd需要一些时间来完成整个操作(可能还是需要1、2个小时)。由于系统镜像有2GB大,而SD卡的写入速度并不是很快,所以我们的MacBook Pro也花了接近2个小时才完成整个镜像的写入。你可以出去逛一圈,回来之后应该能看到dd完成了写入,终端回到了命令提示符状态。

在Mac上写入镜像确实比在Windows系统上麻烦许多,不过仔细观察一下这些命令,你会发现通过命令执行操作更简单,更准确,第3章我们还会详细介绍命令行的其他优点。

我们将前面所有的操作步骤整理了一下。如果对于之前的介绍还有什么问题,或者你还有什么不太明白的,可以参考下面的内容。

到这里,我们准备好了SD卡,让我们来准备启动树莓派吧。

时间: 2024-10-03 18:28:32

《树莓派学习指南(基于Linux)》——1.4 将Raspbian烧录到SD卡的相关文章

《树莓派学习指南(基于Linux)》——导读

目录 第 1 章 初尝树莓派1.1 新出炉的派1.2 树莓派配料表1.3 Linux1.4 将Raspbian烧录到SD卡1.5 首次启动1.6 配置树莓派本章小结 第 2 章 开始探索2.1 欢迎使用LXDE2.2 开始菜单本章小结 第 3 章 驾驭命令行第 4 章 玩转文件系统第 5 章 重要命令第 6 章 在命令行中编辑文件第 7 章 管理你的树莓派第 8 章 搭建LAMP第 9 章 无线树莓派第 10 章 树莓监控派第 11 章 树莓派媒体中心

《树莓派学习指南(基于Linux)》——2.2 开始菜单

2.2 开始菜单 树莓派学习指南(基于Linux) 自从Windows 95引入开始菜单之后,各种操作系统都开始引入类似的功能(唯独Mac系统没有).有人对所谓微软发明了开始菜单这种说法嗤之以鼻,并认为Linux系统中采用的类似菜单和Windows的开始菜单毫无关系.我们认为好用才是硬道理,开始菜单的概念得以普及并非由于谁发明了它,而是它的确很实用.如图2-5所示,这就是LXDE的开始菜单. 开始菜单简洁明了,列表中展示了所有已安装的应用程序,并按类型进行了分组,包括Accessories(附件

《树莓派学习指南(基于Linux)》——1.3 Linux

1.3 Linux 树莓派学习指南(基于Linux)作为一本初学者指南,我们会简要介绍Linux的由来.特点以及一些初学者常犯的错误.如果你对这部分内容有所了解或不太感兴趣,不妨跳过本节,继续下一小节"下载Raspbian". Linux是什么?解释Linux是什么这个问题即便对专家来说也会感到困扰.原因在于Linux这一概念在不同语境下代表的含义相差很多.当谈到操作系统时,我们可以很容易理解Microsoft Windows和Apple Mac OS X是完全不同的东西.当我们说&q

《树莓派学习指南(基于Linux)》——1.1 新出炉的派

1.1 新出炉的派 树莓派学习指南(基于Linux)从快递员手中接过你期待已久的包裹,迫不及待地撕开牛皮纸信封后,你会发现一个小盒子(真的很小).或许你会忍不住向信封里再张望一下,看看是不是还有些别的什么.别怀疑,亲爱的读者,订购树莓派后你会收到的就只有这样一个小盒子(见图1-1). 首先是告诉大家快递没出问题,包裹里确实只有这个小盒子.还有就是告诉大家,想要让树莓派真正运行起来,仅凭这个小盒子里的内容是不够的,我们还需要些小零件.别担心,下面我们会一一介绍. 你可能会注意到盒子上用粗体字写着"

《树莓派学习指南(基于Linux)》——本章小结

本章小结 树莓派学习指南(基于Linux)本章我们首先介绍了如何从零开始将树莓派和外设连接好并最终让其运行起来,我们详细地讲解了其中的细节,有人觉得这些都很简单,但我们往往会在这些简单的步骤上犯错.我们还列出了树莓派自带了什么组件,需要你自己安装什么组件,了解了这些你能更好地把玩树莓派. 之后我们简要地介绍了Linux系统,包括什么是发行版,为什么本书将只介绍Raspbian.我们还讲解了如何下载Raspbian并将其写入SD卡. 最后完成SD卡写入后,我们启动树莓派,介绍了如何在首次启动时设置

《树莓派学习指南(基于Linux)》——第 2 章 开始探索

第 2 章 开始探索 树莓派学习指南(基于Linux)读完本章后,你将了解Linux系统,学会使用命令行环境.但在开始时,我们还是要介绍一下树莓派的图形界面.虽然树莓派的图形界面没有Windows或者Mac那么绚丽,甚至还不如一些Linux发行版,但是它轻巧.快速.易用,能够完成各种常用的操作,最重要的是它能够运行在这么小巧的计算机上. 本章中,我们将会带你浏览一下桌面,了解一下系统中安装的应用程序.有些应用比较常用,有些用得很少(比如你可能很少会用到Python开发环境).我们还会看看菜单中还

《树莓派学习指南(基于Linux)》——第 1 章 初尝树莓派

第 1 章 初尝树莓派 树莓派学习指南(基于Linux)从本章开始,我们正式进入折腾环节.需要提醒的是,如果你迫不及待想让树莓派运行起来,跳过序言也并无不可,关键的内容在本章中都会涉及.但我们希望你能够记得找时间阅读序言部分,这样你才会明白树莓派的由来以及它独一无二的原因. 好了,让我们开始折腾吧.从开箱开始,我们会涉及各种如何使树莓派真正运行起来的内容.连接好各种接线后,我们会动手安装并设置Raspbian Linux.你可能会发现有些配置方式比较陌生,别担心,在我们的帮助下你一定可以顺利完成

基于Android如何实现将数据库保存到SD卡_Android

有时候为了需要,会将数据库保存到外部存储或者SD卡中(对于这种情况可以通过加密数据来避免数据被破解),比如一个应用支持多个数据,每个数据都需要有一个对应的数据库,并且数据库中的信息量特别大时,这显然更应该将数据库保存在外部存储或者SD卡中,因为RAM的大小是有限的:其次在写某些测试程序时将数据库保存在SD卡更方便查看数据库中的内容. Android通过SQLiteOpenHelper创建数据库时默认是将数据库保存在'/data/data/应用程序名/databases'目录下的,只需要在继承SQ

基于Android如何实现将数据库保存到SD卡

有时候为了需要,会将数据库保存到外部存储或者SD卡中(对于这种情况可以通过加密数据来避免数据被破解),比如一个应用支持多个数据,每个数据都需要有一个对应的数据库,并且数据库中的信息量特别大时,这显然更应该将数据库保存在外部存储或者SD卡中,因为RAM的大小是有限的:其次在写某些测试程序时将数据库保存在SD卡更方便查看数据库中的内容. Android通过SQLiteOpenHelper创建数据库时默认是将数据库保存在'/data/data/应用程序名/databases'目录下的,只需要在继承SQ