服务器测评网
我们一直在努力

Linux如何制作img镜像文件?详细步骤有哪些?

在Linux系统中制作img镜像文件是一项常见且实用的操作,广泛应用于系统部署、存储设备备份、嵌入式开发等领域,img文件是一种磁盘镜像格式,能够完整复制存储设备的所有数据,包括分区表、引导信息以及文件系统等,本文将详细介绍在Linux环境下制作img镜像文件的多种方法、操作步骤及注意事项,帮助读者掌握这一技能。

Linux如何制作img镜像文件?详细步骤有哪些?

使用dd命令制作基础镜像

dd命令是Linux中最基础的磁盘操作工具,能够直接读取和写入原始数据,是制作img镜像的首选方法,其基本语法为dd if=输入文件 of=输出文件 bs=块大小 count=块数量,其中if参数指定源设备或文件,of参数指定目标img文件,bs参数设置每次读取的块大小(建议使用1M以提高效率),count参数限制读取的块数量(可选)。

以制作SD卡镜像为例,首先使用lsblkfdisk -l命令识别SD卡设备名(假设为/dev/sdb),然后执行以下命令:

sudo dd if=/dev/sdb of=sdk.img bs=1M status=progress

命令中的status=progress参数可实时显示复制进度,制作完成后,生成的sdk.img文件将完整包含SD卡的所有数据,若需制作特定大小的镜像,可使用count参数控制数据量,例如制作1GB的镜像:

sudo dd if=/dev/zero of=custom.img bs=1M count=1024

使用ddrescue制作损坏设备的镜像

当源设备存在坏道时,普通dd命令可能会中断,此时可使用ddrescue工具,它是GNU提供的数据恢复工具,能够智能跳过错误扇区并继续复制,最终生成可用的镜像文件,首先需安装ddrescue(Ubuntu/Debian系统可通过sudo apt install gddrescue命令安装),然后执行:

Linux如何制作img镜像文件?详细步骤有哪些?

sudo ddrescue -f /dev/sdk sdk.img sdk.log

-f参数强制覆盖输出文件,sdk.log日志文件会记录错误位置,便于后续恢复,若需重试读取错误区域,可运行:

sudo ddrescue -d -r3 -f /dev/sdk sdk.img sdk.log

-d使用直接访问模式,-r3设置重试次数为3次。

使用parted和mkfs构建分区镜像

若需制作包含分区的自定义镜像,可先通过parted工具创建分区表,再使用mkfs格式化文件系统,最后挂载并写入数据,以下步骤以创建1GB镜像并分为两个分区为例:

  1. 创建原始镜像文件:
    fallocate -l 1G disk.img
  2. 使用parted分区:
    sudo parted -s disk.img mklabel msdos
    sudo parted -s disk.img mkpart primary ext4 1MiB 512MiB
    sudo parted -s disk.img mkpart primary ext4 512MiB 100%
  3. 创建设备映射文件:
    sudo losetup -fP disk.img
    sudo losetup -j disk.img

    假设映射后的设备为/dev/loop0p1和/dev/loop0p2。

    Linux如何制作img镜像文件?详细步骤有哪些?

  4. 格式化分区并挂载:
    sudo mkfs.ext4 /dev/loop0p1
    sudo mkfs.ext4 /dev/loop0p2
    sudo mkdir -p /mnt/{part1,part2}
    sudo mount /dev/loop0p1 /mnt/part1
    sudo mount /dev/loop0p2 /mnt/part2
  5. 向分区写入数据后,卸载并清理设备映射:
    sudo umount /mnt/{part1,part2}
    sudo losetup -d /dev/loop0

验证镜像文件的完整性

制作完成后,需验证img文件是否与源设备一致,对于dd命令生成的镜像,可使用cmp命令比较源设备与镜像文件的前几MB数据:

sudo cmp /dev/sdk sdk.img --bytes=1M

若输出为空,则表示数据一致,对于分区镜像,可通过fdisk -l disk.img检查分区表是否正确,或使用file命令查看文件系统类型:

file disk.img

注意事项

  1. 设备识别:操作前务必确认源设备名称(如/dev/sdb),避免误写系统分区导致数据丢失。
  2. 权限问题:dd命令需要root权限,确保使用sudo执行。
  3. 存储空间:目标img文件大小需与源设备容量匹配,确保磁盘有足够剩余空间。
  4. 性能优化:使用bs=1M可显著提高dd命令的复制速度,避免使用默认的512字节块大小。
  5. 数据安全:重要数据建议在制作镜像前进行备份,并验证镜像文件的可用性。

通过以上方法,用户可根据实际需求选择合适的工具制作img镜像文件,无论是简单的整盘复制,还是复杂的分区镜像构建,Linux提供的命令行工具都能高效完成任务,掌握这些技能不仅能提升系统管理效率,也为数据备份与迁移提供了可靠保障。

赞(0)
未经允许不得转载:好主机测评网 » Linux如何制作img镜像文件?详细步骤有哪些?