Starting in FreeBSD 13.0-RELEASE, when fresh installing on AMD64 EFI systems, an entry is added to /etc/fstab for /dev/ada0p1 pointing to /boot/efi for example. If another drive is added to the system, or a drive is removed, or a controller is changed which would alter the "ada0p1" reference, the msdosfs partition will fail to mount, forcing the boot process into single user mode. I attempted to add the "failok" option to this line in fstab, but that made no difference. Error text: ------- /dev/ada0p1: UNEXPECTED INCONSISTENCY; RUN fsck_msdosfs MANUALLY THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY: msdosfs: /dev/ada0p1 (/boot/efi) Automatic file system check failed: help! ERROR: ABORTING BOOT (sending SIGTERM to parent)! 2021-05-27T03:28:56.765915+00:00 - init 1 - - /bin/sh on /etc/rc terminated abnormally, going to single user mode Enter full pathname of shell or RETURN for /bin/sh: Quick reproduction: ------- Create a new VM using VMware and install FreeBSD 13.0-RELEASE on it like normal. Power down the VM. Change the storage type for the virtual disk (eg: from SAS to IDE) Boot up the VM. *!BOOM!*
I guess that is one of the reasons why virtual machine disk images use GPT labels: https://github.com/freebsd/freebsd-src/blob/1ca8842f3ad9725863c9affc044d1974a51818a9/release/tools/vmimage.subr#L239-L240