制作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
相关推荐
福尔摩斯张21 分钟前
Linux信号捕捉特性详解:从基础到高级实践(超详细)
linux·运维·服务器·c语言·前端·驱动开发·microsoft
looking_for__1 小时前
【Linux】进程控制
linux
Xの哲學1 小时前
Linux电源管理深度剖析
linux·服务器·算法·架构·边缘计算
破刺不会编程1 小时前
socket编程TCP
linux·运维·服务器·开发语言·网络·网络协议·tcp/ip
CILMY231 小时前
【Linux】进度条实践教程:使用Makefile构建项目
linux·进度条·make和makefile
沉在嵌入式的鱼2 小时前
linux串口对0X0D、0X0A等特殊字符的处理
linux·stm32·单片机·特殊字符·串口配置
Better Bench2 小时前
Ubuntu aarch64\arm64系统安装vscode
linux·vscode·ubuntu
暴风游侠3 小时前
linux知识点-服务相关
linux·服务器·笔记
阿海5743 小时前
卸载nginx的shell脚本
linux·nginx
JANG10243 小时前
【Linux】常用指令
linux·服务器·javascript