Linux 操作系统原理 — loop 伪设备

举报
云物互联 发表于 2021/09/06 23:17:38 2021/09/06
【摘要】 目录 文章目录 目录Linux 的伪设备Loop 设备 Linux 的伪设备 在开发或测试环境中,往往需要新建一些磁盘分区或者设备等,此时对硬盘进行重新划分往往不太方便。在这种情况下,可...

目录

Linux 的伪设备

在开发或测试环境中,往往需要新建一些磁盘分区或者设备等,此时对硬盘进行重新划分往往不太方便。在这种情况下,可以通过伪设备来进行模拟。

常见的伪设备包括:

  • null
  • zero
  • full
  • loop
  • random
  • urandom

在这里插入图片描述

Loop 设备

在 Linux 中,设备名称按照相应的设备驱动程序的符号表项来进行命名。为 Loop 伪设备被命名为 loopX,例如:/dev/loop0、/dev/loop1。

Linux 默认支持 8 个 Loop 设备,如果超过 8 个,则需要额外的配置。否则会出现 no such device 或 could not find any free loop device 之类的错误。

可以通过修改 modprobe.conf 配置文件,增加如下参数的方式进行扩展:

$ /etc/modprobe.conf
...
options loop max_loop=20

$ modprobe -v loop

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

还有一种扩展 loop 设备数量办法是通过 mknod 指令来创建 loop 设备:

# X 表示第 X 个 loop 设备。
$ mknod -m 0660 /dev/loopX b 7 X

# e.g.
$ mknod -m 0660 /dev/loop8 b 7 8  
$ chown root:disk /dev/loop8

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用 losetup -a 指令可以查询目前被使用的 loop 设备:

$ losetup -a

  
 
  • 1

在使用之前,Loop 设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口允许将文件视为一个 “块设备”(块特殊文件)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载。

这种设备文件经常被用于光盘或是磁盘镜像。通过循环挂载方式来挂载包含文件系统的文件,这些文件将出现在挂载点目录,使得应用程序可以访问这个文件系统中的文件。

例如,在 OpenStack 开发/测试环境中创建 Cinder 使用的块存储设备。

$ yum install -y device-mapper-persistent-data lvm2

$ systemctl enable lvm2-lvmetad.service && systemctl start lvm2-lvmetad.service && systemctl status lvm2-lvmetad.service

$ mkdir -p /cinder/volumegroup
$ dd if=/dev/zero of=/cinder/volumegroup/volpool01.img count=204800 bs=1MB
$ losetup /dev/loop0 /cinder/volumegroup/volpool01.img
$ pvcreate /dev/loop0
$ vgcreate cinder-volumes /dev/loop0
$ vgs

$ vi /etc/rc.local
...
losetup /dev/loop0 /cinder/volumegroup/volpool01.img
pvcreate /dev/loop0

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。

原文链接:is-cloud.blog.csdn.net/article/details/120133577

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。