Я пытаюсь следовать сценарию в https://jvns.ca/blog/2021/01/27/day-47--using-device-mapper-to-manage-firecracker-images/?hmsr=joyk.com&utm_source=joyk.com&utm_medium=referral но получаю ошибку. Чтобы диагностировать мое понимание devicemapper, я попытался построить простой переход, но он не работает.
BASEIMAGE=привет-rootfs.ext4
LOOP=$(sudo lossup --find --show --read-only $BASEIMAGE)
$ # монтирование петлевого устройства работает корректно
$ mkdir -p mnt
$ sudo mount "$LOOP" mnt
$ # печатает «bar», как и ожидалось для этой файловой системы
$ sudo ls mnt/root
> бар
$ sudo размонтировать mnt
$ # попробуйте создать проход через devicemapper
$ printf "0 `sudo blockdev --getsz $LOOP` linear $LOOP 0" | sudo dmsetup создать мою базу
$ sudo mount /dev/mapper/mybase mnt
> mount: /home/od/vm1/mnt: невозможно прочитать суперблок на /dev/mapper/mybase.
как видите, петлевое устройство монтируется нормально, но когда оно проходит через devicemapper, вдруг суперблок не читается.
Почему это? Настройка devicemapper должна сопоставлять 0 -> sizeof (устройство цикла) с 0 -> sizeof (устройство цикла) на устройстве цикла. Похоже, это должен быть проходной.
Делает ли devicemapper что-то еще между ними?