《树莓派实战秘籍》——1.2 技巧02挂载SD卡

简介:

本节书摘来自异步社区《树莓派实战秘籍》一书中的第1章,第1.2节,作者: 【美】Ruth Suehle , Tom Callaway 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 技巧02挂载SD卡

你当然可以直接从正在运行的树莓派上访问其文件,但使用SD卡读卡器将SD卡挂载到一台独立的计算机上,将会使很多任务(如添加或编辑文件)变得更容易。

虽然树莓派就是一台独立的Linux计算机,不过如果你手头有另外一台计算机的话确实可以为你提供帮助,在有的情况下,它甚至可能是不可或缺的。幸运的是,现在许多计算机都带有内置的SD卡读卡器,即使你的计算机没有内置,它们的价格也不贵并且很容易买到。所以,即使你买的是预装系统的SD卡,你也应该拥有一个SD卡读卡器以及另外一台计算机来与你的树莓派互动。

大多数树莓派的Linux发行版会在SD卡上创建至少两个分区,第一个分区总是/boot,因为树莓派的GPU要从SD卡的开始处读取其固件。第二个分区通常是/(也称为root分区)。

Pidora标注SD卡上的两个分区为boot和root,而Raspbian没有使用磁盘标签,因此使用Raspbian时要特别注意设备名称,这一点非常重要。
现在的Linux发行版(在你另一台计算机上的),比如Fedora或Ubuntu,在SD卡插入时会自动挂载分区并提供相应的事件通知。不过,如果你不是很确定,可以运行mount命令来列出系统上所有已挂载的分区,然后在输出信息中查找类似/dev/mmcblk0p1这样的设备,意思是在MMC块(mmcblk)设备上的第一个分区(p1)。


<a href=https://yqfile.alicdn.com/e4864841f93f0f7f172fbac0664827f3a9aeb475.png" >

上面输出的最后两行指出了MMC块设备分区分别挂载到了/run/media/spot/boot和/run/media/spot/rootfs两个目录下。

Linux使用MMC一词描述的含义中包含了多媒体卡(MultiMediaCard)和安全数字(SD,Secure Digital)这两种格式的驱动器。
如果SD卡没有被自动挂载,请确保其已经被插入并查看dmesg命令的输出。不需要给dmesg指定任何参数(虽然使用管道减少输出消息一直都是个好主意)。当运行此命令时,dmesg会打印出很多东西,但输出顺序是按照你最后一次启动Linux系统来排列的。

你需要查看输出消息的末尾,具体的说,你应该将目光投向输出的最后几行并找出含有MMC块设备名称的地方。图1-1显示了你正在查找的消息的一个例子。

在图1-1中,MMC块设备名为mmcblk0,它有两个分区p0和p1。这些信息足够让你确认这些分区的Linux设备名:/dev/mmcblk0p0和/dev/mmcblk0p1。你可以运行命令来确认它们是否是正确的设备:

$ cd /dev && ls –l | grep mmcblk01


9c162ed614f583ccfe679da5e9ae59792a64f6c4

如果这些设备存在的话,它们很可能就是你想要的(除非你因为某种原因插了多个SD卡到系统上)。


9c5834521ef4146d9668ca78f8eded91272d7c6e

SD卡读卡器通过SPI接口与系统连接,通常设备名被指定为/dev/mmc。但是当SD卡读卡器是通过USB连接时,该设备会被系统指定为/dev/sd(而且有些笔记本的内部SD卡读卡器就是通过USB连接的)。当访问一个/dev/sd*设备时需要小心,因为很容易就误访问到硬盘驱动器上去了。
当你识别出系统中MMC块设备分区的Linux设备名之后,你就可以通过创建两个挂载点目录来手动挂载它们(以root用户):


<a href=https://yqfile.alicdn.com/f6d92373fc45cdab3a895f3e316957f9e78c4154.png" >

这些目录将作为从MMC块设备上挂载设备的定位点。

然后,使用mount命令挂载boot和root分区:


<a href=https://yqfile.alicdn.com/d8a89683f2ed6b1c166167483bb456d5e27f2fa8.png" >

如果上述mount命令正确返回,则说明两个分区已经成功挂载。你可以再次执行mount命令并使用grep命令搜索MMC块设备名(mmcblk0),然后通过管道发送到输出:


8849077123e97277ae97fcba2b82357df52ccde5

你现在应该可以在/mnt/raspi-boot和/mnt/raspi-root目录下看见挂载的文件了。

也可以将/boot分区挂载到/分区下面,但我们建议将二者分离。这样做的话,如果你忘记挂载boot分区,则会显得一目了然,而你也会避免将root分区的文件复制到/boot分区目录下这样的错误。请记住,Linux挂载boot分区到/boot目录的最上层,当boot分区没有挂载的时候,任何被复制到该目录的文件都将不可见!

挂载SD卡对快速修改树莓派Linux的/boot分区下的config.txt文件来说特别有用。如果你需要为一台新的显示器(或者一台没有出现奇迹的老款HDMI电视)更改输出显示设置,从挂载的SD卡上做这个工作可比从一台headless2的树莓派上要轻松多了。

确保boot分区已经被挂载,然后进入到该目录(/mnt/raspi-boot),并直接编辑config.txt文件(以root用户)。保存所做的更改,然后运行sync命令,以确保缓冲区数据被写回到SD卡中。

完成以上步骤后,退出当前目录(如果你不这样做,Linux会不让你干净地卸载分区),然后使用umount命令卸载两个分区(以root用户)。


7d9fdba7e887602f86ed7f42056a892b7e2ee5ac

如果umount命令均未返回任何错误,那么现在就可以安全的移除SD卡了。只要将之插回到你的树莓派中,通上电,然后期盼一切正常吧。

相关文章
|
数据可视化 网络安全 数据安全/隐私保护
树莓派开发笔记(一): 入手树莓派3b,成功运行树莓派系统
树莓派开发笔记(一): 入手树莓派3b,成功运行树莓派系统
树莓派开发笔记(一): 入手树莓派3b,成功运行树莓派系统
树莓派4B:扩展系统到整个SD卡
树莓派4B:扩展系统到整个SD卡
318 0
树莓派4B:扩展系统到整个SD卡
|
数据安全/隐私保护 开发工具 git