On Sunday, December 27, 2020, Pali Rohár <p...@kernel.org> wrote: > On Friday 17 January 2020 12:44:51 Andy Shevchenko wrote: > > If someone wants to use shared (by installed OS) eMMC partition to > > the Windows to boot from, it's not possible due to U-Boot limitations. > > > > Describe this case and possible workaround. > > > > Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com> > > --- > > doc/README.distro | 20 ++++++++++++++++++++ > > 1 file changed, 20 insertions(+) > > > > diff --git a/doc/README.distro b/doc/README.distro > > index ab6e6f4e74..807a82c910 100644 > > --- a/doc/README.distro > > +++ b/doc/README.distro > > @@ -405,3 +405,23 @@ of the boot environment and are not guaranteed to > exist or work in the same > > way in future u-boot versions. In particular the <device type>_boot > > variables (e.g. mmc_boot, usb_boot) are a strictly internal > implementation > > detail and must not be used as a public interface. > > + > > +Using a eMMC partition that has been formatted as a disk by Windows 10 > > +====================================================================== > > + > > +Let's assume we have an (embedded) board with U-Boot and Linux OS > > +installed on eMMC. Linux OS shares one of the eMMC partitions as > > +a disk via USB Mass Storage protocol. > > + > > +It may be useful to utilize that disk to copy bootable files from > > +Windows machine to the board in case someone doesn't want to erase > > +stock installation on it. > > + > > +Unfortunately, Windows 10 doesn't provide knobs and always formats > > +that disk as a whole, meaning that it creates a partition table on it > > +with requested (FAT) partition. As a result U-Boot may not see any > > +files on it due to nesting partition tables. > > + > > +The workaround may be in formatting the partition under Linux OS, > > +setting up a network connection between Linux OS and Windows 10 and > > +use it to copy files to the partition. > > There is a better way how to do it. You can format partition to FAT with > fake MBR table which reference to itself. Windows can correctly > recognize such disk because it has MBR table and do not care that > partition in MBR table starts at same offset as MBR table itself. And > FAT filesystem can be put on such partition because first sector (where > is stored MBR) is not used by FAT itself. So non-FAT data can be stored > there. Also Linux does not have any issue to access such partition > because filesystem starts at offset zero (where it should be). > > FAT fs can be formatted with this fake MBR table by "mformat" tool which > should work also on Windows systems. "mformat" supports this feature for > a longer time but I do not remember how to activate it. Passing correct > arguments to "mformat" always took me lot of time. > > Or alternatively it can be formatted by "mkfs.fat" tool with option > --mbr=y but support for this option is not in any released version of > "mkfs.fat" >
While it’s a good idea, it’s not user friendly. The best option is to fix U-Boot to recognize nested fat disks. But yeah, we may describe this in U-Boot documentation at least. -- With Best Regards, Andy Shevchenko