mkfs.erofs fails (failed to build shared xattrs, err 61)
Gao Xiang
hsiangkao at linux.alibaba.com
Tue Mar 12 23:43:20 AEDT 2024
On 2024/3/12 20:01, Gael Donval wrote:
> On Tue, 2024-03-12 at 19:37 +0800, Gao Xiang wrote:
>>
>>
>> On 2024/3/12 19:07, Gael Donval wrote:
>>>> On 2024/3/12 18:44, Gao Xiang wrote:
>>>>> Hi Gael,
>>>>>
>>>>> On 2024/3/12 17:57, Gael Donval wrote:
>>>>>> Dear list,
>>>>>>
>>>>>> $ mkdir foo && touch foo/bar && mkfs.erofs foo.erofs.img
>>>>>> foo
>>>>>> mkfs.erofs 1.7.1
>>>>>> <E> erofs: failed to build shared xattrs: [Error 61] No
>>>>>> data
>>>>>> available
>>>>>> <E> erofs: Could not format the device : [Error 61]
>>>>>> No
>>>>>> data available
>>>>>> That is at a location backed by BTRFS (btrfs-progs v6.7.1) on
>>>>>> kernel 6.8.0.
>>>>>>
>>>>>> If I use a TMPFS-supported folder instead all goes well.
>>>>>>
>>>>>>
>>>>>> Of course (NB "-x-1"),
>>>>>>
>>>>>> $ mkdir foo && touch foo/bar && mkfs.erofs -x-1
>>>>>> foo.erofs.img
>>>>>> foo
>>>>>>
>>>>>> also works but is not how mkfs.erofs is meant to work in the
>>>>>> general case.
>>>>>
>>>>> Thanks for your feedback.
>>>>>
>>>>> Currently I don't have some BTRFS environment, I could set up
>>>>> one
>>>>> later.
>>>>> Yet in parallel could you provide a full message of
>>>>> "strace mkfs.erofs -x-1 foo.erofs.img foo" on BTRFS too?
>>>>
>>>> sorry, I meant "strace mkfs.erofs foo.erofs.img foo"
>>>
>>> Hi,
>>>
>>> Here it is.
>>>
>>
>> The problem here is that BTRFS could extract their internal
>> xattrs ("inode properties") in their own namespace which
>> don't belong to the original file itself like:
>>
>> XATTR_BTRFS_PREFIX "compression" -> btrfs.compression = zstd
>>
>> I think I need to introduce something to formally ignore
>> these xattrs like: `--xattrs-exclude=pattern`:
>> https://urldefense.com/v3/__https://www.gnu.org/software/tar/manual/html_node/Extended-File-Attributes.html__;!!PDiH4ENfjr2_Jw!Dqu_tH2zT_TKEhHNi2CZToYlmYFeZayWE1BQVQjZBZq4egjYS1bAVS7BasQJ9BETJoVINPEB-p06y7izIUmWk-2VnofOQZwLrw$
>> [gnu[.]org]
>
> I think that could work but a mode where EROFS keep the XATTRS it
> recognises and ignore the ones it doesn't would probably prove useful
> in the general case.
>
> I would suggest a --strict-xattrs mode behaving like it does today,
> requiring explicit --xattrs-exclude to whitelist XATTRS.
>
> The default would be a relaxed mode where ignored XATTRS are reported
> on stderr at INFO level. Would that make sense and be alright?
Yes, but that needs a new version (maybe erofs-utils 1.8) though.
Also I'm not sure how tar --xattrs works for "btrfs.compression",
does it also work in a relaxed mode? Could you give more inputs
& tries with "tar --xattrs"?
>
> Is there anything the BTRFS people could do to make their FS easier to
> work with?
Nope, I think it's unrelated to BTRFS but such xattrs are almost
meaningless for EROFS to keep (since they are their own xattrs.)
Thanks,
Gao Xiang
>
> Gaël
>
>>
>> Thanks,
>> Gao Xiang
>>
>>> Thanks for your help,
>>> Gaël
>>>
>>>
>
More information about the Linux-erofs
mailing list