《树莓派实战秘籍》——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)。

5a7919329041e2e810d9e544eae58af3238d353f

上面输出的最后两行指出了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```

<div style="text-align: center"><img src="https://yqfile.alicdn.com/7eae5ec4b7c1131e42fc33b89d8f9effbbb6d110.png" width="" height="">
</div>

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

<div style="text-align: center"><img src="https://yqfile.alicdn.com/9905cc2e7b47781f56c670582e322ea6d37b2402.png" width="" height="">
</div>

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

<div style="text-align: center"><img src="https://yqfile.alicdn.com/aa22aee07e858bf118ba938cfd3a1a83af3663d4.png" width="" height="">
</div>

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

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

<div style="text-align: center"><img src="https://yqfile.alicdn.com/6fe0f8aef2725db8e36e8c9d2e5d89f7c61a35a1.png" width="" height="">
</div>

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

<div style="text-align: center"><img src="https://yqfile.alicdn.com/248347d5f3f31e0c49b04019044ea98790b76a16.png" width="" height="">
</div>

你现在应该可以在/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用户)。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/47e6d0e1fbaaa02d52bc1e7314ced26cbd9e42a6.png" width="" height="">
</div>

相关文章
|
存储 Java 关系型数据库
家政服务管理平台
家政服务管理平台
音视频开发: ffmpeg采集桌面屏幕、摄像头保存为视频
音视频开发: ffmpeg采集桌面屏幕、摄像头保存为视频
1557 0
音视频开发: ffmpeg采集桌面屏幕、摄像头保存为视频
|
前端开发 小程序 JavaScript
微信小程序-Unhandled promise rejection TypeError: Cannot read property ‘get‘ of undefined
微信小程序-Unhandled promise rejection TypeError: Cannot read property ‘get‘ of undefined
|
11月前
|
存储 自然语言处理 安全
如何快速生成二维码,免费生成工具推荐
对于大多数个人和企业用户,首选草料二维码,简单免费,且是创立时间最长、用户量最大、口碑最好的二维码生成器,市面上80%的二维码都由其生成。如果对于有出海需求的电商用户,可以选择二维码彩虹。GoQR.me更适合快速生成简单二维码或批量生成。Unitag则适合希望深入定制的专业用户,但操作难度相对较高
如何快速生成二维码,免费生成工具推荐
|
存储 Linux 网络安全
如何在 Linux 中检查和设置时区?
【7月更文挑战第12天】
1163 2
如何在 Linux 中检查和设置时区?
|
SQL 存储 关系型数据库
关系性数据库操作语言(DML)
DML是关系型数据库管理系统的关键工具,用于查询、插入、修改和删除数据。主要包含SELECT(查询)、INSERT(插入)、UPDATE(修改)和DELETE(删除)语句。DML以其交互性和灵活性使用户能动态操作数据,但需注意事务管理以保持数据一致。DML与DDL(定义数据库结构)和DCL(控制访问权限)共同构建了完整的数据库语言体系,用于高效管理和存储数据。
948 2
|
机器学习/深度学习 编解码
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析2
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析
754 2
|
存储 运维 Docker
Docker从入门到精通:Docker 容器数据卷详解
Docker 数据卷是持久化容器数据的关键机制,允许跨容器或主机共享,即使容器删除数据仍保留。创建数据卷可通过命令行或容器启动时指定,挂载到容器目录以读写。使用 `docker volume` 命令可管理数据卷,适用于持久化存储、数据共享及备份场景。了解和善用数据卷能优化 Docker 应用程序的运维。
|
安全 应用服务中间件 数据安全/隐私保护
一文秒会Docker网络(bridge,host,none)
一文秒会Docker网络(bridge,host,none)
745 0