我正在尝试在 Docker 容器内创建磁盘映像。我运行以下命令:
使用 debian 运行容器
$ sudo docker run --privileged --rm -it debian
更新 apt 并安装软件包
# apt update
# apt install fdisk kpartx
创建充满零的磁盘映像
# dd if=/dev/zero of=disk.img bs=100M count=10 status=progress
创建 GPT 和两个分区(ESP 和 linux)
# echo -e ',200M,U\n,+\n' | sfdisk -X gpt disk.img
在 kpartx 的帮助下在设备映射器中创建分区
# kpartx -av disk.img
add map loop0p1 (254:0): 0 409600 linear 7:0 2048
add map loop0p2 (254:1): 0 1634304 linear 7:0 411648
从设备映射器中删除分区
# kpartx -dv disk.img
但kpartx -dv disk.img
不要从设备设备映射器中删除分区,但是
# kpartx -dv /dev/loop0
del devmap : loop0p1
del devmap : loop0p2
做。
我做错了什么?
如果我在 Linux(而不是在 Docker 容器中)中执行同样的事情,则kpartx -dv disk.img
效果会按预期运行。
我观察到 Linux 和 macOS docker 引擎中存在不正确的行为。