Re: Linux & FAT32 label

From: Karel Zak
Date: Mon Nov 20 2017 - 06:13:10 EST


On Sun, Nov 19, 2017 at 01:44:40PM +0100, Pali Rohár wrote:
> On Thursday 09 November 2017 22:21:31 Pali Rohár wrote:
> > So from all tests and discussion I would propose new unification:
> >
> > 1. Read label only from the root directory. If label in root directory
> > is missing then disk would be treated as without label. Label from
> > boot sector would not be read.
> >
> > --> Reason: Windows XP and mlabel ignores what is written in boot
> > sector. Windows XP even do not update boot sector, so label
> > stored in boot sector is incorrect after any change done by
> > Windows XP.
> >
> > This logic is used by all tested MS-DOS and Windows versions,
> > plus also by mtools on Linux.
> >
> > 2. Write label to to both location, boot sector and root directory.
> >
> > --> Reason: MS-DOS 6.22, MS-DOS 7.10, Windows 98 and also mtools on
> > Linux do this. This is also what is written in FAT specification.
> >
> > It also provides backward compatibility with old dosfslabel
> > versions which read label only from boot sector.
> >
> > 2. Process 'NO NAME ' label in root directory as 'NO NAME' name. Not
> > as empty label.
> >
> > --> Reason: 'NO NAME ' is regular entry in root directory and both
> > Windows XP and mlabel handle it in this way.
> >
> > 3. Process 'NO NAME ' label in boot directory as empty label. Not as
> > label with name 'NO NAME'.
> >
> > --> Reason: On Windows XP when formatting empty disk and label is not
> > specified then 'NO NAME ' is stored to boot sector.
> >
> > Also in FAT specification is written that empty label is stored
> > as 'NO NAME '.
> >
> > With this change we would get compatibility with MS-DOS, Windows (both
> > DOS-based and NT-based) and also with Linux mtools, modulo problems DOS
> > code page.
> >
> > There are just two negatives:
> >
> > 1) Labels set by old dosfslabel versions (which stored them only to boot
> > sector) would not be visible. But they are already not visible on
> > MS-DOS or Windows machines, and also via mlabel (from mtools).
> >
> > 2) Behavior of blkid and fatlabel would be changed as both tools have
> > different as proposed above, and based on tests they also differ each
> > from other.
> >
> > Andreas, Karel, what do you think about it?
>
> Also for other people, do any have comments on my proposed solution?

Go ahead and send patch :-) (also with LABEL_FATBOOT=)

Karel

--
Karel Zak <kzak@xxxxxxxxxx>
http://karelzak.blogspot.com