文章目录

  • 创建空白 img 文件
  • 挂载空白 img 文件并分区
    • 创建 loop 设备
    • 使用 fdisk 对loop设备分区
    • 断开img和loop的联系
  • 挂载分区后的img文件
    • 查看 img 文件情况
    • 将分区和 loop设备建立联系
    • 挂载分区
    • 拷贝完成清理工作
  • 参考:

主要介绍了 如何创建分区的img镜像文件,如何挂载查看分区的img镜像文件

创建空白 img 文件

命令

dd if=/dev/zero of=test.img bs=4M count=1024

参数说明

if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
count=blocks:仅拷贝blocks个块,块大小等于ibs(一次读入bytes个字节,)指定的字节数。
新建img大小为 bs*count;这里时 4096M = 4GiB(1024) = 4.3GB (1000)
/dev/zero:“零”设备,可以无限的提供空字符(0x00,ASCII代码NUL)。

更多学习

Linux dd 命令

Linux中的虚拟设备/dev/null、/dev/zero、/dev/random和/dev/urandom

挂载空白 img 文件并分区

创建 loop 设备

loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用。 参见 Linux中的loop设备

查看当前loop设备

sudo losetup -l

loop 设备已经到 17 了,所以将 img 文件和 loop18 设备建立联系

建立img和loop设备的联系

sudo losetup /dev/loop18 test.img

反查是否成功

sudo losetup -l

使用 fdisk 对loop设备分区

命令 开始分区

sudo fdisk /dev/loop6
  1. 输入 m 获取帮助
  2. 输入n添加新分区
  3. 输入 p 或者默认表示创建主分区(假设为 BOOT 分区)
  4. 分区号(1)选择默认
  5. 起始扇区(第一个扇区)选择默认
  6. 终止扇区输入 +1G表示创建 1G 的分区供 BOOT 使用(有 +sectors 扇区 和 +size 大小 两种方式,这里是 + size)
  7. 输入 t 改变分区类型
  8. 选择分区 1
  9. 输入 L 查看所有分区类型码表
  10. 输入 b 表示转换为 fat32
  11. 输入 n 创建新分区(假设为 rootfs 分区)
  12. 重复3 4 5 6 到分区成功,可直接默认(4G只分两个区的话)
  13. 输入 a 标记引导分区
  14. 输入 1 将分区 1 标记为可引导(如有需要指定引导分区)
  15. 输入 w 保存更改

详细输出如下:

leacock@leacock-virtual-machine:~/bin$ sudo fdisk /dev/loop18欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xa79ef8a2 的新 DOS 磁盘标签。命令(输入 m 获取帮助): m帮助:DOS (MBR)a   开关 可启动 标志b   编辑嵌套的 BSD 磁盘标签c   开关 dos 兼容性标志常规d   删除分区F   列出未分区的空闲区l   列出已知分区类型n   添加新分区p   打印分区表t   更改分区类型v   检查分区表i   打印某个分区的相关信息杂项m   打印此菜单u   更改 显示/记录 单位x   更多功能(仅限专业人员)脚本I   从 sfdisk 脚本文件加载磁盘布局O   将磁盘布局转储为 sfdisk 脚本文件保存并退出w   将分区表写入磁盘并退出q   退出而不保存更改新建空磁盘标签g   新建一份 GPT 分区表G   新建一份空 GPT (IRIX) 分区表o   新建一份的空 DOS 分区表s   新建一份空 Sun 分区表命令(输入 m 获取帮助): n
分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认  1):
第一个扇区 (2048-8388607, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-8388607, 默认 8388607): +1G创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。命令(输入 m 获取帮助): t
已选择分区 1
Hex 代码(输入 L 列出所有代码): L0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        1  FAT12           27  隐藏的 NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏 或 In c6  DRDOS/sec (FAT-4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 ea  Rufus 对齐     e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ee  GPT
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f1  SpeedStor
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f4  SpeedStor
16  隐藏的 FAT16    63  GNU HURD 或 Sys af  HFS / HFS+      f2  DOS 次要
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fd  Linux raid 自动
1c  隐藏的 W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep
1e  隐藏的 W95 FAT1 80  旧 Minix        be  Solaris 启动    ff  BBT
Hex 代码(输入 L 列出所有代码): b
已将分区“Linux”的类型更改为“W95 FAT32”。命令(输入 m 获取帮助): n
分区类型p   主分区 (1个主分区,0个扩展分区,3空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p): 将使用默认回应 p。
分区号 (2-4, 默认  2):
第一个扇区 (2099200-8388607, 默认 2099200):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2099200-8388607, 默认 8388607): 创建了一个新分区 2,类型为“Linux”,大小为 3 GiB。命令(输入 m 获取帮助): a
分区号 (1,2, 默认  2): 1分区 1 的 可启动 标志已启用。命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
重新读取分区表失败。: 无效的参数内核仍在使用旧分区表。新分区表将在下次重启或运行 partprobe(8) 或 kpartx(8) 后生效。

大体步骤:

  1. n 创建新分区,选择分区类型,选择分区号,选择第一个扇区,选择分区大小

  2. 输入 t 进行改变分区类型操作,输入 a 进行标记引导分区操作

断开img和loop的联系

sudo losetup -d /dev/loop18
sudo losetup -l

挂载分区后的img文件

查看 img 文件情况

fdisk -l test.img

可知一共有两个区,以及各区相关信息。由于一共有两个区后面需要和两个loop设置建立联系。

注意记录下: 扇区大小 512 字节 ,各分区起止扇区编号 test.img1 (2048,2099199) 和 test.img2(2099200,8388607)

将分区和 loop设备建立联系

这里需要进行一点计算

# -o (起始扇区 * 扇区大小)--sizelimit (扇区数量 * 扇区大小) 字节
sudo losetup -f -o 1048576 --sizelimit 1073741824 test.img
sudo losetup -f -o 1074790400 --sizelimit 3220176896 test.img

1048576 = 2048 * 512 ; 1073741824 = 2097152 * 512 或 (2099199 - 2048 + 1)* 512 (注意: +1)

查看是否成功 sudo losetup -l

格式化分区(如有必要)

sudo mkfs.fat /dev/loop18
sudo mkfs.ext4 /dev/loop19

挂载分区

# 建立挂载点
mkdir rootfs boot
# 挂载
sudo mount /dev/loop18 boot/
sudo mount /dev/loop19 rootfs/

查看挂载情况 df -h

然后就可以拷贝文件到所需img分区中了

拷贝完成清理工作

卸载分区

sudo umount rootfs boot

断开img和loop的联系

sudo losetup -d /dev/loop18 /dev/loop19

参考:

https://blog.csdn.net/EricTeo1024/article/details/113347930

linux 制作分区镜像img文件相关推荐

  1. linux制作光盘镜像文件

    随着光盘刻录机在linux计算机上的普及,以iso为主的光盘映像文件制作.转换.编辑等成了大家非常关心的东西.iso等格式的文件是一种数据在数据光盘上的组织形式,即光盘上的文件系统格式. 那么,哪些软 ...

  2. 从0开始使用QEMU模拟ARM开发环境之脚本制作分区镜像(rootfs+zImage+dtb)

    文章目录 从0开始使用QEMU模拟ARM开发环境系列一览表 目录结构: 脚本介绍: 分区镜像制作脚本 qemu启动脚本 流程示例 从0开始使用QEMU模拟ARM开发环境系列一览表 文章中 u-boot ...

  3. Linux磁盘分区逻辑卷文件系统管理

    文章目录 两种分区工具 一.fdisk 分区工具 二.格式化 三.挂载使用分区 四.parted 分区工具 五.交换空间 5.1.使用分区做交换空间 5.2.使用文件所占用的硬盘空间,充当交换空间 逻 ...

  4. linux 制作ramdisk镜像,制作ramdisk文件系统

    http://blog.163.com/qiu_zhi2008/blog/static/6014097720108852750530/ http://tech.ccidnet.com/art/302/ ...

  5. 用linux制作iso镜像文件

    刻录光盘安装必须是iso文件 mkisofs:把文件或目录制作成光盘镜像 make ordinary file to xxx.iso file mkisofs:把文件或目录制作成光盘镜像 cmd:mk ...

  6. linux制作cpio镜像文件,制作CPIO格式的INITRD

    LINUX内核自从2.6版以后,就大力推荐CPIO-INITRD. 现在各大LINUX发行版的INITRD都是CPIO格式的. 这次主要说下如何制作CPIO-INITRD. 首先假设咱们已经用BUSY ...

  7. pe制作linux硬盘的镜像文件_制作winPE、Linux、maxdos三合一U盘启动盘

    http://kpjack.blog.51cto.com/627289/387137 目的:实现制作windows xp PE.MAXDOS和Linux三系统引导的U盘.原因是这样的.有时分区表坏了, ...

  8. linux dd目录生成iso文件,linux/OSX中“DD”命令制作ISO镜像操作系统安装U盘

    linux或者OS X系统中,使用"dd"命令可以直接在终端命令行模式下,制作ISO镜像的系统安装盘. 一.linux系统以centOS7为例. sudo dd if=镜像路径 o ...

  9. linux 文件 复制 工具栏,Linux(Ubuntu)光盘镜像文件制作及使用攻略

    一.linux 下命令行制作光盘镜像文件 1. 使用cp命令 cp 命令用来复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该 ...

  10. linux下通过bin文件来制作img镜像文件

    通过DE1的学习,在生成preloader的过程中,我们生成了如下的bin文件 在启动SD卡的时候,需要uboot.image文件,因此将该bin文件转换成image文件,这里采用linux来转换.首 ...

最新文章

  1. WindowsServer2012史记7-茴香豆的五种写法和四种”显示计算机”的方法
  2. 多进程PHP脚本实现海量数据转移总结
  3. Xilinx DMA kernel 驱动详解 (一)
  4. 每日一皮:当你要下班的时候,突然测试叫住了你...
  5. 【Arduino】库分析及如何编写自己的Arduino库
  6. php 微信定位,微信企业号(服务号)坐标定位发生偏移解决方案记录( 附PHP代码)...
  7. rJava安装及Java 开发R
  8. SAP Spartacus Translation (翻译) 相关话题
  9. mac、Linux SSH 阿里云 vultr免密登录服务器
  10. requests库学习
  11. 电脑处理器排行榜2021版
  12. poj 3261 Milk Patterns
  13. 行尸走肉第八季/全集The Walking Dead迅雷下载
  14. Linux+ps进程解释,linux ps查看进程命令详解
  15. 数据库sql语句关键词大全(适合老人),基本你能知道这几个关键词,基本就知道该如何写了(超简略)
  16. 微信网页授权,以及如何在本地调试
  17. Python机器视觉--OpenCV进阶(核心)-边缘检测之SIFT关键点检测
  18. 无涯教程:Node.js - Streams介绍
  19. office服务器草稿位置,精确定位图片在Word文档中的位置的操作方法
  20. nacos配置中心[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has been reache

热门文章

  1. C语言常用开发环境IDE
  2. 改变CSS世界纵横规则的writing-mode属性
  3. 海思Hi3519A SVP从入门到精通(一 概述)
  4. [Windows] 【黑科技】在线视频一键下载器:无尽一键视频下载v0.2主流视频网站想下就下...
  5. 《操作系统实验》C++实现时间片轮转调度算法
  6. 图像数字水印技术研究及matlab实现,基于DCT的数字水印技术研究及matlab实现.doc...
  7. NOPI修改xlsx文件内容,无法正常打开,提示文件格式或文件扩展名无效
  8. 分享9个ps、pr免费教程网站
  9. 如何批量将 Word 文档转为 PDF 格式
  10. 条码打印工具-Bartender的使用