制作img文件

安装软件包

bash 复制代码
sudo apt-get install dosfstools dump parted kpartx

创建空白img文件

bash 复制代码
sudo dd if=/dev/zero of=raspberrypi.img bs=1M count=4000

给img文件分区

bash 复制代码
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 2048s 526335s
sudo parted raspberrypi.img --script -- mkpart primary ext4 526336s -1

检测分区

bash 复制代码
$ fdisk raspberrypi.img 

欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助): p
Disk raspberrypi.img:4 GiB,4294967296 字节,8388608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3b51dc09

设备             启动   起点    末尾    扇区  大小 Id 类型
raspberrypi.img1        2048  526335  524288  256M  c W95 FAT32 (LBA)
raspberrypi.img2      526336 8189951 7663616  3.7G 83 Linux

命令(输入 m 获取帮助): q

使用 losetup将磁盘镜像文件虚拟成块设备

bash 复制代码
sudo losetup -f --show raspberrypi.img
/dev/loop22

/dev/loop22为设备文件路径,下面的命令中相应输入/dev/loop22,如果不是 loop22 请做相应调整(以及以后的各个步骤里的loop22都要改变)

挂载虚拟文件系统

bash 复制代码
sudo kpartx -va /dev/loop22

查看分区文件是否存在

bash 复制代码
ls /dev/mapper/loop22p*

格式化

bash 复制代码
sudo mkfs.vfat -n boot /dev/mapper/loop22p1
sudo mkfs.ext4 -L rootfs /dev/mapper/loop22p2

挂载

bash 复制代码
mkdir boot rootfs
sudo mount -t vfat -o uid=topeet,gid=lat,umask=0000 /dev/mapper/loop22p1 ./boot/
sudo mount -t ext4 /dev/mapper/loop22p2 ./rootfs/

卸载删除

bash 复制代码
sudo umount boot rootfs
sudo kpartx -d /dev/loop22
sudo losetup -d /dev/loop22
rmdir boot rootfs
相关推荐
NamoAmitabha1284 小时前
libpng12-0 1.2.54-1ubuntu1.1 (amd64 binary) in ubuntu xenial
linux·ubuntu20.4
Madison-No75 小时前
搭建项目测试环境
linux·运维·服务器·python
吴声子夜歌6 小时前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
xiaoye-duck7 小时前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
zx_741484818 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS8 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿8 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
做运维的阿瑞9 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲10 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz10 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试