3

I've recently installed FreeBSD 12.1 on my Dell Precision M4800 with ZFS as the root file system. The operating system is installed on an mSATA SSD, a 2½″-HDD is installed, too. On startup, the system refuses to boot unless I manually choose to boot from the mSATA SSD. Even then, the FreeBSD bootloader complains “invalid partition table” but still boots if I press enter.

How can I make FreeBSD boot normally?

I understand that I didn't provide much information. I'm fairly new to FreeBSD and I have no idea what information is required to resolve this issue. Please tell me what you need and I shall immediately provide you with the required information.

Additional Information

User Alex asked me to report the output of fdisk -l. FreeBSD's fdisk does not support -l, but here is the output anyway:

# fdisk -l
fdisk: illegal option -- l
usage: fdisk [-BIaipqstu] [-b bootcode] [-1234] [disk]
       fdisk -f configfile [-itv] [disk]

Here is the output of gpart list:

# gpart list
Geom name: ada1
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 1000215182
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada1p1
   Mediasize: 524288 (512K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r0w0e0
   rawuuid: 4ef0a0fe-67b0-11e5-881a-34e6d760b2c5
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   attrib: bootme
   label: gptboot0
   length: 524288
   offset: 20480
   type: freebsd-boot
   index: 1
   end: 1063
   start: 40
2. Name: ada1p2
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 1048576
   Mode: r1w1e1
   rawuuid: 4f077a7a-67b0-11e5-881a-34e6d760b2c5
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: swap0
   length: 34359738368
   offset: 1048576
   type: freebsd-swap
   index: 2
   end: 67110911
   start: 2048
3. Name: ada1p3
   Mediasize: 477749051392 (445G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 1048576
   Mode: r1w1e1
   rawuuid: 4f0caac1-67b0-11e5-881a-34e6d760b2c5
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: zfs0
   length: 477749051392
   offset: 34360786944
   type: freebsd-zfs
   index: 3
   end: 1000214527
   start: 67110912
Consumers:
1. Name: ada1
   Mediasize: 512110190592 (477G)
   Sectorsize: 512
   Mode: r2w2e4

Update

Turns out the stricken part was a configuration issue in the BIOS. After selecting the right boot disk, the computer reaches the “invalid partition table” message without having to manually select a boot device. However, the question about why the FreeBSD pmbr boot code prints this message remains.

  • Run sudo fdisk -l and put what it prints out into the question by editing it – Alex Lowe Dec 13 '15 at 21:08
  • @Alex fdisk on FreeBSD does not know the -l option. – FUZxxl Dec 13 '15 at 21:14
  • How about sudo cfdisk – Alex Lowe Dec 13 '15 at 21:26
  • 1
    @Alex Please understand that FreeBSD is not a Linux distribution. FreeBSD uses a different userland (cfdisk isn't even available for FreeBSD) and a different partitioning system (i.e. BSD slices). Anyway, I've added some information about the partition table of the relevant disk. Strangely, the other disk (ada0) doesn't show up, which might be because it's used as a ZFS pool. – FUZxxl Dec 13 '15 at 21:35
1

Apparently the disk is partioned using the GPT layout, necessary if the system used UEFI to boot. Perhaps FreeBSD first probes for the old-fashioned MS-DOS partitioning layout and fils and prints a message about that, but then continues on to try other layouts and successfully finds the GPT layout and continues to boot.

As far as having to choose the SSD manually, that is probably just a BIOS configuration issue. I suspect the harddisk is connected to the first SATA port and hence becomes the default boot disk. Either fix the BIOS config, or swap the SATA connections so that the SSD is now connected to the first SATA port.

  • I've tried all possible BIOS configurations, right now the boot disk is the only disk in the BIOS boot order and it still doesn't work without manually selecting it at bootup. Swapping ports is hard in a laptop as the two disks have different shapes (mSATA / 2½″). Booting from the other disk is not an option for various reasons. Is there a way to get rid of the “invalid partition table” message? – FUZxxl Dec 14 '15 at 13:39
  • Indeed, having to chose the SSD manually was a configuration issue which I was able to resolve; it turns out that the BIOS has a different opinion about what is disk 1 than me. The other issue remains unresolved. – FUZxxl Nov 16 '18 at 12:12
1

I don't see the second disk. This is maybe because it is really not partitioned properly. The boot loader maybe tries to find what it can boot and fails to read one of the disks.

I use gpart show to see what geom has found. It has a nicer output than gpart list. When GEOM has problems detecting the layout, it will also write errors to the log which you can later read with dmesg.

It is also possible that the MBR was written to the first disk and the boot partition is on the second disk. You can avoid this by disabling the disks you don't want to install to in the BIOS or simply unplug them.

The GPT partition scheme does no harm (usually) because it is compatible with MBR. And as far as I understood you were telling that the error message comes later from the boot loader. So you can rule out a BIOS problem here.

  • There is definitely a BIOS problem in that the system does not boot unless I manually choose the disk I want to boot from (i.e. the disk where the OS is on) on every boot. The BIOS refuses to automatically boot the disk. – FUZxxl Aug 31 '16 at 5:19
  • But I'm going to try the other things you mentioned. – FUZxxl Aug 31 '16 at 5:19
  • Always make sure that all disks have proper partition tables. I have already seen disks that caused BIOS hang during the partition detection phase. It's not good, because you need to physically detach the disk to make the BIOS work again. – Martin Sugioarto Aug 31 '16 at 5:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.