制作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
相关推荐
xbzb9 分钟前
Linux SELinux 安全加固与标签排错手册
linux·运维·安全
江屿风38 分钟前
【Linux系统】【从【收尾】缓冲区到【新开】磁盘块:一节课打通文件系统底层原理】流食般投喂
linux·运维·服务器·人工智能·笔记
Pointer Pursuit41 分钟前
编辑器Vim
linux·编辑器·vim
_upupup1 小时前
Linux中的权限解析
linux·服务器
路漫漫其修远兮sjw1 小时前
Linux 运维知识点笔记(中级)
linux·运维·笔记
石一峰6991 小时前
Linux INPUT 与 I2C 子系统关联
linux·运维·计算机外设
宵时待雨1 小时前
linux笔记归纳24:多路转接select
linux·服务器·笔记·高并发
RISCV_Explorer1 小时前
技术指南:从总线协议到软件可见行为——RISC-V 多核缓存一致性的 Linux 实践
linux·缓存·risc-v
ShineWinsu2 小时前
对于Redis:Redis特性以及应用场景的解析
linux·c++·redis·缓存·高并发·分布式系统·key-value
程序员-Benothing2 小时前
Linux系统启动流程详解:BIOS/UEFI、GRUB、initramfs、systemd
linux·运维·服务器