回环设备( 'loopback device')允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为
disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image
必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普通文件。
回环设备以
/dev/loop0、/dev/loop1
等命名。每个设备可虚拟一个块设备。注意只有超级用户才有权限设置回环设备。
回环设备的使用与其它任何块设备相同。特别是,你可以在这个设备上创建文件系统并像普通的磁盘一样将它挂载在系统中。这样的一个将全部内容保存在一个普通文件中的文件系统,被称为虚拟文件系统(virtual
file system)(译者注:这个用法并不常见。VFS 通常另有所指,如指代 Linux
内核中有关文件系统抽象的代码层次等)。
可以通过下列步骤创建一个虚拟文件系统并通过回环设备挂载:
创建一个用于承载虚拟文件系统的空文件。这个文件的大小将成为挂载后文件系统的大小。
创建指定大小文件的简单方法是通过
dd 命令。这个命令以块为单位(通常为 512 字节)从一个文件向另一个文件复制数据。/dev/zero 文件则是一个很好的数据来源。
要建立一个 10
MB 大的名为 disk-image 的文件可以通过以下命令:
% dd if=/dev/zero of=/tmp/disk-image
count=20480
20480+0 records in
20480+0 records out
% ls -l
/tmp/disk-image
-rw-rw---- 1 root root 10485760 Mar 8 01:56
/tmp/disk-image
这个新建立的文件被填满了 0
字节。在挂载之前,必须在其上建立一个文件系统。这个过程会建立许多用于组织和存储文件的控制单元并构造根目录结构。
在这个磁盘映像之上可以构建任何类型的文件系统。以创建
ext2 文件系统为例(ext2 是 Linux 系统中最常见的文件系统),用 mke2fs
可以完成这个操作。因为这个命令通常是针对块设备进行操作,当对一个普通文件操作时它会要求确认:
% mke2fs -q
/tmp/disk-image
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b,
95/08/09
disk-image is not a block special device.
Proceed anyway? (y,n)
y
这里 -q 参数用于省略输出有关新建立文件系统的概要信息。如果你想看到这些信息,则请省略这个参数。
现在 disk-image
文件包含了一个新建立的文件系统,正如一个被刚刚初始化完毕的 10 MB 大小的磁盘。
以一个环回设备挂载这个文件系统。方法是使用 mount
命令,指定磁盘文件为被挂载的设备。同时指定 loop=loopback-device 作为 -o 选项的参数,告诉 mount
命令使用哪个回环设备。
下面例子中的命令可用于挂载我们的 disk-image 文件系统。要记住的是只有超级用户可以使用环回设备。第一个命令将创建一个目录
/tmp/virtual-fs,这个目录将被用于挂载我们的文件系统。
% mkdir /tmp/virtual-fs
% mount -o
loopback=/dev/loop0 /tmp/disk-image /tmp/virtual-fs
这时,这个设备应该已经被挂载,就如同一个普通的
10M 空间的磁盘一样。
% df -h /tmp/virtual-fs
Filesystem Size Used Avail Use%
Mounted on
/tmp/disk-image 9.7M 13k 9.2M 0%
/tmp/virtual-fs
你可以向任何其它磁盘一样使用这个设备:
% cd /tmp/virtual-fs
% echo 'Hello,
world!' > test.txt
% ls -l
total 19
drwxr-xr-x 2 root root 12288
Mar 8 02:00 lost+found
-rw-rw---- 1 root root 14 Mar 8 02:12
test.txt
% cat test.txt
Hello, world!
请注意 lost+found 是一个由 mke2fs
自动建立的文件夹一旦文件系统被破坏,部分数据被回复但没有与任何文件关联起来,将被放置在这个文件夹中。。
结束使用后,卸载这个文件系统:
% cd
/tmp
% umount /tmp/virtual-fs
你可以删除
disk-image,或者之后再次挂载并使用其中的文件。你甚至可以将这个文件复制到远程主机并在那里挂载、使用——文件系统的内容完全不会受到影响。
除了从新创建一个文件系统,还可以从一个现有的文件系统复制而得到一份映像。例如,可以通过普通的复制操作为一个
CD-ROM 创建一份映像。
如果系统中有一个 IDE 接口的 CD-ROM 驱动器,使用前面说过的设备名如 /dev/hda。如果 CD-ROM
是 SCSI 接口的话,设备文件名可能是 /dev/scd0 之类。系统中也可能包含一个符号链接 /dev/cdrom 指向实际的光驱。请参考
/etc/fstab (译者注:
手册)查看系统实际使用的光驱对应的设备。
接下来要做的仅仅是将这个设备复制为一个文件——得到的文件将是被存在硬盘上的、这个 CD-ROM
内容的完整映像。例如:
% cp /dev/cdrom /tmp/cdrom-image
取决于设备的速度和 CD-ROM
的容量,这个操作可能需要几分钟的时间。最终的文件将会相当大,它的体积与这个 CD-ROM
的容量相同。
这时,你可以在系统中挂载这个光盘而无须插入原始的 CD-ROM 盘片。要挂载在 /mnt/cdrom
目录下:
mount -o loopback=/dev/loop0 /tmp/cdrom-image
/mnt/cdrom
因为映像位于磁盘上,这个文件系统的速度将远胜于直接挂载自实际光驱的时候。请注意多数光盘使用的文件系统类型都是
iso9660。
假设我有一个磁盘镜像 /tmp/sda1.img
# mount /tmp/sda1.img /mnt/sda1 -o loop
# umount
/tmp/sda1.img
即可
分享到:
相关推荐
CAN(Controller Area Network)是一种广泛应用于...总的来说,CAN回环测试是保证CAN通信系统稳定运行的重要环节,通过神舟王的CAN回环程序,用户可以方便地进行测试和调试,确保CAN设备在复杂环境中的稳定性和可靠性。
在Windows操作系统中,创建回环设备(Loopback Device)是一种常见的技术操作,它主要用于测试网络应用程序或服务,而无需实际的网络连接。回环设备在系统中表现为一个虚拟的网络接口,可以模拟网络数据包的发送和...
这是我做的一个关于视觉SLAM中回环检测部分的PPT,用于课堂上的presentation,可以自行下载查看,不设置积分。参考于《视觉SLAM十四讲从理论到实践 第2版》。
标题中的“行业分类-设备装置-一种基于UVM平台的PCIE回环自检测的方法”表明,这个压缩包内容涉及的是计算机硬件设备领域,特别是PCI Express(PCIE)设备的测试技术,它采用通用验证方法学(Universal Verification...
5. **局限性**:虽然SPI回环测试能有效验证SPI接口的基本功能,但它无法检测到与外部SPI设备交互的问题,如CS信号控制、通信协议兼容性等。因此,在系统级验证时,还需要进行实际的外设通信测试。 6. **调试工具**...
UART(通用异步收发传输器)是一种广泛用于嵌入式系统和计算机之间的串行通信接口,它在各种设备间传输数据,如微处理器、传感器、显示器等。本项目是南京邮电大学的一个课程设计,重点在于实现一个具有回环功能的...
《ZYNQ7000平台 - Linux环境下pl-ps使用AXI-DMA进行数据传输》这篇文章对应的工程资源“ZedBoard-Linux-pl-ps单个dma回环测试成功.rar”是针对赛灵思ZYNQ7000系列SoC的一个实践教程。ZYNQ7000是Xilinx公司推出的一种...
losetup命令用来设置循环设备,查看回环设备的状态。循环设备可把文件虚拟成区块设备,籍以模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。 语法格式:losetup [参数] ...
通过命令`[HUAWEI] loop-detection enable`来全局启用环路检测,并可通过`[HUAWEI] loop-detection enable vlan vlan-id`指定特定VLAN进行环路检测。使用`display loop-detection`命令可查看当前环路检测的状态。 2...
7. **测试框架**:为了系统地测试SCI-B的loopback功能,开发者通常会编写一个测试框架,该框架可能包含发送一系列预定义的数据包,然后比较接收到的数据,以确保回环的正确性。 在"SCB-test"这个文件中,很可能包含...
6. **综合与实现**:一旦验证完成,可以将设计综合成门级网表,并进行布局布线,最终生成可编程逻辑设备(如FPGA)的配置文件。 在收发回环系统中,调用这个RAM IP核可能用于构建一个数据缓冲区,发送端将数据写入...
它定义了数据终端设备(DTE)和数据通信设备(DCE)之间的接口,常用于PC和调制解调器、PC和其他设备之间的通信。 在Delphi中,串口通信主要通过TSerialPort组件实现。这个组件提供了丰富的属性、方法和事件,可以...
在这个“stm32f103实现通信-回环-入门项目”中,我们将重点探讨如何在STM32F103ZET6开发板上实现数据通信的回环模式,即自发自收功能,同时也会涉及CAN(Controller Area Network)通信协议的使用。 首先,理解回环...
在使用Docker的过程中,有时可能会遇到“`There are no more lookback devices available`”的错误提示,这通常意味着你的Linux操作系统已经用完了所有的Loopback(回环)设备,而这些设备是Docker运行容器时所需的...
STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,而CAN(Controller Area Network)是一种高效、可靠的串行通信协议,广泛用于设备间的通信。本文将详细介绍如何使用STM32的HAL...
总的来说,副麦回环测试是评估Android设备音频功能的重要手段,它能帮助开发者检测副麦克风是否正常工作,确保音频质量不受影响。通过合理的代码实现,我们可以构建一个可靠的测试框架,适用于不同设备和场景。
1. **硬件连接**:确保学习板的声卡接口与外部音频设备(如耳机或扬声器)正确连接。在LT-ARM214X学习板上,可能需要通过USB、3.5mm音频插孔或I2S接口进行连接。 2. **驱动程序安装**:在进行测试前,需要确保学习...
在这个“电子-CAN回环实验”中,我们将聚焦于STM32系列微控制器(MCU)如何实现CAN回环功能。STM32-F0、F1和F2是STMicroelectronics公司推出的基于ARM Cortex-M内核的单片机,它们具有丰富的外设接口,包括支持CAN...
根据给定的文件信息,我们可以总结出以下关于“本地连接回环网建立”的相关知识点: ### 一、回环网的基本概念 回环网(Loopback Network)是一种虚拟的网络接口,它允许计算机通过软件模拟的方式与自身进行通信。...
回环网卡(Loopback Adapter)是一种虚拟网络设备,主要用于测试网络软件或进行本地主机间的通信。在计算机网络中,回环网卡提供了一个节点到其自身的连接,即所谓的“回环”功能。通常情况下,回环地址为127.0.0.1...