[PATCH v4 32/45] fs: fat: Support reading from a larger block size

Bin Meng bmeng.cn at gmail.com
Mon Jul 31 12:33:47 CEST 2023


Hi Simon,

On Fri, Jul 28, 2023 at 7:56 AM Simon Glass <sjg at chromium.org> wrote:
>
> Hi Bin,
>
> On Wed, 19 Jul 2023 at 01:58, Bin Meng <bmeng.cn at gmail.com> wrote:
> >
> > Hi Simon,
> >
> > On Wed, Jul 19, 2023 at 9:11 AM Simon Glass <sjg at chromium.org> wrote:
> > >
> > > Hi Bin,
> > >
> > > On Sun, 16 Jul 2023 at 09:19, Bin Meng <bmeng.cn at gmail.com> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Sun, Jul 16, 2023 at 7:42 AM Simon Glass <sjg at chromium.org> wrote:
> > > > >
> > > > > Hi Bin,
> > > > >
> > > > > On Thu, 13 Jul 2023 at 04:49, Bin Meng <bmeng.cn at gmail.com> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Mon, Jun 19, 2023 at 8:02 PM Simon Glass <sjg at chromium.org> wrote:
> > > > > > >
> > > > > > > At present it is not possible to read from some CDROM drives since the
> > > > > > > FAT sector size does not match the media's block size. Add a conversion
> > > > > > > option for this, so that reading is possible.
> > > > > >
> > > > > > I am completely confused. The CDROM uses iso9660 file system. This has
> > > > > > nothing to do with FAT.
> > > > >
> > > > > It actually can use both - this is the -cdrom option in QEMU which can
> > > > > emulate an old-style CDROM, with a FAT filesystem on it!
> > > > >
> > > >
> > > > What QEMU command line is this to enable a CDROM with FAT file system?
> > > >
> > > > If that is the case, what you changed in this commit only works with
> > > > QEMU, not with any real-world devices, I believe?
> > > >
> > > > Could you use iso9660 instead?
> > >
> > > Sure, but the image I am using has an MSDOS partition name, an EFI
> > > partition table, a FAT filesystem and an ISO9660 filesystem! I was
> > > trying to look at the FAT filesystem via the MSDOS partition table.
> > >
> >
> > Is that a released installer iso that I can download somewhere?
> >
> > Which QEMU command line should I use for reproducing the issue?
>
> Here is what I did:
>
> qemu-system-x86_64 -m 2G  -smp 4 -bios /tmp/b/qemu-x86/u-boot.rom
> -cdrom /vid/software/linux/debian/debian-11.5.0-i386-DVD-1.iso -serial
> mon:stdio
> => part set ide 2 iso
>
> Partition Map for IDE device 2  --   Partition Type: ISO
>
> Part   Start     Sect x Size Type
>   1     6912        1   2048 U-Boot
>   2     5912     1000   2048 U-Boot
> => ls ide 2:2
> FAT sector size mismatch (fs=512, dev=2048): translating for read-only
>             efi/
>       160   ubootefi.var
>
> 1 file(s), 1 dir(s)
>
> =>
>
> Without this patch we cannot enable translation and it is not possible
> to read the files.

I cannot reproduce this issue.

I investigated this a little bit, and it looks the iso image you are
using is of the so-called "isohybrid" [1] type. Almost all recent
Linux distros release their CDs using the isohyrbrid format.

So with isohybrid I think you can directly boot this using the "-drive
file=xxx.iso,if=virtio" without this patch, no?

[1] https://wiki.syslinux.org/wiki/index.php?title=Isohybrid

Regards,
Bin


More information about the U-Boot mailing list