制作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
相关推荐
忘了ʷºᵇₐ3 小时前
在IDEA 2024.1版本中如何打开Remote Host及连接linux
linux·运维·服务器
零K沁雪4 小时前
Linux 内核中与网络地址相关的函数
linux·内核
steins_甲乙6 小时前
# 从 0 做一个小型内存泄漏检测器:开篇与架构设计
linux
蒸蒸yyyyzwd6 小时前
后端学习笔记 day4
linux·笔记·学习
upp7 小时前
[最新版本centos 10系统制作与安装]
linux·运维·centos
ShineWinsu7 小时前
对于Linux:进程优先级、进程切换以及进程调度的解析
linux·面试·笔试·进程·进程切换·进程调度·进程优先级
Kira Skyler9 小时前
kprobe函数入口时的汇编跳板执行流程与栈帧机制
linux·汇编
桌面运维家9 小时前
VHD/VHDX 数据守护:BAT位图校验与修复
linux·服务器·网络
pupudawang9 小时前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
零K沁雪9 小时前
Linux 内核遍历宏介绍
linux·内核