Linux 文件模拟磁盘

1.整个文件当一个磁盘不分区使用
dd if=/dev/zero if=/home/test.img bs=1M count=512
mkfs -t ext4 /home/test.img   #格式化
mount -o loop /home/test.img /dd 

或者使用losetup配置为loop设备

dd if=/dev/zero if=/home/test.img bs=1M count=512
losetup -f /home/test.img
mkfs -t ext4 /dev/loop1   #格式化
mount -t ext4 /dev/loop1 /dd 
2.整个文件当一个磁盘且分区使用

先使用dd或者qemu创建一个空的20G大文件,步骤和第一步一样,然后使用fdisk /var/lib/libvirt/images/openharmony.img 进行分区,分区后如下

sudo fdisk -l /var/lib/libvirt/images/openharmony.img
Disk /var/lib/libvirt/images/openharmony.img: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EC7875C8-5819-7140-B12F-DDED3C4280FD

Device                                     Start      End  Sectors  Size Type
/var/lib/libvirt/images/openharmony.img1    2048  1026047  1024000  500M Linux filesystem
/var/lib/libvirt/images/openharmony.img2 1026048  7317503  6291456    3G Linux filesystem
/var/lib/libvirt/images/openharmony.img3 7317504  9414655  2097152    1G Linux filesystem
/var/lib/libvirt/images/openharmony.img4 9414656 30386175 20971520   10G Linux filesystem

使用kpartx -av  /var/lib/libvirt/images/openharmony.img进行mapping操作。

kpartx -av ./openharmony.img 
add map loop1p1 (254:0): 0 1024000 linear 7:1 2048
add map loop1p2 (254:1): 0 6291456 linear 7:1 1026048
add map loop1p3 (254:2): 0 2097152 linear 7:1 7317504
add map loop1p4 (254:3): 0 20971520 linear 7:1 9414656
#然后查看被映射的设备

 ls /dev/mapper/loop1p*
/dev/mapper/loop1p1  /dev/mapper/loop1p2  /dev/mapper/loop1p3  /dev/mapper/loop1p4

然后就可以像物理设备一样使用了,格式化,挂载等等。使用完成后,使用kpartx -d 删除掉映射就可以了

 kpartx -dv ./openharmony.img 
del devmap : loop1p4
del devmap : loop1p3
del devmap : loop1p2
del devmap : loop1p1
loop deleted : /dev/loop1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模拟Linux文件系统。在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟Linux文件系统 在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。 2. 编写一管理程序对此空间进行管理,以模拟Linux文件系统,具体要求如下: (1) 要求盘块大小1k 正规文件 (2) i 结点文件类型 目录文件 (共1byte) 块设备 管道文件 物理地址(索引表) 共有13个表项,每表项2byte 文件长度 4byte 。联结计数 1byte (3)0号块 超级块 栈长度50 空闲盘块的管理:成组链接 ( UNIX) 位示图法 (Linux) (4)每建一个目录,分配4个物理块 文件名 14byte (5)目录项信息 i 结点号 2byte (6)结构: 0#: 超级块 1#-20#号为 i 结点区 20#-30#号为根目录区 3. 该管理程序的功能要求如下: (1) 能够显示整个系统信息,源文件可以进行读写保护。目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。 (2) 改变目录:改变当前工作目录,目录不存在时给出出错信息。 (3) 显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。 (4) 创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。 (5) 删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。 (6) 建立文件(需给出文件名,文件长度)。 (7) 打开文件(显示文件所占的盘块)。 (8) 删除文件:删除指定文件,不存在时给出出错信息。 4. 程序的总体流程为: (1) 初始化文件目录; (2) 输出提示符,等待接受命令,分析键入的命令; (3) 对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值