如何更改驱动器号

如何更改驱动器号

我在一台有驱动器的机器上安装了 FreeBSD 8.1,/dev/ad6但已将其移至新系统,现在驱动器也位于新系统/dev/ad4上。新系统可以启动,但我需要手动指定根文件系统已打开ad4s1

我如何更改引导加载程序以自动执行此操作?通过 Google 搜索可以找到disklabel -e可以更改磁盘号的示例,但使用此方法我只得到“未找到类”错误,并且没有磁盘标签更改。

答案1

我遇到了以下情况:

我将 FreeBSD 10.1 USB.img文件安装到 1GB 棒上,并将 FreeBSD 安装到 16GB 棒上。1GB 棒被识别为/dev/da0,16GB 棒被识别为/dev/da1。FreeBSD 安装在 16GB 棒下的 下/dev/da1s2a。然后我移除了 1GB 棒,结果正常情况下无法自动启动 FreeBSD 系统。系统说无法启动到vfs.root.mountfrom="/dev/da1s2a",但建议我手动启动 FreeBSD,因此我不得不将启动片更改为/dev/da0s2a,然后它就成功了。当然,我不想手动操作,所以我找到了这篇文章。

这启发我去搜索变量 的位置vfs.root.mountfrom,所以我重新启动系统,拔出 16GB 的棒子,放回 1GB 的棒子,从它作为 Live CD 启动。此时,我放回 16GB 的棒子,挂载它 ( mount /dev/da1s2a /mnt) 并搜索“vfs.root.mountfrom”。我的发现是:

  1. 请勿更改文件/boot/loader.conf
  2. 请勿更改文件/boot/defaults/loader.conf

因为做这些事会搞乱加载器!

解决方案是调整(16GB 记忆棒)/etc/fstab上的条目,因为加载器在启动期间正在寻找文件系统并自动写入变量的值!!!/mnt/dev/da1s2a/dev/da0s2a/fstabfstabvfs.Root.Mountfrom

因此,在重启期间我移除了 1GB 的内存条,机器成功启动了 FreeBSD!

答案2

文件 /boot/loader.conf 包含以 root 身份挂载哪个文件系统的指令。

检查此文件中的条目:

vfs.root.mountfrom="ufs:ad6s1a"

并对其进行修改(如果缺失则添加),使其变为:

vfs.root.mountfrom="ufs:ad4s1a"

(假设设备 4 的切片 1 的分区 a)

答案3

使用sysinstall( Configure > Label) 可以修复磁盘标签。奇怪的是,编辑器给出了正确的磁盘编号(即 ad4),但选择后W会写出正确的标签并修复启动问题。

答案4

我认为你想改变/boot.config

查看启动配置请参阅手册页。

这表明你想要类似的东西

echo "1:ad(4,a)/boot/loader" > /boot.config

但首先要对文件进行 cat 以查看其/dev/ad6内容,然后再确定/dev/ad4应该是什么。

相关内容