Hi Samuel,

Quoting Samuel Thibault (2024-08-24 20:02:16)
> Samuel Thibault, le sam. 24 août 2024 19:25:54 +0200, a ecrit:
> > Johannes Schauer Marin Rodrigues, le sam. 24 août 2024 18:29:52 +0200, a 
> > ecrit:
> > > Quoting Samuel Thibault (2024-07-19 01:35:45)
> > > > Putting a more eye-catching title :)
> > > 
> > > Thank you, Samuel!
> > > 
> > > I am still unable to see extended attributes in the translators when 
> > > checking
> > > this call on Linux:
> > > 
> > > sudo getfattr --dump --match=- /mnt/hurd/*
> > > 
> > > Do others observe the same?
> > 
> > Indeed. Apparently the translators don't get updated on upgrade, so
> > you'd have to force it:
> > 
> > /usr/lib/hurd/setup-translators -k
> 
> As discussed on irc: one needs to reboot with an upgraded hurd package
> before using setup-translators to update the entries.
> 
> And on Linux, one needs to use the ext4fs module, not ext2fs (which doesn't
> know about gnu.translators).

thank you, I tried everything from scratch and implemented both your
suggestions. To be precise I did the following:

 - downloaded the following:
   
https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/debian-hurd-20230608.img
   https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/gnumach.gz
   https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/exec.static
   https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/ext2fs.static
 - booted like this:

   qemu-system-i386 -nographic -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net
   nic,model=e1000 -m 1G -kernel gnumach-1.8-486-up -append 'root=device:hd0s2
   console=com0' --initrd './ext2fs.static
   --multiboot-command-line=${kernel-command-line}
   --host-priv-port=${host-port} --device-master-port=${device-port}
   --exec-server-task=${exec-task} -T typed ${root} $(task-create)
   $(task-resume),./exec.static $(exec-task=task-create)' -drive
   file=debian-hurd-20230608.img,format=raw

 - replaced /etc/apt/sources.list with an entry for
   deb http://ftp.ports.debian.org/debian-ports/ unstable main
 - ran apt upgrade && apt dist-upgrade && apt autoremove
 - shut down the machine
 - mounted the image and copied out /boot/gnumach-1.8-486-up.gz,
   /hurd/exec.static /hurd/ext2fs.static
 - gunzipped /boot/gnumach-1.8-486-up.gz
 - started qemu again like this (now with new kernel):

   qemu-system-i386 -nographic -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net
   nic,model=e1000 -m 1G -kernel gnumach-1.8-486-up -append 'root=device:hd0s2
   console=com0' --initrd './ext2fs.static
   --multiboot-command-line=${kernel-command-line}
   --host-priv-port=${host-port} --device-master-port=${device-port}
   --exec-server-task=${exec-task} -T typed ${root} $(task-create)
   $(task-resume),./exec.static $(exec-task=task-create)' -drive
   file=debian-hurd-20230608.img,format=raw

 - ran /usr/lib/hurd/setup-translators -k
 - shut down the machine
 - mounted the image again (with -t ext4)
 - ran this: sudo getfattr --dump --match=- /mnt/hurd/*

And the last command comes back empty. To make sure, that setup-translators is
not somehow buggy, I created a translator manually inside the vm:

    $ touch hello
    $ settrans hello /hurd/hello
    $ cat hello
    Hello, world!

And then on the outside:

    $ sudo kpartx -av debian-hurd-20230608.img
    $ sudo mount -t ext4 /dev/mapper/loop0p2 /mnt
    $ sudo getfattr --dump --match=- /mnt/root/hello
    getfattr: Removing leading '/' from absolute path names
    # file: mnt/root/hello
    gnu.translator="/hurd/hello"

So... maybe this actually works but the contents of /hurd are not updated
sufficiently by running "/usr/lib/hurd/setup-translators -k"?

Btw, mounting without '-t ext4' also allows seeing the xattr with getfattr on
my bookworm system. In mount, it shows as

    /dev/mapper/loop0p2 on /mnt type ext2 (rw,relatime)

So maybe forcing ext4 is not needed in practice?

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to