linux 制作分区镜像img文件
文章目录
- 创建空白 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
- 输入 m 获取帮助
- 输入n添加新分区
- 输入 p 或者默认表示创建主分区(假设为 BOOT 分区)
- 分区号(1)选择默认
- 起始扇区(第一个扇区)选择默认
- 终止扇区输入
+1G
表示创建 1G 的分区供 BOOT 使用(有 +sectors 扇区 和 +size 大小 两种方式,这里是 + size) - 输入 t 改变分区类型
- 选择分区 1
- 输入 L 查看所有分区类型码表
- 输入 b 表示转换为 fat32
- 输入 n 创建新分区(假设为 rootfs 分区)
- 重复3 4 5 6 到分区成功,可直接默认(4G只分两个区的话)
- 输入 a 标记引导分区
- 输入 1 将分区 1 标记为可引导(如有需要指定引导分区)
- 输入 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) 后生效。
大体步骤:
n 创建新分区,选择分区类型,选择分区号,选择第一个扇区,选择分区大小
输入 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文件相关推荐
- linux制作光盘镜像文件
随着光盘刻录机在linux计算机上的普及,以iso为主的光盘映像文件制作.转换.编辑等成了大家非常关心的东西.iso等格式的文件是一种数据在数据光盘上的组织形式,即光盘上的文件系统格式. 那么,哪些软 ...
- 从0开始使用QEMU模拟ARM开发环境之脚本制作分区镜像(rootfs+zImage+dtb)
文章目录 从0开始使用QEMU模拟ARM开发环境系列一览表 目录结构: 脚本介绍: 分区镜像制作脚本 qemu启动脚本 流程示例 从0开始使用QEMU模拟ARM开发环境系列一览表 文章中 u-boot ...
- Linux磁盘分区逻辑卷文件系统管理
文章目录 两种分区工具 一.fdisk 分区工具 二.格式化 三.挂载使用分区 四.parted 分区工具 五.交换空间 5.1.使用分区做交换空间 5.2.使用文件所占用的硬盘空间,充当交换空间 逻 ...
- linux 制作ramdisk镜像,制作ramdisk文件系统
http://blog.163.com/qiu_zhi2008/blog/static/6014097720108852750530/ http://tech.ccidnet.com/art/302/ ...
- 用linux制作iso镜像文件
刻录光盘安装必须是iso文件 mkisofs:把文件或目录制作成光盘镜像 make ordinary file to xxx.iso file mkisofs:把文件或目录制作成光盘镜像 cmd:mk ...
- linux制作cpio镜像文件,制作CPIO格式的INITRD
LINUX内核自从2.6版以后,就大力推荐CPIO-INITRD. 现在各大LINUX发行版的INITRD都是CPIO格式的. 这次主要说下如何制作CPIO-INITRD. 首先假设咱们已经用BUSY ...
- pe制作linux硬盘的镜像文件_制作winPE、Linux、maxdos三合一U盘启动盘
http://kpjack.blog.51cto.com/627289/387137 目的:实现制作windows xp PE.MAXDOS和Linux三系统引导的U盘.原因是这样的.有时分区表坏了, ...
- linux dd目录生成iso文件,linux/OSX中“DD”命令制作ISO镜像操作系统安装U盘
linux或者OS X系统中,使用"dd"命令可以直接在终端命令行模式下,制作ISO镜像的系统安装盘. 一.linux系统以centOS7为例. sudo dd if=镜像路径 o ...
- linux 文件 复制 工具栏,Linux(Ubuntu)光盘镜像文件制作及使用攻略
一.linux 下命令行制作光盘镜像文件 1. 使用cp命令 cp 命令用来复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该 ...
- linux下通过bin文件来制作img镜像文件
通过DE1的学习,在生成preloader的过程中,我们生成了如下的bin文件 在启动SD卡的时候,需要uboot.image文件,因此将该bin文件转换成image文件,这里采用linux来转换.首 ...
最新文章
- WindowsServer2012史记7-茴香豆的五种写法和四种”显示计算机”的方法
- 多进程PHP脚本实现海量数据转移总结
- Xilinx DMA kernel 驱动详解 (一)
- 每日一皮:当你要下班的时候,突然测试叫住了你...
- 【Arduino】库分析及如何编写自己的Arduino库
- php 微信定位,微信企业号(服务号)坐标定位发生偏移解决方案记录( 附PHP代码)...
- rJava安装及Java 开发R
- SAP Spartacus Translation (翻译) 相关话题
- mac、Linux SSH 阿里云 vultr免密登录服务器
- requests库学习
- 电脑处理器排行榜2021版
- poj 3261 Milk Patterns
- 行尸走肉第八季/全集The Walking Dead迅雷下载
- Linux+ps进程解释,linux ps查看进程命令详解
- 数据库sql语句关键词大全(适合老人),基本你能知道这几个关键词,基本就知道该如何写了(超简略)
- 微信网页授权,以及如何在本地调试
- Python机器视觉--OpenCV进阶(核心)-边缘检测之SIFT关键点检测
- 无涯教程:Node.js - Streams介绍
- office服务器草稿位置,精确定位图片在Word文档中的位置的操作方法
- nacos配置中心[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has been reache
热门文章
- C语言常用开发环境IDE
- 改变CSS世界纵横规则的writing-mode属性
- 海思Hi3519A SVP从入门到精通(一 概述)
- [Windows] 【黑科技】在线视频一键下载器:无尽一键视频下载v0.2主流视频网站想下就下...
- 《操作系统实验》C++实现时间片轮转调度算法
- 图像数字水印技术研究及matlab实现,基于DCT的数字水印技术研究及matlab实现.doc...
- NOPI修改xlsx文件内容,无法正常打开,提示文件格式或文件扩展名无效
- 分享9个ps、pr免费教程网站
- 如何批量将 Word 文档转为 PDF 格式
- 条码打印工具-Bartender的使用