以下是在Linux系统上创建多个20GB文件分区并格式化为不同文件系统的分步指南:
步骤1:创建基础文件(4个20GB文件)
bash
# 创建4个20GB稀疏文件(实际占用空间随写入量增长) | |
dd if=/dev/zero of=ext2_disk.img bs=1M count=0 seek=20480 | |
dd if=/dev/zero of=ext3_disk.img bs=1M count=0 seek=20480 | |
dd if=/dev/zero of=ext4_disk.img bs=1M count=0 seek=20480 | |
dd if=/dev/zero of=xfs_disk.img bs=1M count=0 seek=20480 | |
# 或创建完全分配的20GB文件(立即占用空间) | |
# dd if=/dev/zero of=ext2_disk.img bs=1G count=20 |
步骤2:设置回环设备
bash
# 为每个文件分配回环设备 | |
sudo losetup /dev/loop0 ext2_disk.img | |
sudo losetup /dev/loop1 ext3_disk.img | |
sudo losetup /dev/loop2 ext4_disk.img | |
sudo losetup /dev/loop3 xfs_disk.img |
步骤3:格式化文件系统
bash
# 格式化为ext2 | |
sudo mkfs.ext2 /dev/loop0 | |
# 格式化为ext3(实际是带日志的ext2) | |
sudo mkfs.ext3 /dev/loop1 | |
# 格式化为ext4 | |
sudo mkfs.ext4 /dev/loop2 | |
# 格式化为XFS | |
sudo mkfs.xfs /dev/loop3 |
步骤4:挂载并测试文件系统
bash
# 创建测试目录 | |
sudo mkdir /mnt/{ext2,ext3,ext4,xfs}_test | |
# 挂载并测试写入 | |
sudo mount /dev/loop0 /mnt/ext2_test | |
sudo mount /dev/loop1 /mnt/ext3_test | |
sudo mount /dev/loop2 /mnt/ext4_test | |
sudo mount /dev/loop3 /mnt/xfs_test | |
# 覆盖测试(写入随机数据) | |
sudo dd if=/dev/urandom of=/mnt/ext2_test/testfile bs=1G count=5 oflag=direct | |
sudo dd if=/dev/urandom of=/mnt/ext3_test/testfile bs=1G count=5 oflag=direct | |
sudo dd if=/dev/urandom of=/mnt/ext4_test/testfile bs=1G count=5 oflag=direct | |
sudo dd if=/dev/urandom of=/mnt/xfs_test/testfile bs=1G count=5 oflag=direct | |
# 验证写入 | |
ls -lh /mnt/*_test/ |
步骤5:卸载并清理
bash
# 卸载文件系统 | |
sudo umount /mnt/ext2_test | |
sudo umount /mnt/ext3_test | |
sudo umount /mnt/ext4_test | |
sudo umount /mnt/xfs_test | |
# 删除挂载点 | |
sudo rmdir /mnt/{ext2,ext3,ext4,xfs}_test | |
# 释放回环设备 | |
sudo losetup -d /dev/loop0 | |
sudo losetup -d /dev/loop1 | |
sudo losetup -d /dev/loop2 | |
sudo losetup -d /dev/loop3 | |
# 删除虚拟磁盘文件(可选) | |
# rm -f *.img |
关键说明:
- 稀疏文件 vs 完全分配:使用seek参数创建的是稀疏文件,实际占用空间随写入量增长完全分配文件会立即占用20GB空间,适合需要精确控制存储的场景
- 文件系统特性:ext3是带日志的ext2,mkfs.ext3会自动创建日志区域XFS需要内核版本≥2.4.25,适合大文件和高吞吐量场景
- 测试建议:使用fio进行更专业的性能测试检查文件系统一致性:sudo e2fsck /dev/loopX(ext系列)XFS校验:sudo xfs_repair /dev/loop3
- 持久化配置(可选):
- bash
- # 编辑/etc/fstab添加自动挂载条目
- /dev/loop0 /mnt/ext2_test ext2 defaults 0 0
- # 需配置autoloop或使用uuid挂载
建议通过df -hT命令实时监控文件系统挂载状态,使用iostat观察磁盘I/O性能。测试完成后务必执行清理步骤,避免残留回环设备占用资源。