+ -
当前位置:首页 → 问答吧 → 换了硬盘后,不知道怎么修改默认的启动分区

换了硬盘后,不知道怎么修改默认的启动分区

时间:2004-04-24

来源:互联网

我换了个硬盘,是dump过去的,原来的硬盘ad0s1a是root,新的这个ad0s1e是root分区,所以启动到装入内核时提示找不到kernel,停在boot:提示符下,输入新的root所在分区,可以正常启动。
请问,怎么修改默认的启动分区,告诉系统我的root是在ad0s1e,而不是默认的ad0s1a ?

作者: noah007   发布时间: 2004-04-24

/etc/fstab文件,把里面的分区修改就可以了!

作者: Eg_zm   发布时间: 2004-04-26

噢,我明白了,启动分区的dump和pass段的值应该是1,1,其他分区(除swap外)应该是2,2
请问是这样吗?我现在没有试验环境,理论上是这样的。
下次会在实验环境下试一试。

作者: noah007   发布时间: 2004-04-26

刚才试了下,发现改fstab没用的。
过程是这样的。
我加了个硬盘,只分了一个区,ad1s1d,
进入单用户模式
然后用dump和restore把ad0s1a复制到ad1s1d。
这时候我犯了个错误,也就是这个错误,我才发现了fstab的无效。
是这样的,我要修改fstab,把/这行从ad0s1a改到ad1s1d,
但是本来是要修改ad1s1d下的fstab文件的(因为修改后ad1s1d是根嘛),但是我一疏忽改的是ad0s1a下的文件。
启动后mount的下,发现/已经是ad1s1d了,在看ad1s1d下的fstab文件,上面写的/是ad0s1a的。
也就是说,当boot2启动时,它找的还是ad0s1a下的loader,而loader是根据ad0s1a下fstab文件信息mount分区的。
我这么说不知道大家看懂了没,上面的实验说明如果只修改fstab文件,是不能改变boot2缺省情况下寻找ad0s1a分区的loader文件的行为。

作者: noah007   发布时间: 2004-04-26

默认是把他当作主分区的。
因为默认的分区形式就是ad1s1a,ad1s1b,ad1s1c等,bsd自身的boot load自身去找了ad1s1a,如果采用grub来引导,并且安装在bsd分区的引导上,那么就可以指定根分区的位置了。
我不知道这样说你明白不,在这个论坛上面有关于grub的引导解释,你可以搜索一下。然后要注意的是grub还不支持ufs2格式,如果是freebsd5.2的话,可能会有问题。

作者: Eg_zm   发布时间: 2004-04-27

找的是ad0s1a(准确的说是主硬盘的引导分区的a区),grub是linux的引导器,虽然我并不了解grub,但推想应该具备指定引导分区的功能。
但我就是不知道BSD的boot load怎么去修改默认值,也没找到这方面的资料。

作者: noah007   发布时间: 2004-04-27

bsd的引导的确是不尽如人意,我一直使用grub来引导bsd,有两种方式,一种是指定bsd所在的主分区,如:(hdd0,1),或者指定bsd的跟分区,如(hdd0,1,a)。
此两种的引导要求grub安装在不同的位置。
对与bsd自身的load,还请哪位兄弟来指教。谢谢先。

作者: Eg_zm   发布时间: 2004-04-28

你的意思是说你现在的root分区是ad0s1d是吗?如果是在boot提示下手动输入root分区,进入系统后执行以下操作试试:

echo "boot 0:ad(0,d)/kernel" > /boot.config

如果你需要使用loader来加载kernel则:
echo "boot 0:ad(0,d)/boot/loader" > /boot.config

然后重新启动机器便可。

Good luck!

作者: 黑夜编码人   发布时间: 2004-04-29


终于盼到正解了。谢谢谢谢

作者: noah007   发布时间: 2004-04-29

You're welcome ^_^

作者: 黑夜编码人   发布时间: 2004-04-29

加到/boot/loader.conf可以吗?这样是适用于什么系统的?

作者: devel   发布时间: 2004-04-29

对不起,我高兴得太早了。今天好不容易作了下实验。
因为没有BSD4.X环境,只好在vmware中用BSD5.2.1中试了试,在/boot.config中加了boot 0:ad(0,d)/boot/loader这句,但是问题还是依然如旧,
我看了下man boot 显示如下:
The automatic boot will attempt to load /kernel from partition `a' of either the floppy or the hard disk.
This boot may be aborted by typing any character on the keyboard at the `boot:' prompt.
:o

(目前我正在看源代码,试试看是不是要重编译内核)

作者: noah007   发布时间: 2004-05-01