详谈android 6.0 fuse文件系统的挂载和卸载问题

详谈android 6.0 fuse文件系统的挂载和卸载问题

什么是fuse文件系统

fuse是Filesystem in Userspace(用户空间文件系统)的缩写,它允许非特权用户创建并访问自定义文件系统。fuse将文件操作请求发送给fuse内核模块,内核模块将这些请求转发到用户空间的fuse库,在fuse库中,用户可以通过调用相应的协议来完成文件系统的实现。fuse文件系统的一个重要特点是非特权用户也可以对文件系统进行操作,这有利于应用程序的开发和使用。

android中的fuse文件系统

android中的fuse文件系统主要使用在设备之间的文件共享上。实际上,android和传统的Linux系统一样,都使用了fuse文件系统。在android 6.0中,android系统使用了一个特殊的fuse文件系统,称为sdcardfs,它是一个用于SD卡文件系统的虚拟文件系统,可以将多个SD卡挂载点合并在同一个文件系统中。

android 6.0 fuse文件系统的挂载

在android 6.0中,sdcardfs文件系统默认挂载在"/mnt/runtime/default"目录下。用户可以使用以下命令查看文件系统的挂载情况:

adb shell mount | grep sdcardfs

例如,用户想将SD卡挂载到"/mnt/sdcard1"目录下,可以使用以下命令实现:

adb shell mkdir /mnt/sdcard1
adb shell sdcard -u 1023 -g 1023 -m 0660 -d /mnt/runtime/default -u media_rw -g media_rw -m 0660 -d /mnt/media_rw/sdcard1 /mnt/sdcard1

其中,"-u"表示文件的UID,"-g"表示文件的GID,"-m"表示文件的权限。上面的命令将SD卡的UID、GID和权限设置为1023、1023和0660。另外,"-u media_rw -g media_rw -m 0660 -d /mnt/media_rw/sdcard1"表示将文件的UID、GID和权限设置为media_rw、media_rw和0660,同时设置挂载点为"/mnt/media_rw/sdcard1"。

android 6.0 fuse文件系统的卸载

用户可以使用以下命令卸载SD卡文件系统:

adb shell umount /mnt/sdcard1

需要注意的是,卸载sdcardfs文件系统时,需要卸载所有挂载点。

示例一

例如,用户在android 6.0中将SD卡挂载到"/mnt/sdcard1"目录下,然后通过MTP协议将文件拷贝到SD卡中。当用户想要卸载SD卡时,可以使用以下命令卸载:

adb shell umount /mnt/sdcard1

示例二

又例如,用户想将两个SD卡挂载到不同的目录下,可以使用以下命令:

adb shell mkdir /mnt/sdcard1
adb shell sdcard -u 1023 -g 1023 -m 0660 -d /mnt/runtime/default -u media_rw -g media_rw -m 0660 -d /mnt/media_rw/sdcard1 /mnt/sdcard1
adb shell mkdir /mnt/sdcard2
adb shell sdcard -u 1023 -g 1023 -m 0660 -d /mnt/runtime/default -u media_rw -g media_rw -m 0660 -d /mnt/media_rw/sdcard2 /mnt/sdcard2

这样,用户就可以将文件分别保存到两个SD卡中。当用户需要卸载SD卡时,需要分别卸载所有挂载点:

adb shell umount /mnt/sdcard1
adb shell umount /mnt/sdcard2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详谈android 6.0 fuse文件系统的挂载和卸载问题 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 怎么将文件夹文件名都导入到excel表格中?

    将文件夹文件名导入到Excel表格中可以利用Windows PowerShell和Excel VBA两种方法。下面分别介绍这两种方法的具体步骤。 利用Windows PowerShell 打开“开始菜单”,输入“Windows PowerShell”并运行。 切换到要导入文件名的文件夹所在的目录,例如: cd C:\Users\UserName\Docume…

    other 2023年6月26日
    00
  • js中redirect

    以下是关于“JavaScript中的重定向(redirect)”的完整攻略: 什么是重定向 重定向是指将用户从URL地址自动跳转到另一个URL地址的过程。在Web开发中,通常用于将用户从一个页面自动跳转到另一个页面,或者将用户从一个网站自动跳转到另一个网站。 重定向的实现方式 在JavaScript中,可以使用以下两种方式实现重定向: 1. 使用locati…

    other 2023年5月7日
    00
  • javascript制作的cookie封装及使用指南

    JavaScript制作的Cookie封装及使用指南 什么是Cookie Cookie是服务器下发到客户端浏览器,由浏览器进行存储的一种数据。通常包括cookie名称,cookie值,过期时间,路径等内容。可以在后续的浏览器请求中提供给服务器进行识别并进行相应的操作。 JavaScript制作Cookie的封装 封装步骤 创建cookie 获取cookie …

    other 2023年6月25日
    00
  • php取整

    在PHP中,取整有多种方式,包括向上取整、向下取整、四舍五入等。本文将详细介绍PHP中取整的各种方式及其使用方法,同时提供两个示例说明。 向上取整 向上取整是将一个数值向上舍入到最接近的整数。在PHP中我们可以使用ceil()函数来实现向上取整。以下是一个示例: $num = 3.14; $ceilNum = ceil($num); echo $ceilNu…

    other 2023年5月7日
    00
  • 迅捷CAD编辑器插入自定义对象的图文教程

    下面是“迅捷CAD编辑器插入自定义对象的图文教程”的完整攻略。 1. 前置知识 在学习如何插入自定义对象之前,需要先了解以下概念: DXF/DWG文件:AutoCAD的文件格式,本教程所使用的迅捷CAD编辑器也是基于此开发的。 ObjectARX:AutoCAD的应用程序接口,可以通过它开发插件。 自定义对象:可以在AutoCAD中插入的一种自定义图像,可以…

    other 2023年6月25日
    00
  • SpringBoot中mysql的驱动依赖问题小结

    SpringBoot中MySQL的驱动依赖问题小结 在SpringBoot中使用MySQL数据库时,我们需要添加相应的驱动依赖。本文将详细讲解SpringBoot中MySQL的驱动依赖问题,并提供两个示例说明。 1. 添加MySQL驱动依赖 在SpringBoot项目的pom.xml文件中,我们需要添加MySQL驱动依赖。可以使用以下代码将MySQL驱动添加…

    other 2023年8月3日
    00
  • 深入理解javascript变量声明

    深入理解 JavaScript 变量声明攻略 JavaScript 变量声明是理解和使用 JavaScript 语言的基础之一。本攻略将详细介绍 JavaScript 变量声明的概念、不同的声明方式以及变量作用域的概念。 变量声明的概念 在 JavaScript 中,变量声明是为了存储和引用数据的标识符。通过声明变量,我们可以在程序中存储和操作数据。Java…

    other 2023年8月9日
    00
  • Ruby中的变量学习总结

    Ruby中的变量学习总结 在Ruby中,变量是用来存储和引用数据的标识符。学习如何使用变量是编程的基础之一。本文将详细讲解Ruby中的变量,并提供两个示例来说明其用法。 变量的声明和赋值 在Ruby中,变量的声明和赋值可以在同一行完成,也可以分开进行。变量的声明使用小写字母开头,可以包含字母、数字和下划线。以下是一个示例: # 声明并赋值一个整数变量 age…

    other 2023年8月9日
    00
合作推广
合作推广
分享本页
返回顶部