使用 losetup 帮你创建虚拟磁盘

【Linux】深入解析/dev/loop的创建与管理 | 从零构建虚拟磁盘实践 本文深入解析Linux中/dev/loop虚拟磁盘的创建与管理,从零开始实践构建虚拟磁盘。详细介绍了使用losetup命令关联loop设备、分区操作、文件系统创建及挂载管理等核心步骤,并提供了加密与压缩等进阶应用技巧,帮助开发者高效管理虚拟存储空间。 阅读详情

linux一切都是文件的特性可以使你把一个文件当成虚拟磁盘来用。步骤如下:

1. 使用dd创建虚拟磁盘文件。例如,使用下面可以创建一个200M的磁盘

dd if=/dev/zero of=~/HDD.img bs=1M count=200

2. 使用fdisk对其进行分区

 

[lujun9972@X61 ~]$ fdisk HDD.img

 

欢迎使用 fdisk (util-linux 2.32)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

 

设备不包含可识别的分区表。

创建了一个磁盘标识符为 0x38ffa4dc 的新 DOS 磁盘标签。

 

命令(输入 m 获取帮助):n

分区类型

   p   主分区 (0个主分区,0个扩展分区,4空闲)

   e   扩展分区 (逻辑分区容器)

选择 (默认 p):p

分区号 (1-4, 默认  1):

第一个扇区 (2048-409599, 默认 2048):

上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-409599, 默认 409599): +100M

 

创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。

 

命令(输入 m 获取帮助):n

分区类型

   p   主分区 (1个主分区,0个扩展分区,3空闲)

   e   扩展分区 (逻辑分区容器)

选择 (默认 p):p

分区号 (2-4, 默认  2):

第一个扇区 (206848-409599, 默认 206848):

上个扇区,+sectors 或 +size{K,M,G,T,P} (206848-409599, 默认 409599):

 

创建了一个新分区 2,类型为“Linux”,大小为 99 MiB。

 

 

命令(输入 m 获取帮助):w

 

分区表已调整。

正在同步磁盘。

3. 使用losetup创建loop设备

[lujun9972@X61 ~]$ sudo losetup -Pf --show ~/HDD.img

[sudo] lujun9972 的密码:

/dev/loop0

其中参数

-P

强制要求核心扫描loop设备中的分区表

-f

自动寻找并使用第一个未用的loop设备

–show

输出所分配的loop设备

使用 lsblk 可以看到已经把虚拟磁盘文件挂载上去了

[lujun9972@X61 ~]$ lsblk

NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

loop0       7:0    0   200M  0 loop

├─loop0p1 259:2    0   100M  0 loop

└─loop0p2 259:3    0    99M  0 loop

sda         8:0    0 111.8G  0 disk

├─sda1      8:1    0    50G  0 part /home

├─sda2      8:2    0     8G  0 part [SWAP]

└─sda3      8:3    0  53.8G  0 part /

4. 像普通磁盘那样使用

虚拟磁盘用起来跟普通磁盘一样:

可以创建文件系统

[lujun9972@X61 ~]$ sudo mkfs.reiserfs /dev/loop0p1

mkfs.reiserfs 3.6.27

 

Guessing about desired format.. Kernel 4.15.15-1-ARCH is running.

Format 3.6 with standard journal

Count of blocks on the device: 25600

Number of blocks consumed by mkreiserfs formatting process: 8212

Blocksize: 4096

Hash function used to sort names: "r5"

Journal Size 8193 blocks (first block 18)

Journal Max transaction length 1024

inode generation number: 0

UUID: 6cad1bcb-4798-4643-b471-a5ab695e0eb5

ATTENTION: YOU SHOULD REBOOT AFTER FDISK!

  ALL DATA WILL BE LOST ON '/dev/loop0p1'!

Continue (y/n):y

Initializing journal - 0%....20%....40%....60%....80%....100%

Syncing..ok

ReiserFS is successfully created on /dev/loop0p1.

可以挂载

[lujun9972@X61 ~]$ sudo mount /dev/loop0p1 /mnt

[lujun9972@X61 ~]$ df -h

文件系统        容量  已用  可用 已用% 挂载点

dev             1.9G     0  1.9G    0% /dev

run             1.9G  720K  1.9G    1% /run

/dev/sda3        53G  7.3G   43G   15% /

tmpfs           1.9G   23M  1.9G    2% /dev/shm

tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup

tmpfs           1.9G   52K  1.9G    1% /tmp

/dev/sda1        50G   25G   26G   49% /home

tmpfs           388M  4.0K  388M    1% /run/user/1000

/dev/loop0p1    100M   33M   68M   33% /mnt

存入文件

[lujun9972@X61 ~]$ sudo touch /mnt/secret

[lujun9972@X61 ~]$ ls -l /mnt/secret

-rw-r--r-- 1 root root 0 4月   9 18:36 /mnt/secret

5. 使用完后,再使用losetup卸载虚拟磁盘

[lujun9972@X61 ~]$ sudo umount /mnt

[lujun9972@X61 ~]$ sudo losetup -d /dev/loop0

[lujun9972@X61 ~]$ lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda      8:0    0 111.8G  0 disk

├─sda1   8:1    0    50G  0 part /home

├─sda2   8:2    0     8G  0 part [SWAP]

└─sda3   8:3    0  53.8G  0 part /

c#调用DiscUtils读写vhd虚拟盘 c#调用开源库DiscUtils读写vhd虚拟盘 立即下载

相关推荐

Pytorch学习笔记(III)——提取特征

目录一、引言二、具体步骤1、参数模型2、网络结构3、参数载入4、特征提取器5、读取图片三、完整代码 一、引言   深度学习在许多任务中主要充当着特征学习的作用,而学习完的特征才是后续应用的一个关键。本文将主要介绍,如何提取任意目标层的特征图。   本文以输入数据为图片为例。 二、具体步骤 1、参数模型 博主使用了ResNet50训练了一个人脸识别的网络   训练完成的深度学习模型,我们会保存一...

lockonlxf的博客 2643

RHCSA 01 - 创建分区与文件系统

本文演示创建一个loop文件,并将其分区、格式化,并挂载。loop设备是一个伪磁盘,它使用image文件作为其存储后端。 Linux dd 程序提供了一个简单的工具来创建此image文件。步骤1:查看根目录有大于10GB的剩余空间, 步骤2:使用dd命令创建一个image文件, 步骤3:使用losetup工具,将该image文件设置为loop设备, 步骤4:分区。Linux下有多个命令可以完成磁盘分区,这里使用fdisk, 步骤5:格式化分区 步骤6:挂载 步骤7:使用 参考资料

IT基础架构 376

[FreeRTOS+STM32CubeMX] 03 USART串口调试-基于中断实现接收和发送数据

我们接着上一小节,上一节讲到,接收上位机传来的数据时,需要事先知道传来的数据的字节数,这一操作实在有些反人类,那么如何解决这个问题,上位机输入多少,我们就接收多少数据呢? 接下来我将把USART引入中断,在接收数据的回调函数中引入二值信号量、消息队列,来让我的接收数据能够存储在队列中,并一个一个的在任务中输出出来,并最终在上位机回显。

RichieHuang的博客 2649

windows虚拟磁盘的创建

右击我的电脑选择管理->磁盘管理->激活权限->创建vhd文件,并设置相应的磁盘属性即可,这个vhd文件就是虚拟硬盘文件,这个文件是由系统自己制作的完全和真实硬盘的结构数据一样。

Strange_Head的博客 7108

模块 stm32_基于STM32设计的RFID读卡模块电路方案(原理图+程序)

采用stm32F030F4,用PWM产生125KHZ的方波,经过推挽电路进行功率放大,高频电流进入LC串联谐振电路,345uH和4.7NF的谐振频率正好是125KHZ,这时电容两端电压会到十几伏。当有卡接近线圈时,线圈两端会有曼彻斯特编码的调幅波。通过二极管以及电容的检波和滤波,产生的小信号送入LM358进行放大和整形,变成单片机可以读取的曼彻斯特编码信号。• IO 分配(采用内部晶...

weixin_28686771的博客 3815

机器视觉--线扫相机触发:从原理到选型,构建高效成像方案

本文深入解析线扫相机触发技术,从硬件编码器触发到软件触发方案,提供详细的性能对比和选型指南。通过实际案例展示如何构建高效成像方案,特别适合机器视觉领域需要精准控制的应用场景,如工业检测和自动化生产线。

weixin_42531886的博客 417

C# 创建虚拟盘

一、介绍 虚拟盘有点类似于文件的快捷方式,但是又有不同。 本文介绍的虚拟盘,是通过网络路径或者自己本地计算机的某个文件夹来创建一个虚拟盘,可能表述不清楚,具体您先看一下效果图: 该L盘,实际是本地路径 E:\test 的文件夹映射。双击进去L盘后,看到的东西,跟E:\test下看到的东西是一样的。 二、C#如何实体虚拟盘 创建虚拟盘的指令是使用cmd命令程序来执行subst命令,那么C#代码,就要模拟这个过程,具体代码如下: static void Main(string[

C#开发 2390

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

浅谈Linux /dev/loop0文件

最近学习了一些Linux知识,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用 文章目录一 概念二 losetup命令三 使用举例四 总结 一 概念 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它使我们能像块设备一样访问一个文件。 在使用之前,一个 loop 设备必须要和一个文件进行连接,这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘.

ergouy's blog 9119

OTFS 消息传递算法信号检测【附matlab代码详解】

OTFS 消息传递算法方面的一些浅浅理解。

Cuby的博客 4011

YOLO26中的PPM空间金字塔池化:改良设计与多尺度特征提取教程

在计算机视觉的语义分割任务中,准确理解图像中的上下文信息至关重要。例如,在街景图像中,可能同时存在远处的小汽车和近处的大建筑物,网络需要具备捕获多尺度上下文信息的能力。例如,要正确识别图像中的"船",不仅需要看到船本身的特征,还需要理解周围的水面环境。金字塔的每一层对应不同的池化尺度,从细粒度到粗粒度,形成了多层次的特征表示。PPM(Pyramid Pooling Module)正是为了解决这一问题而提出的模块,它通过构建金字塔形状的池化结构,有效地聚合不同尺度的上下文信息,从而提升语义分割的精度。

LXY_LOVE36的博客 82

losetup 是一个设置和控制loop device设备的linux命令

losetup 是一个设置和控制loop device设备的linux命令 loseup可以将文件或者block device与loop device关联、分离以及查询loop device的当前状态。 #循环设备可把文件虚拟成块设备(block device),借以模拟整个文件系统,让用户能使其为硬盘光驱或软盘等设备、 #并挂载(mount)来使用。losetup可用于文件块或者loop

litianze99的专栏 4198

【Flutter 问题系列第 85 篇】Xcode 运行 Flutter 提示 The Dart VM Service was not discovered after 60 seconds.

在 Xcode 上运行 Flutter 时提示 `The Dart VM Service was not discovered after 60 seconds. This is taking much longer than expected...`,意思是 `60秒后未发现Dart虚拟机服务。这比预期的要长得多`

“Allen Su”的博客 2236

linux dd新建虚拟硬盘,使用 losetup 帮你创建虚拟磁盘

原标题:使用 losetup 帮你创建虚拟磁盘来源:暗无天日 ,lujun9972.github.io/blog/2018/04/09/使用losetup帮你创建虚拟磁盘/linux一切都是文件的特性可以使你把一个文件当成虚拟磁盘来用。步骤如下:1. 使用dd创建虚拟磁盘文件。例如,使用下面可以创建一个200M的磁盘dd if=/dev/zero of=~/HDD.img bs=1M count=...

weixin_32447969的博客 1445

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ubuntu(Linux)使用losetup创建虚拟磁盘(挂载,格式化虚拟磁盘,回环设备)

创建一个200M的磁盘 dd if=/dev/zero of=~/HDD.img bs=1M count=200 使用fdisk对其进行分区 fdisk HDD.img 使用losetup创建loop设备 sudo losetup -Pf --show ~/HDD.img 使用 lsblk 可以看到已经把虚拟磁盘文件挂载上去了 (此时也可格式化sudo mkfs.ext3 -q /dev/l...

江州司马 2445

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux创建虚拟磁盘并分区格式化

losetup是 Linux 中用于管理环回设备(loop devices)的命令。环回设备是一个虚拟设备,它将文件当作块设备来使用,从而可以像操作硬盘一样操作一个普通的文件。losetup指令主要用于将文件与环回设备进行绑定或解除绑定,以及查看现有环回设备的状态。

zyqash的博客 2509

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux losetup 命令 5 种高级用法:从挂载镜像到创建 LVM 虚拟磁盘

本文详细介绍了Linux losetup命令的5种高级用法,包括自动挂载镜像文件、创建稀疏文件节省空间、构建LVM实验环境、自动化挂载脚本以及安全加密虚拟磁盘。这些技巧能显著提升系统管理员的工作效率,特别是在处理/dev/loop设备和磁盘管理时。

weixin_33883104的博客 304

创建虚拟磁盘

1.1 dd 命令简介(部分说明来自dd (Unix) wiki) dd命令用于转换和复制文件,不过它的复制不同于cp。之前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)都像普通文件一样,只是在各自的驱动程序中实现了对应的功能,dd 也可以读取文件或写入这些文件。这样,d...

Leon的博客 2279

losetup命令 linux,losetup命令:设置循环设备

losetup命令:设置循环设备循环设备可以把文件虚拟成块设备(block device),以便模拟整个文件系统,这样用户可以将其看作是硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。比较常用的是将.iso文件当作循环设备加载并访问。1、命令参数losetup:设定与控制循环(loop)设备。语法:losetup 循环设备参数:循环设备可以是/dev/loop0, /dev/loop1 ......

weixin_39789370的博客 750

losetup 命令介绍和使用案例

losetup是Linux系统中的一个命令,用于设置和管理循环设备。循环设备允许用户将普通文件(如磁盘镜像文件)虚拟化为块设备,从而可以像访问真实硬盘、光驱或软驱一样访问这些文件。这种功能在处理虚拟磁盘、ISO镜像等场景中非常有用。

1115

Linux系统之losetup 命令详解

`losetup` 是用于**设置和管理循环设备(loop devices)** 的工具。循环设备是 Linux 系统中将**普通文件或块设备**模拟为块设备(如硬盘、U盘)的特殊设备文件(如 `/dev/loop0`、`/dev/loop1`),可用于挂载镜像文件(如 ISO)、创建虚拟磁盘等场景。`losetup` 支持关联文件到循环设备、解除关联、查询设备状态、调整设备容量等操作,是处理镜像文件的核心工具。

weixin_56303229的博客 898

Linux虚拟磁盘映像创建过程

需要用到的命令:dd   losetup fdisk   kpartx 运行环境Ubuntu 16.04 32位 1.首先创建1G容量空的镜像文件 dd if=/dev/zero of=hello.img bs=1M count=1024 在当前目录生成hello.img 2.使用losetup将该文件映射到loop设备 sudo losetup /dev/loop

HuangHui的专栏 4774

Linux losetup循环设备

(类似于硬盘或分区)。通过循环设备,你可以将一个文件当作一个磁盘分区来使用,并对其中的文件系统进行挂载和访问。你说得对,我确实没有详细解释**循环设备(loop device)**的概念。循环设备是 Linux 内核提供的一种虚拟设备,它的作用是将一个。设备关联,并以只读模式访问。

我的博客 1063

【Shell 命令集合 磁盘管理 】Linux losetup命令使用教程 将一个文件或设备与一个回环设备(loop device)进行关联

losetup命令是Linux系统中的一个工具,用于将一个文件或设备与一个回环设备(loop device)进行关联。回环设备是一种特殊的虚拟设备,可以将一个文件或设备作为一个块设备来使用。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 991

losetup命令:设置循环设备

losetup命令:设置循环设备 循环设备可以把文件虚拟成块设备(block device),以便模拟整个文件系统,这样用户可以将其看作是硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。 比较常用的是将.iso文件当作循环设备加载并访问。 1、命令参数 losetup:设定与控制循环(loop)设备。 语法:

face_look的专栏 1055

[镜像]loop设备及losetup命令介绍

最近需要对一个镜像文件进行修改,可以些方式是通过losetup和kpartx, mount完成,于是分享下面这篇 转自:http://blog.youkuaiyun.com/ustc_dylan/article/details/6878252 1. loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它能使我们像块...

anxuan3201的博客 168
上一篇: Linux常用指令
下一篇: Spring Boot 自动配置原理分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值