FreeBSD Installer not recognizing existing partition tables

Joel Maxuel j.maxuel at gmail.com
Fri Jan 18 20:55:40 UTC 2019


On Fri, 2019-01-18 at 12:11 +0100, Polytropon wrote:
> On Fri, 18 Jan 2019 01:55:11 -0400, Joel Maxuel wrote:
> > Looking to set up FreeBSD as part of a dual-boot with Debian
> > Stretch
> > (already installed).  The drives I will be using includes an SSD
> > (ada0/sda) for rootfs and an HDD (ada1/sdb) for swap and /home.
> 
> Such kinds of setting are possible.
> 
> 
> 
> > When I ran the FreeBSD installer, everything went fine until I got
> > to
> > partitioning - I chose the semi-manual option, and only ada0 & ada1
> > appeared - no existing partitions below.
> > 
> > dmesg revealed:
> > 
> > ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
> > ...
> > ada0: Command Queueing enabled
> > ada0: 262321MB (537234768 512 byte sectors)
> > ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
> > ...
> > ada1: Command Queueing enabled
> > ada1: 953869MB (1953525168 512 byte sectors)
> > ada1: quirks=0x1<4k>
> > GEOM_PART: integrity check failed (ada0, BSD)
> > GEOM_PART: integrity check failed (ada1, BSD)
> 
> That is correct so far - two physical devices.
> 

So the GEOM_PART fail (with the wrong table type) is normal?
Double checking that because trouble threads I have looked at have come
up with this error before, but not the mismatched partition table
identity (from what I have seen).

> 
> > The parted details (I had pre-made the partitions for FreeBSD):
> 
> You should not pre-make anything for FreeBSD, just supply
> unused disk space. The installer will create the required
> partitions on its own. Experience tells us to leave the
> installation tasks to the installer of the OS we want to
> install. ;-)
> 

FWIW, initially I didn't, but yeah, that "free space" was inside
extended partition(s) - good point you made nonetheless.

> 
> > ~> sudo parted /dev/sda unit s print
> > Model: ATA Crucial_CT275MX3 (scsi)
> > Disk /dev/sda: 537234768s
> > Sector size (logical/physical): 512B/512B
> > Partition Table: msdos
> > Disk Flags: 
> > 
> > Number  Start       End         Size        Type      File
> > system  Flags
> >  1      2048s       117229567s  117227520s  primary   ext4         
> > boot
> >  2      117229568s  537233407s  420003840s  extended
> >  5      117231616s  419311615s  302080000s  logical   ext4
> >  6      419313664s  419315711s  2048s       logical   freebsd-ufs
> >  7      419317760s  537233407s  117915648s  logical
> 
> And this reveals your problem:
> 
> Within the MBR partitioning scheme (as opposed to GPT which
> doesn't require any further discussion here), FreeBSD needs
> to be installed into a slice. A slice is a DOS primary (!)
> partition which the installer cannot allocate here - disk
> space insufficient.
> 
> FreeBSD cannot be installed into a logical drive inside a
> DOS extended partition, which is what you're trying to do.
> 
> If you free up disk space, the installer - in "MBR mode" -
> will create a slice (another DOS primary partition), and
> inside this slice, will create partitions / labels.
> 
> Example:
> 
> /dev/ada0s1 -> ext4
> (extended and logicals omitted)
> /dev/ada0s2 -> FreeBSD slice
> 	/dev/ada0s2a -> FreeBSD boot partition (or "everything")
> 	/dev/ada0s2b -> FreeBSD swap partition
> 
> Depending on how you want to set the system up, you will
> at least need ada0s2 with ada0s2a; everything else is optional
> or can be located elsewhere.
> 

<SNIP>

> 
> Same problem here: No free disk space, and only a logical
> drive within a DOS extended partition which FreeBSD cannot
> natively use, at least not for booting.
> 
> It _might_ be possible to initialize this one with newfs
> manually, and use it as /home (with "newfs" command and
> maybe "tunefs" if needed). The corresponding /dev/ada1s<?>
> will be a mystery for now. :-)

I suppose here is why I am replying as such - /dev (in the FreeBSD
installer environment) is not splitting out ada0 and ada1 into their
partition nodes.  As mentioned before, `gpart list` (my mistake for
quoting `gpart show` earlier) returns nothing, and with the added `-a`
switch, the only returned data is related to the optical drive.

> Sorry, I have never been using heavy DOS partitioning in
> combination with FreeBSD, and even for dual-booting systems,
> I've only been using primary partitions. I never needed
> more than 4 "drive letters"... :-)
> 

Understood.

> Sidenote:
> 
> For /home, if I understood you correctly, you don't even
> need to add a label to the slice. Let's say, /dev/ada1s2
> will be the DOS primary partition on the 2nd disk where
> you want to place /home. You now _could_ add a 'd' label
> ('a' reserved for boot partition, 'b' for swap, and 'c'
> for "the whole thing, whatever it is"), and then run
> "newfs /dev/ada1s2d" on it. That's not needed, you can
> "newfs /dev/ada1s2" as well, and then use /dev/ada1s2
> for the /etc/fstab entry. If you wanted to use the entire
> disk as "FreeBSD data" (i. e., not to boot from), you
> could use "newfs /dev/ada1" to initialize it. This approach,
> not using any partitioning at all, is called "dedicated",
> because only FreeBSD can use it. The omission of partitioning
> information will make it unusable for other operating systems,
> even if they have UFS file system support.
> 
> However, if you use the typical FreeBSD partitioning approach,
> you should get things up and running without further problems.
> 
> 
> 
> > `gpart show` returns nothing, and because the GEOM error
> > automatically
> > assumes the partition tables are BSD when they are really MBR
> > (msdos),
> > I don't believe the thread I found will be of assistance:
> > 
> > https://www.mail-archive.com/freebsd-geom@freebsd.org/msg01424.html
> > 
> > ...nor would I want to really risk blowing everything away (even
> > with
> > backups) for the possibility that my partition tables have gone
> > weird
> > over the years.
> 
> Try to remove the logical drives you prepared. See if the
> installer picks up the free disk space. You have sufficient
> DOS primary partitions left (you only need 1), that should
> be okay. The installer seems to be a little confused here,
> don't make it harder for it than it needs to be. :-)
> 

To add some detail as to what the partition editor (continues to) read
back (in case this jars an idea for someone):

ada0	256GB
ada1	932GB

IIRC, if the partitioner considered the drives as initialized, a third
column with "MBR" would be present.  Instead, it seems that the
partitioner considered the drives as uninitialized or corrupt?

> 
> > AHCI is turned on in my BIOS, but I am wondering if due to my other
> > BIOS settings (noted above; IME disabled as well as it can be) if
> > that
> > is making FreeBSD expect something different from the controller
> > than
> > what is really happening.  I feel it is going to be something silly
> > such as a slightly different process for non-UEFI.
> 
> I don't think so. The drives seem to be detected correctly
> without any errors. It's just the confusing partitioning.
> With unused disk space, things should work better.
> 

I did grep dmesg against GEOM as well, and there are two extra
GEOM_PART errors for the drive UUID's this time, instead of just the
/dev nodes.

I suppose I could check for different kernel modes - there may be an
option at the cd-loader that covers this.  

Thanks for the tips thus far.


More information about the freebsd-questions mailing list