/dev目录下的loop和ram

简介:

我们使用top命令会发现关于磁盘的内容中,可以看到loop和ram伪设备文件,但是它们是做什么的呢?


首先我们要先说一下在Linux的中I/O设备分两类,也就是块设备和字符设备。它们最简单的区分就是对数据的读取顺序:

  • 字符设备:连续的数据流,程序要顺序读取,不能随机跳跃式读取,比如键盘输入的东西

  • 块设备:可以随机访问数据,比如硬盘、光盘、U盘等,通常以块为单位的进行存取,块这个概念是操作系统层面的,落实到硬盘其实硬盘存取数据的最小单位是扇区(512字节)。块通常是由1个或多个扇区组成。

上述两种设备提供的驱动程序访问接口不同。loop和ram虽然都是块设备,但是它们是虚拟块设备,也叫作伪设备,它们不是真的,只是模拟了块设备的访问方式。


loop:循环接口文件


在使用/dev/loop之前,这种设备必须与现有文件系统上的文件进行关联,而且该文件要包含一个完整的文件系统,那么这个文件就可以像磁盘设备一样被挂载。这个表达比较晦涩,说白了这种设备主要用于把img、iso等格式的镜像文件关联到loop设备上,然后在挂载到某个目录。


相信大家都用过早起在windows平台上的虚拟光驱来加载ISO文件,然后到了后期windows平台本身就支持这种挂载了,比如在windows 8上。

wKiom1gYL6LQ6IZCAACp6mqKSvE238.jpg-wh_50

现在可以看明白了吧,只是在Linux上它使用了/dev/loop这个设备文件,因为Linux系统一切皆文件。在centos上默认有0-7个这样的设备,如下图。

wKiom1gYMC-zvrVqAAB-P4UH0as019.jpg-wh_50

现在我们尝试在Linux上挂载一个ISO的镜像文件来看一下

1
2
losetup  /dev/loop # /PATH/镜像文件
mount  /dev/loop # /挂载点

wKioL1gYOruDKml-AADTl-YOgrs013.jpg-wh_50

上面的挂载使用了2条命令,也可以用一条来完成,这时候系统会自动选择空闲的loop设备来使用

1
mount  -o loop  /PATH/ 镜像文件 /挂载点

wKioL1gYPHPSH2IKAAC9_E6l4HY813.jpg-wh_50

1
losetup -a 查看当前loop设备使用情况,一般你要使用这个设备先查看一下哪些是空闲的

wKiom1gYOpKy_-ZxAABUV_vBowQ591.jpg-wh_50

卸载

如果你是通过mount -o一条命令来完成挂载的话

1
umount  /挂载点  就好了

如果你是通过losetup和mount 两条命令完成挂载的话

1
2
umount  /挂载点
losetup -d  /dev/loop #


ram:内存文件系统,就是把内存中的一部分空间挂载到目录上当成块设备来访问。

wKiom1gYQeiRoWp7AADXmtxj6IQ437.jpg-wh_50

要使用这种功能,先要建立一个目录用于挂载,一般建立在tmp目录下,因为内存不能永久保存数据,而tmp目录正是为了存放临时文件而存在的。

1
mkdir  radisk    目录名称自定义

wKioL1gYRV3xY-6zAABMgtW1BT4306.jpg-wh_50

格式化

1
mke2fs  /dev/ram0    这里你可以随意选择一个没有被使用的 ram

wKioL1gYRfSiLrqxAADWFP4zKlk024.jpg-wh_50

Block size也就是块大小为 1024bytes 这个是默认的,可以使用-d但是指定具体大小

Fragment size段大小

4096个indoes 16384个块

1
mount  /dev/ram0  /tmp/ramdisk   挂载

wKiom1gYSbfRaYvHAAA6rgWEEA8769.jpg-wh_50

查看分区

wKiom1gYSvrCEKk7AAByEd4W8xw309.jpg-wh_50

分区大小为16M,为什么呢?根据上面的输出默认块大小为1024bytes,而且一共有16384个块,那16384*1024就是一共有多少字节,然后再除以1024就是有多少KB,再除以1024就是有多少MB,结果就是16MB。

现在就可以像使用内存文件系统了。


注意:实现内存文件系统有三种方式,上面的方式是Ramdisk,另外还有Ramfs和Tmpfs。它们都是提前编译到内核中的功能,本身并不是Linux内核必须使用的组件。包括上面的loop也是一样。


      本文转自linuxjavachen  51CTO博客,原文链接:http://blog.51cto.com/littledevil/1868099,如需转载请自行联系原作者









相关文章
|
6月前
|
敏捷开发 Web App开发 测试技术
阿里云云效产品使用问题之钉钉绑定主帐号和RAM 有什么区别么
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
文字识别 API
印刷文字识别产品使用合集之如何创建RAM用户和阿里云账号的访问密钥
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
7月前
|
云安全 弹性计算 安全
AK泄露了,怎么办?
AccessKey(包含AccessKey ID和Secret)是程序访问的凭证,无异于打开云上资源的大门钥匙,保管好AK是保障云上安全最重要的事情,甚至没有之一。
106495 8
|
7月前
|
数据库 数据安全/隐私保护
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
664 3
|
7月前
|
缓存 BI
咨询下,阿里云云效ram账号绑定钉钉账号后,手机端看项目,是空的,怎么解决?
咨询下,阿里云云效ram账号绑定钉钉账号后,手机端看项目,是空的,怎么解决?
106 2
阿里云RAM角色和自定义角色
阿里云RAM角色和自定义角色
141 1
|
安全 API 数据安全/隐私保护
云安全中心-云平台配置检查CIEM查询到的Ram相关的检查项,能否在阿里云OpenAPI查到同样的?
云安全中心-云平台配置检查CIEM查询到的Ram相关的检查项,能否在阿里云OpenAPI查到同样的?
119 1
|
安全 API 数据安全/隐私保护
阿里云短信服务RAM用户授权Quick Start
短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信;国内验证短信秒级触达,到达率最高可达99%;国际/港澳台短信覆盖200多个国家和地区,安全稳定,广受出海企业选用。在主账号开通短信服务后,您可以创建RAM用户,并为RAM用户授予不同的权限,提供给您企业的员工用来管理短信服务资源,从而让您避免与其他用户共享云账号密钥,降低您企业的信息安全风险。本文以子账号使用短信服务报错为例,简单介绍主账号授予RAM用户访问使用短信服务的操作步骤,以供参考。
729 1
阿里云短信服务RAM用户授权Quick Start
|
安全
阿里云RAM用户访问用户中心授权Quick Start
用户中心提供用户上云所涉及到的企业财务经营管理全链路能力,包括但不限于企业财务、账号中心、资金管理、卡券管理、账单管理、订单管理、分账管理、发票管理、合同管理、成本管理、资源实例管理、节省计划、SLA赔付等相关服务。目前多数企业在使用云上服务时,出于安全和管理考虑都是使用RAM账号。然而RAM用户常常在控制台进入用户中心查看近期的消费数据时往往遇到无权访问的权限问题。本文简单介绍主账号授予RAM用户访问费用中心的操作步骤,以供参考。
1007 1
阿里云RAM用户访问用户中心授权Quick Start