Re: Files with non-ASCII names inaccessible after xfs_repair

Eric Sandeen
2014-01-15T15:54:04Z

On 1/15/14, 12:37 AM, Dave Chinner wrote:
> On Tue, Jan 14, 2014 at 09:30:57PM -0800, Zachary Kotlarek wrote:
>>
>> On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@fromorbit.com> wrote:
>>
>>> It's called *ASCII* Case Insensitivity for a reason: it doesn't
>>> support anything other than ASCII. So your usage is not actually
>>> supported at all, hence it's no surprise that it has caused
>>> breakage.
>>
>> Okay. Thanks for the explanation.
>>
>> FWIW, I read “ASCII-only case-insensitive” to mean “only case-insensitive for ASCII” as in ñ and Ñ would not match each other. If it actually means “anything other than ASCII is subject to complete breakage” a more nuanced explanation in the man page might be desirable.
>
> Sure. Can you write a patch to add explanation that explain the
> problem you've had?
>
>> I don’t suppose there’s any way to disable that setting short of creating a new file system?
>
> Not officially. Changing it means you have to change every single
> hash for every directory entry. I *think* that you could probably do
> it with a bit of xfs_db magic and and xfs_repair pass.
>
> First, A warning, some advice and a disclaimer: back up anything you
> don't want to lose, because if this screws up it'll trash the
> directory structure and you may *LOSE* *ALL* *YOUR* *DATA*. This is
> dangerous, not recommended and I take no responsibility for what
> happens if you try it and it fails.
>
> After taking a backup, use xfs_metadump to set up for a
> non-destructive trial run. take a copy of the filesystem metadata
> using xfs_metadump:
>
> # xfs_metadump <dev> scratch.metadump

NB: You'll want to add the "-o" option to not obfuscate filenames, or
you'll probably have no idea if Dave's later steps are working or not.

(I haven't read the whole thread, but is there no way for ascii-ci mode
to reject non-ascii names in the first place? This seems like quite
the pitfall.)

-Eric