vasi / squashfuse

FUSE filesystem to mount squashfs archives
Other
288 stars 66 forks source link

Error when using squashfuse to mount lzo compressed squashfs image inside docker container running centos7 #52

Closed manjeetsinghynr closed 3 years ago

manjeetsinghynr commented 3 years ago

I am facing following error when running command: squashfuse manjeetsinghynr-hello2_2.15_amd64.snap /mnt/r Squashfs image uses lzo compression, this version supports only xz, zlib, lz4, zstd.

When I run command to mount an xz compressed squashfs image then command run successfully. On a docker container running ubuntu-20.04 same command run without no error.

manjeetsinghynr commented 3 years ago

I am using same version of squashfuse on both docker containers

chipturner commented 3 years ago

You need to rebuild it with lzo support. Compression algorithms are determined at compile time, so you likely need the lzo development libraries etc installed.

manjeetsinghynr commented 3 years ago

But I have compiled the squasfuse using same configuration for both docker containers

On Mon, 29 Mar 2021, 11:14 pm Chip Turner, @.***> wrote:

Closed #52 https://github.com/vasi/squashfuse/issues/52.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vasi/squashfuse/issues/52#event-4522944016, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABS4WLOGTINFRZ2Y3VL272TTGC4ADANCNFSM4Z77WPEA .

chipturner commented 3 years ago

Not sure what to tell you. When you run ./configure it should show the algorithms:

Compression support ....... : ZLIB LZO LZ4 ZSTD
High-level FUSE driver .... : yes
Low-level FUSE driver ..... : yes
Demo program .............. : yes
Tests ..................... : FUSE demo

You could use ldd perhaps to also see what you're linked against. You should see liblzo2 somewhere:

$ ldd .libs/squashfuse_ll
        linux-vdso.so.1 (0x00007ffc6d53c000)
        libsquashfuse.so.0 => /lib/x86_64-linux-gnu/libsquashfuse.so.0 (0x00007f53086dd000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f53086c0000)
        liblzo2.so.2 => /lib/x86_64-linux-gnu/liblzo2.so.2 (0x00007f530869b000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f5308678000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f530859d000)
        libfuse3.so.3 => /lib/x86_64-linux-gnu/libfuse3.so.3 (0x00007f530855d000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5308539000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5308374000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f530834c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5308346000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5308702000)
manjeetsinghynr commented 3 years ago

Thanks a lot. I will try it.

On Tue, 30 Mar 2021, 11:45 pm Chip Turner, @.***> wrote:

Not sure what to tell you. When you run ./configure it should show the algorithms:

Compression support ....... : ZLIB LZO LZ4 ZSTD High-level FUSE driver .... : yes Low-level FUSE driver ..... : yes Demo program .............. : yes Tests ..................... : FUSE demo

You could use ldd perhaps to also see what you're linked against. You should see liblzo2 somewhere:

$ ldd .libs/squashfuse_ll linux-vdso.so.1 (0x00007ffc6d53c000) libsquashfuse.so.0 => /lib/x86_64-linux-gnu/libsquashfuse.so.0 (0x00007f53086dd000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f53086c0000) liblzo2.so.2 => /lib/x86_64-linux-gnu/liblzo2.so.2 (0x00007f530869b000) liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f5308678000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f530859d000) libfuse3.so.3 => /lib/x86_64-linux-gnu/libfuse3.so.3 (0x00007f530855d000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5308539000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5308374000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f530834c000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5308346000) /lib64/ld-linux-x86-64.so.2 (0x00007f5308702000)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vasi/squashfuse/issues/52#issuecomment-810473153, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABS4WLNB24X7DGVLSFDXUM3TGIILRANCNFSM4Z77WPEA .

manjeetsinghynr commented 3 years ago

I followed ur instructions and rebuild squashfuse as u told to do. Still same error.

First screenshot is output of command: @.***:~/squashfuse-0.1.104$ sudo ./configure --with-lzo=/usr/lib/

[image: Screenshot from 2021-03-31 13-37-51.png]

Second one is for confirmation that liblzo2 is linked.

[image: Screenshot from 2021-03-31 13-38-10.png]

Then I copied the squash binary(/usr/local/bin/squashfuse) just bult into my docker container and tried mounting lzo compressed squashfs image using following command: /root/squashfuse /root/manjeetsinghynr-hello1_2.14_amd64.snap /mnt/r but it returns error: Squashfs image uses lzo compression, this version supports only xz, zlib, lz4, zstd.

[image: Screenshot from 2021-03-31 13-39-29.png]

[image: Screenshot from 2021-03-31 13-39-14.png]

plz help me.

On Wed, 31 Mar 2021 at 10:57, Er. Manjeet Singh @.***> wrote:

Thanks a lot. I will try it.

On Tue, 30 Mar 2021, 11:45 pm Chip Turner, @.***> wrote:

Not sure what to tell you. When you run ./configure it should show the algorithms:

Compression support ....... : ZLIB LZO LZ4 ZSTD High-level FUSE driver .... : yes Low-level FUSE driver ..... : yes Demo program .............. : yes Tests ..................... : FUSE demo

You could use ldd perhaps to also see what you're linked against. You should see liblzo2 somewhere:

$ ldd .libs/squashfuse_ll linux-vdso.so.1 (0x00007ffc6d53c000) libsquashfuse.so.0 => /lib/x86_64-linux-gnu/libsquashfuse.so.0 (0x00007f53086dd000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f53086c0000) liblzo2.so.2 => /lib/x86_64-linux-gnu/liblzo2.so.2 (0x00007f530869b000) liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f5308678000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f530859d000) libfuse3.so.3 => /lib/x86_64-linux-gnu/libfuse3.so.3 (0x00007f530855d000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5308539000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5308374000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f530834c000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5308346000) /lib64/ld-linux-x86-64.so.2 (0x00007f5308702000)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vasi/squashfuse/issues/52#issuecomment-810473153, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABS4WLNB24X7DGVLSFDXUM3TGIILRANCNFSM4Z77WPEA .

-- Manjeet Singh Ph: +919034010992

chipturner commented 3 years ago

Not sure what to tell you. lzo isn't a great algorithm so maybe you can try another (zstd or lz4 are ideal IMO). Verify you can mount it outside the docker container too. I suspect the issue is something in how you set the container up which is beyond us to help you.

manjeetsinghynr commented 3 years ago

Yes it successfully mounts lzo images outside docker

On Wed, 31 Mar 2021, 10:38 pm Chip Turner, @.***> wrote:

Not sure what to tell you. lzo isn't a great algorithm so maybe you can try another (zstd or lz4 are ideal IMO). Verify you can mount it outside the docker container too. I suspect the issue is something in how you set the container up which is beyond us to help you.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vasi/squashfuse/issues/52#issuecomment-811259105, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABS4WLK64TL5KTTEKK6LXV3TGNJJJANCNFSM4Z77WPEA .