Linux创建虚拟磁盘并挂载到容器

本文介绍了三种创建磁盘文件的方法:dd, truncate和fallocate。dd方法虽然会实际写入数据,但能确保空间被占用;truncate速度快,但可能超出磁盘配额导致错误;fallocate既快又能预先分配磁盘配额,提升后续写入性能。之后,文章讲解了如何在虚拟磁盘文件上创建文件系统(如ext4),以及如何挂载和使用这些文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 创建一个磁盘文件
    有三种方式: dd, truncate, fallocate
    # 创建一个大小为1GB的名为vhd.img的文件
    dd if=/dev/zero of=vhd.img bs=1M count=1024

    缺点:需要消耗真正写入1GB大小的时间和写入量。

    truncate -s 1g vhd.img

    优点:不会真正写磁盘,速度很快
    缺点:磁盘配额没有消耗,可以分配超过磁盘总大小的文件,在写入过程中如果物理空间不足会引起错误.

    fallocate -l 1g vhd.img

    优点:不会真正写磁盘,速度很快。会分配磁盘配额,且物理空间上会尽量安排连续空间,提升后续写入性能。

  2. 在虚拟磁盘文件上创建文件系统

    mkfs.ext4 vhd.img

    推荐的文件系统有:Ext4,XFS,BrtFS

  3. 挂载这个虚拟磁盘文件到某个挂载点

    sudo mount -o loop vhd.img /mnt/vhd
    
    # 如果需要写入, 需要修改挂载点的权限
    sudo chown -R user:user /mnt/vhd
  4.  通过bind mount挂载到容器
    podman run -v /mnt/vhd:/data docker.io/ubuntu:latest

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值