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

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)。

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

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

《树莓派实战秘籍》——1.2 技巧02挂载SD卡的相关文章

《树莓派实战秘籍》——导读

前 言 树莓派的灵感诞生于埃本·厄普顿在剑桥大学负责计算机科学专业学生工作期间(参见前言中的描述),他发现准大学生需要有更多的机会获得编程经验才可以达到大学水平.如我们现在所知的,关于什么将会成为Pi的第一个概念设计诞生于2006年,阿尔法版在2011年年底通过验证,最初的10块板在2012年年初被拍卖,价格高达16 000英镑. 首批10 000台树莓派于开始销售,截至2011年年底,它的SD卡映像文件已经被下载超过了50000次,暗示其普及时代即将来临.当时两家英国的销售商Premier F

《树莓派实战秘籍》——2.2 技巧22构建一个定制内核

2.2 技巧22构建一个定制内核 树莓派实战秘籍 对于很多技巧来说,标准的预购建Linux内核映像已经足够了,不过有些需要的选项或驱动并没有被标准内核启用.这个技巧打开了一些额外的选项,并将对本书中其他的技巧有用. Linux内核是因为以下几个原因而成为一个奇妙的操作系统核心的:首先是它的多功能性,而且它原生支持了大量的架构和设备:然后是其开源代码库,树莓派基金会提供了预购建的专为支持树莓派硬件的客制化的Linux内核映像及相应的源代码树,让你可以建立你自己定制的可以工作在树莓派上的内核映像.这

《树莓派实战秘籍》——1.20 技巧20使用Swap添加额外的内存

1.20 技巧20使用Swap添加额外的内存 你的树莓派需要更多一点的内存吗?Swap可以让你交换磁盘空间和内存. Linux长久以来就包含了swap的概念,其核心是在RAM和磁盘之间移动内存页的能力.在实际应用中,这种能力给操作系统提供了更多的可用内存(以磁盘空间的成本).因为B型树莓派只有512MB内存,增加swap文件(或分区)以提高可用内存的想法很吸引人. Swap的危害 在我们开始之前,你应该要了解一下这种方法的缺点.Swap的速度只是存储设备的写入速度,同时这也是一个高度写密集型操作

Android2.3实现SD卡与U盘自动挂载的方法_Android

本文实例讲述了Android2.3实现SD卡与U盘自动挂载的方法.分享给大家供大家参考,具体如下: 在 s3c6410平台上移植android2.3 过程中SD卡总是不能自动挂载. 查阅相关资料,知道在android2.3中是 vold程序负责检查内核的 sysfs 文件系统,发现有SD卡插入后,自动挂载. 在文件系统目录 /system/etc/  下有一个vold.fstab 文件,该文件是系统与用户硬件平台的交互接口,用户根据自己的平台来配置这个文件,里面内容比较简单,只需要你指定sys下

Android2.3实现SD卡与U盘自动挂载的方法

本文实例讲述了Android2.3实现SD卡与U盘自动挂载的方法.分享给大家供大家参考,具体如下: 在 s3c6410平台上移植android2.3 过程中SD卡总是不能自动挂载. 查阅相关资料,知道在android2.3中是 vold程序负责检查内核的 sysfs 文件系统,发现有SD卡插入后,自动挂载. 在文件系统目录 /system/etc/  下有一个vold.fstab 文件,该文件是系统与用户硬件平台的交互接口,用户根据自己的平台来配置这个文件,里面内容比较简单,只需要你指定sys下

Android判断SD卡是否已经挂载的方法_Android

本文实例讲述了Android判断SD卡是否已经挂载的方法.分享给大家供大家参考.具体如下: 提供一个监听方法BroadcastReceiver 设置IntentFilter为: Intent.ACTION_MEDIA_MOUNTED Intent.ACTION_MEDIA_EJECT Intent.ACTION_MEDIA_REMOVED  然后再public void onReceive(Context context, Intent intent) 中实现你的启动逻辑startActivit

Qt SD卡 文件系统挂载、文件预览

/********************************************************************************** * Qt SD卡 文件系统挂载.文件预览 * 声明: * 1. 验证挂载SD卡: * 2. QTreeView显示文件系统文件: * 3. UI线程.普通线程通信,以及理解其工作分配: * 4. static const的使用: * 5. QString与const char *的转换: * * 2015-10-20 晴 深圳 南

通过ADB向android SD卡传送文件

1. 创建SD卡并挂载到模拟器 运 行cmd,并cd至android-sdk\tools\目录下.输入如下命令则可创建并挂载SD卡到模拟器上.mksdcard的参数中SD卡的大小单 位可以为K或者M(必须为大写),他会在tools目录创建一个文件叫sdcard.img.通过在emulator后添加-sdcard即可挂载SD卡 并启动模拟器. mksdcard 256M sdcard.img emulator -avd 2.2 -sdcard sdcard.img 2. 操作单个文件 通过adb

android 4.0-android4.0访问外部sd卡

问题描述 android4.0访问外部sd卡 5C android4.0系统如何访问外部sd卡,我看网上说添加权限android.permission.WRITE_MEDIA_STORAGE,但是添加上去完全没有用啊,都没有提示,自己一个字母一个字母打到AndroidMainfest.xml中的.加权限的位置没有错,因为我试过其他的权限可以用. 解决方案 http://www.cnblogs.com/wanqieddy/p/3555989.html 解决方案二: Android4.0Sd卡移植之