Laszlo Ersek edfebee404 daemon/parted: work around part table type misreporting by "parted"
"parted" incorrectly reports "loop" rather than "msdos" for the partition
table type, when the (fake) partition table comes from the "--mbr" option
of "mkfs.fat" (in dosfstools-4.2+), and the FAT variant in question is
FAT16 or FAT32. (See RHBZ#2026224.) Work this around by
- parsing the partition table ourselves, and
- overriding "loop" with "msdos" when appropriate.

Note that when the FAT variant is FAT12, "parted" fails to parse the fake
MBR partition table completely (see RHBZ#2026220), which we cannot work
around. However, FAT12 should be a rare corner case in libguestfs usage --
"mkfs.fat" auto-chooses FAT12 only below 9MB disk size, and even "-F 12"
can only be forced up to and including 255MB disk size.

Add the helper function "has_bogus_mbr" to the Utils module; we'll use it
elsewhere too.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1931821
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
Message-Id: <20211125094954.9713-5-lersek@redhat.com>
[lersek@redhat.com: drop "fun" keyword, and use partial application, in
 the definition of "sec0at" [Rich]]
2021-11-26 10:17:05 +01:00
2020-03-06 19:32:32 +00:00
2021-11-12 14:02:04 +00:00
2020-03-06 19:32:32 +00:00
2021-11-09 10:21:30 +00:00
2021-04-08 11:36:40 +01:00
2021-04-08 11:36:40 +01:00
2021-04-08 11:36:40 +01:00
2021-04-09 14:27:11 +01:00
2020-03-06 19:32:32 +00:00
2020-03-06 19:32:32 +00:00
2021-11-09 10:21:30 +00:00
2021-09-23 14:52:46 +01:00
2021-09-23 14:52:46 +01:00
2021-04-08 11:36:40 +01:00
2018-02-22 15:06:13 +00:00
2021-04-08 11:36:40 +01:00
2020-01-14 16:21:22 +01:00
2021-09-23 14:52:46 +01:00
2019-11-13 12:49:55 +00:00
2021-09-23 14:52:46 +01:00
2021-03-11 13:58:41 +00:00
2020-03-06 19:32:32 +00:00
2021-09-23 14:52:46 +01:00
2021-04-08 12:55:19 +01:00

Libguestfs is tools and a library for accessing and modifying guest
disk images.  For more information see the home page:

  http://libguestfs.org/

For discussion, development, patches, etc. please use the mailing
list:

  http://www.redhat.com/mailman/listinfo/libguestfs

To find out how to build libguestfs from source, read:

  docs/guestfs-building.pod
  http://libguestfs.org/guestfs-building.1.html
  man docs/guestfs-building.1

Copyright (C) 2009-2020 Red Hat Inc.

The library is distributed under the LGPLv2+.  The programs are
distributed under the GPLv2+.  Please see the files COPYING and
COPYING.LIB for full license information.  The examples are under a
very liberal license.
Languages
C 42.7%
OCaml 35.5%
Shell 7.1%
Makefile 4%
Perl 2.6%
Other 8%