[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#823881: dosfstools: mmd fails right after mkfs.msdos (sectors/tracks mismatch)



Package: dosfstools
Version: 4.0-1
Severity: serious
Tags: d-i
Justification: d-i build failure/regression, without blatant misusage from d-i's side

Control: affects -1 src:debian-installer

(Please keep debian-boot@lists.debian.org and debian-efi@lists.debian.org
in the loop when replying.)

Hi,

The version bump from 3.0.28-2 to 4.0-1 led to a new FTBFS on all EFI
archs for debian-installer (amd64, arm64, i386), where the following
operations are happening:
| + mkfs.msdos -C ./tmp/netboot-gtk/grub_efi/efi.img 416
| mkfs.fat 4.0 (2016-05-06)
| + mmd -i ./tmp/netboot-gtk/grub_efi/efi.img ::efi
| Total number of sectors (832) not a multiple of sectors per track (63)!
| Add mtools_skip_check=1 to your .mtoolsrc file to skip this test
| + cleanup
| + [ -z efi-image.7vXUPq ]
| + rm -f efi-image.7vXUPq
| + [ -z efi-image.u4utfz ]
| + rm -rf efi-image.u4utfz
| config/x86.cfg:38: recipe for target 'x86_grub_efi' failed

This can be reproduced with:
| make -C build build_netboot-gtk USE_UDEBS_FROM=sid

after having added "set -x" at the top of build/util/efi-image in
src:debian-installer.

After a quick look, it seems the d-i build system is only passing a
number of blocks to mkfs.{msdos,fat}, without specifying strange
parameters for sectors or trackers, so it looks to me that mkfs's
or mmd's behaviour is buggy.

Incidently, 832 isn't a multiple of 63, but is a multiple of 64. Could
there be some off-by-one somewhere?

Switching on verbose mode (adding -v):
| + mkfs.msdos -v -C ./tmp/netboot-gtk/grub_efi/efi.img 416
| mkfs.fat 4.0 (2016-05-06)
| ./tmp/netboot-gtk/grub_efi/efi.img has 255 heads and 63 sectors per track,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| hidden sectors 0x0000;
| logical sector size is 512,
| using 0xf8 media descriptor, with 832 sectors;
| drive number 0x80;
| filesystem has 2 12-bit FATs and 4 sectors per cluster.
| FAT size is 1 sector, and provides 199 clusters.
| There is 1 reserved sector.
| Root directory contains 512 slots and uses 32 sectors.
| Volume ID is 0da76041, no volume label.
| + mmd -i ./tmp/netboot-gtk/grub_efi/efi.img ::efi
| Total number of sectors (832) not a multiple of sectors per track (63)!
| Add mtools_skip_check=1 to your .mtoolsrc file to skip this test
| + cleanup
| + [ -z efi-image.AQOJ9R ]
| + rm -f efi-image.AQOJ9R
| + [ -z efi-image.dShhUx ]
| + rm -rf efi-image.dShhUx
| config/x86.cfg:38: recipe for target 'x86_grub_efi' failed

Comparing with the previous version (downgrading to 3.0.28-2):
| + mkfs.msdos -v -C ./tmp/netboot-gtk/grub_efi/efi.img 416
| mkfs.fat 3.0.28 (2015-05-16)
| ./tmp/netboot-gtk/grub_efi/efi.img has 64 heads and 32 sectors per track,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| hidden sectors 0x0000;
| logical sector size is 512,
| using 0xf8 media descriptor, with 832 sectors;
| drive number 0x80;
| filesystem has 2 12-bit FATs and 4 sectors per cluster.
| FAT size is 1 sector, and provides 199 clusters.
| There is 1 reserved sector.
| Root directory contains 512 slots and uses 32 sectors.
| Volume ID is 1666ec2f, no volume label.
| + mmd -i ./tmp/netboot-gtk/grub_efi/efi.img ::efi
| + mmd -i ./tmp/netboot-gtk/grub_efi/efi.img ::efi/boot
| + mcopy -i ./tmp/netboot-gtk/grub_efi/efi.img efi-image.qksN5Q/bootx64.efi ::efi/boot/bootx64.efi
| + grub-cpmodules ./tmp/netboot-gtk/grub_efi x86_64-efi
| + exit 0

It would be great if this could be investigated shortly, as I'd like to
prepare a new d-i release soon:
  https://lists.debian.org/debian-boot/2016/05/msg00055.html


KiBi.


Reply to: