我已经在 2000 make PC 上安装了 FreeBSD-7.4(* 规格如下)
当磁盘连接到主 IDE 插槽时,操作系统可以正常启动,但是当它连接到中学IDE 套接字,它仅启动第一部分,它会显示一个菜单,其中包含“1. Boot FreeBSD [default]”“3. Boot FreeBSD in Safe Mode”等选项。
我选择默认的第一个选项,它会启动一段时间,然后显示
Trying to mount from ufs:/dev/ad0s1a
freebsd manual root filesystem specification:
<fstype>:<device> [options] Mount <device> using filesystem <fstype>
eg. ufs:/dev/da0s1a
? List valid disk boot devices
<empty line> Abort manual input
并进入无用的 mountroot 提示符。打字?
给出
List of GEOM managed disk devices:
ufsid/5c922e4292c8e9fa ufsid/5c922e435b48afb7
ufsid/5c922e4343d7ab4b ufsid/5c922e44e470015a
ufsid/5c922e424bf39462 ad2s1g ad2s1f ad2s1e
ad2s1c ad2s1b ad2s1a ad2s1 ad2
输入mount ufsid/5c922e4292c8e9fa
并尝试使用所有其他设备,返回
Trying to mount root from mount ufsid/5c922e4292c8e9fa
等,即没有提供任何有用的信息。
类似的问题已发布在混合 IDE/SATA 磁盘和启动问题但这没有帮助;只是很相似。
如果我从 IDE2 插座上拔下 40 针带状 IDE 电缆并将其插入 IDE1 插座,则一切恢复正常。此问题仅限于该磁盘用作辅助主IDE磁盘的情况。
实际上,这个问题首先发生在我尝试从安装了相同 FreeBSD 的主 IDE 磁盘访问第二个 IDE 磁盘时。
当我mount /dev/ad1* /mnt/mydisk
ad1*
执行各种选项时ad1s1
,所有选项都一致返回, ad1s1a
我认为它无法安装第二个 IDE 磁盘,因为辅助主 IDE 连接出现问题。我想这个问题可以通过Bios设置来解决。有很多与主 IDE 磁盘和辅助 IDE 磁盘相关的 Bios 设置,例如“模式:LBA、大、自动”,但我不知道什么作用,我不想尝试随机设置来偶然修复此问题。ad1s1b
mount: /dev/ad1s1: Operation not permitted
如何从辅助主 IDE 启动和/或如何在 FreeBSD 中使用第二个 IDE 磁盘?
- PC 规格:PII 400Mhz、Gigabyte Intel 440BX MoBo、512MB RAM、16MB RAM 显卡、15GB Ouantum Fireball IDE 硬盘、带有 2002 固件的 Award Bios
答案1
引导加载程序不会看到哪个 BIOS 驱动器映射到哪个 IDE 通道和主/从位置,因此它简单地假设硬盘驱动器按主从、主从顺序填充,没有漏洞,并映射 BIOS 驱动器 C、D、E ...到 IDE 驱动器ad0
,, ad1
.ad2
另一方面,IIRC FreeBSD 7 默认内核 (GENERIC) 有一个硬连线 IDE 驱动器映射:
/dev/ad0
是初级大师/dev/ad1
是主要从属/dev/ad2
是二级大师/dev/ad3
是次要奴隶
在您的情况下,未使用主通道,因此 BIOS 将驱动器 C (0x80) 分配给您的 FreeBSD 硬盘驱动器。然后引导加载程序会看到并引导 BIOS 驱动器 C ( /dev/ad0
) 片1
(可能是驱动器上的唯一分区) BSD disklabel 分区a
,将该分区转换为引导设备/dev/ad0s1a
并传递ufs:/dev/ad0s1a
给内核。
另一方面,内核启动序列会扫描 IDE 通道并在辅助主设备上查看您的 FreeBSD 驱动器。根据上面的硬接线方案,内核分配ad2
给驱动器(不是ad0
)。因此,当需要挂载 rootdev 时,它不会看到ad0s1a
从引导加载程序传递下来的信息。
如果要保留您的设置(辅助主服务器上的 FreeBSD),您需要修复您的配置。脚步:
- 将驱动器放置在与首次安装 FreeBSD 时相同的 IDE 通道(主/从)和相同位置(主/从)中。 (从你的描述看来是初级master。)
- 启动系统。
- 启动完成后,以 root 身份登录。
- 运行此命令以教导引导加载程序将
ad2
(辅助主设备)作为引导驱动器传递给内核:echo 'vfs.root.mountfrom=ufs:/dev/ad2s1a' >> /boot/loader.conf
- 关闭系统。
- 将驱动器放回到辅助 IDE 通道上。
从下次引导开始,内核将用作/dev/ad2s1a
根设备,忽略引导加载程序的提示。
/boot/loader.conf
注意:如果您想将驱动器移动到不同的通道/位置,则需要调整启动设备。