FreeBSD 抱怨“分区表无效”——仍然可以启动

FreeBSD 抱怨“分区表无效”——仍然可以启动

我最近在 Dell Precision M4800 上安装了 FreeBSD 12.1,并以 ZFS 作为根文件系统。操作系统安装在mSATA SSD上,还安装了2½英寸HDD。启动时,系统拒绝启动,除非我手动选择从 mSATA SSD 启动。即使这样, FreeBSD 引导加载程序也会抱怨“分区表无效”,但如果我按 Enter 键,它仍然会引导。

如何才能让FreeBSD正常启动?

我知道我没有提供太多信息。我对 FreeBSD 还很陌生,我不知道解决这个问题需要什么信息。请告诉我您需要什么,我将立即为您提供所需的信息。

附加信息

用户 Alex 让我报告fdisk -l. FreeBSDfdisk不支持-l,但无论如何,输出如下:

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

这是输出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

更新

事实证明,受影响的部分是 BIOS 中的配置问题。选择正确的启动磁盘后,计算机会出现“无效分区表”消息,而无需手动选择启动设备。然而,关于为什么 FreeBSDpmbr引导代码打印此消息的问题仍然存在。

答案1

显然,磁盘是使用 GPT 布局进行分区的,如果系统使用 UEFI 启动,这是必需的。也许 FreeBSD 首先探测老式的 MS-DOS 分区布局并打印一条消息,然后继续尝试其他布局并成功找到 GPT 布局并继续引导。

至于必须手动选择 SSD,这可能只是 BIOS 配置问题。我怀疑硬盘连接到第一个 SATA 端口,因此成为默认启动盘。修复 BIOS 配置,或交换 SATA 连接,以便 SSD 现在连接到第一个 SATA 端口。

答案2

我没有看到第二个磁盘。这可能是因为它确实没有正确分区。引导加载程序可能会尝试查找可以引导的内容,但无法读取其中一张磁盘。

我用来gpart show查看 geom 发现了什么。它的输出比gpart list.当 GEOM 在检测布局时出现问题时,它还会将错误写入日志,您稍后可以使用 来读取该日志dmesg

也有可能 MBR 已写入第一个磁盘,而引导分区位于第二个磁盘上。您可以通过在 BIOS 中禁用不想安装的磁盘或直接拔掉它们来避免这种情况。

GPT 分区方案(通常)不会造成任何损害,因为它与 MBR 兼容。据我了解,您所说的错误消息稍后来自引导加载程序。所以这里可以排除BIOS问题。

相关内容