Încerc să urmăresc scenariul 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 dar primind o eroare. Pentru a diagnostica înțelegerea mea despre devicemapper, am încercat să construiesc o trecere simplă, dar nu funcționează.
BASEIMAGE=hello-rootfs.ext4
LOOP=$(sudo losetup --find --show --read-only $BASEIMAGE)
$ # montarea dispozitivului buclă funcționează corect
$ mkdir -p mnt
$ sudo mount „$LOOP” mnt
$ # afișează „bara”, așa cum era de așteptat pentru acest sistem de fișiere
$ sudo ls mnt/root
> bar
$ sudo umount mnt
$ # încercați să creați o trecere prin devicemapper
$ printf "0 `sudo blockdev --getsz $LOOP` linear $LOOP 0" | sudo dmsetup create mybase
$ sudo mount /dev/mapper/mybase mnt
> mount: /home/od/vm1/mnt: nu pot citi superblock pe /dev/mapper/mybase.
după cum puteți vedea, dispozitivul loopback se montează în mod normal, dar când trece prin devicemapper, dintr-o dată superblocul nu poate fi citit.
De ce este asta? Configurarea devicemapper-ului ar trebui să mapeze 0 -> sizeof(loop device) la 0 -> sizeof(loop device) pe dispozitivul buclă. Se pare că ar trebui să fie o trecere.
Devicemapper face altceva între ele?