[文件系统]文件系统学习笔记(十一)——mount系统调用(其它)

1,mount example

Mount (/dev/hdb1 to /home/xpl)

a.要 mount 一个新的设备必须先创造一个superblock。利用要mount的文件系统的file_system_type,调用其get_sb()來创造新的super block

b.创建vfsmountfor /dev/hdb1 and add to current system

c.新的 vfsmount:

-mountpoint 為为“xpl”的dentry

-mnt_root为hdb1 device上root的 dentry

-mnt_parent指向/home/xpl所在的vfsmount

2,mount_hashtable表,

主要是根据mountpoint的dentry和mountpoint所属vfsmount结构体共同计算hash值确定该mountpoint目录下挂载的文件系统的vfsmount结构

3,linux mount命令

mount命令详细解释
命令格式:
mount [-t vfstype] [-o options] device dir
  1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
  光盘或光盘镜像:iso9660
  Mount Windows文件网络共享:smbfs
  UNIX(LINUX) 文件网络共享:nfs
  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
  loop:用来把一个文件当成硬盘分区挂接上系统
  ro:采用只读方式挂接设备
  rw:采用读写方式挂接设备
  3.device 要挂接(mount)的设备。
  4.dir设备在系统上的挂接点(mount point)。
补充:
mount -a [-t type] [-O optlist]  将会挂载 /etc/fstab 中所有列出的所有设备(明确标记为"noauto"的除外),如果同时给出了 device(或 LABEL, UUID, PARTUUID, PARTLABEL) 和 dir,那么 mount 将不会读取 /etc/fstab 中的设置
通常只有root用户才可以挂载文件系统,但是如果在 fstab 中包含"user"选项,那么所有用户都可以挂载此文件系统。例如,如果在 fstab 中包含如下的行:
                     /dev/cdrom  /cd  iso9660  ro,user,noauto,unhide
使用了"user"选项的文件系统,只有挂载该文件系统的用户才可以卸载它,若想允许任何其他用户卸载,那么可以使用"users"代替"user"来实现。

init.rc里的mount命令会在alps/system/core/init/Builtins.c文件里的do_mount()函数里解析,以下截图中mode的含义是/mnt/obb/目录下的所有文件的初始权限是0755,0755是以八进制表示的,gid是设置左右文件所属的组。

4,unmount系统调用:
int umount(const char *target);
int umount2(const char *target, int flags);
flags主要有以下:
MNT_FORCE:即使挂载的文件系统处于busy状态,还是强制卸载,这样可能会引起数据丢失
MNT_DETACH:如果函数执行带有此参数,不会立即执行umount操作,而会等挂载点退出忙碌状态时才会去卸载它。不过此函数执行会阻止对该挂载点执行新的访问。之前就在访问此挂载点操作也不会强制其退出,而是会等待其自然退出。
MNT_EXPIRE:将挂载点设置为过时的,若要卸载的文件系统是根文件系统或者同时设置了MNT_FORCE或MNT_DETACH,则返回-EINVAL;
UMOUNT_NOFOLLOW:它指示如果目标是一个符号链接,则不解引用

时间: 2024-12-30 23:07:02

[文件系统]文件系统学习笔记(十一)——mount系统调用(其它)的相关文章

《Hibernate学习笔记十一》:树状结构设计

<Hibernate学习笔记十一>:树状结构设计 这是马士兵老师讲解Hibernate的一个作业题,树状结构设计,这是一个比较典型的例子,因此有必要写篇博文记录下. 树状结构的设计,它是在同一个类中使用了多对一(ManyToOne)和一对多(OneToMany). 在完成这个题目我们应该按照如下的步骤进行: 1.先思考数据库的模型应该是什么样的?? 数据库中的模型应该如下:即存在id p_id 2.思考面向对象的模型,及如何来进行映射??? 根据数据库中表的特点,对象应该有id name;由于

初探swift语言的学习笔记十一(performSelector)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35842441 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在OC中使用好好的performSelector,但不知为什么在swift有意的被拿掉了.更有甚者连IMP, objc_msgSend也不能用了.虽然想不通为什么,但应该有他的道理.就不纠结了. 大家可能在OC中使用得更多的就是延时处理,及后台处

第十七篇:实例分析(4)--初探WDDM驱动学习笔记(十一)

感觉有必要把 KMDDOD_INITIALIZATION_DATA 中的这些函数指针的意思解释一下, 以便进一步的深入代码. DxgkDdiAddDevice 前面已经说过, 这个函数的主要内容是,将BASIC_DISPLAY_DRIVER实例指针存在context中, 以便后期使用, 支持多实例. DxgkDdiStartDevice 取得设备信息, 往注册表中加入内容, 从POST设备中获取FRAME BUFFER以及相关信息(DxgkCbAcquirePostDisplayOwnershi

Linux System Programming 学习笔记(十一) 时间

1. 内核提供三种不同的方式来记录时间: Wall time (or real time):actual time and date in the real world Process time:the time that a process spends executing on a processor 包括用户时间user time 和 系统时间system time Monotonic time:use the system's uptime (time since boot) for t

Linux学习笔记&lt;十一&gt;——文件查找和文件系统ACL

文件查找: 1.locate:非实时的,模糊查找,查找是根据全系统文件数据库进行的: 速度快 文件数据库是每次关机前自动完成更新的 updatedb:用于手动生成文件数据库 2.find: 实时 精确查找 支持众多查找标准 遍历指定目录中的所有文字完成查找 速度相对较慢 find 查找路径 查找标准 查找到以后的处理运作 查找路径:可省略,默认为当前目录 查找标准:可省略,默认为指定路径下的所有文件 处理运作:可省略,默认为显示在屏幕上 查找标准: -name 'FILENAME':对文件名作精

UFS文件系统简明学习笔记

UNIX底下有很多文件系统,我在apue上看到了一点关于ufs文件系统的知识,想把它记下来, 在每一分区上会建立一个文件系统,很多操作也仅能在一个文件系统里实现 文件系统大概包含 自举块 超级块 柱面组 柱面组则包含了 超级块副本,配置信息,i 节点图,块位图,  i节点,数据块 一个文件的创建是利用i节点创建的,其有指向它的链接计数,表明有几个它的文件名和i节点编码,代表一个实际的空间可以有多个文件名,要删除实际空间上的数据就必须将所有的链接清楚掉,而文件的内容是有i节点里面的数据决定的,它可

文件系统权限 &nbsp; -- 学习笔记

文件系统的权限管理: 安全上下文:  任何在计算机中执行的任务都是由进程实现的  进程有必要访问和使用文件或某些数据资源  进程和其要操作的文件之间的关系,就定义为安全上下文  在DAC模型中,定义安全上下文的方式很简单   所有权    任何启动进程的用户就是该进程的所有者,进程的所有者也可以变更    任何创建文件的用户就是该文件的所有者,文件的所有者可以变更   使用权    在文件上面定义的对于该文件的特定使用过滤规则    三个权限:所有者权限,所属组权限,其他人权限   安全上下文的

SQLite学习笔记(十一)&amp;&amp;Sqlite虚拟机原理

前言      我们知道任何一种关系型数据库管理系统都支持SQL(Structured Query Language),相对于文件管理系统,用户不用关心数据在数据库内部如何存取,也不需要知道底层的存储结构,熟悉SQL,就能熟练使用数据库.SQL的引入,使得数据库系统需要将SQL转换为内部的数据结构,然后与底层的存储结构打通,达到用户存取数据的目的.所谓的SQL对应的数据结构,我们通常称之为执行计划,每个SQL执行前,都需要生成执行计划,然后执行.SQL如何变化到等价的执行计划?我们熟悉的数据库,

linux学习笔记十一(LVM基础)

前言:面对硬盘不足的情况,通常的做法是通过符号链接或者使用调整分区大小的工具(parted),但是这些做法都只是一时的改变艰难的现状,而且在每次改变分区大小之后都要重启系统,作为系统管理员,重启是不允许的,所以LVM就是解决这种情况的很好的选择. 内容: LVM(逻辑卷管理程序)基本概念: PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区. VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动

Oracle学习笔记十一 游标

游标的简介 游标的概念 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作,然后将操作结果写回数据表中. 逐行处理查询结果,以编程的方式访问数据. 游标的定义 游标作为一种数据类型,首先必须进行定义,其语法如下: cursor 游标名 is select 语句; cursor是定义游标的关键词,select是建立游标的数据表查询命令. declare cursor c1