FreeBSD如何保存和使用内核更改信息?
发布时间:2006-10-14 8:46:57   收集提供:gaoqian
Dan Langille
www.FreeBSDdiary.org


    如果你安装好了FreeBSD的话,那么应该认识了全屏幕配置界面。在这个界面里你可以排除硬件资源冲突,并且可以设置不同的系统部件,完成后可以保存这些信息然后继续引导处理。简而言之,这一步操作允许你对现有的内核作一些改变。这些改变会被保存到磁盘上。不过,在版本3.1,这些内容不会被保存到正确的位置,在这里我教你怎样改正它。

改变系统引导信息
先参考一下3.1版的errata.txt。以下是使用这些推荐信息的步骤。引导系统后登录,执行:
# mv /kernel.config /boot/kernel.conf
把以下命令加入/boot/loader.r:
load /kernel
load -t userconfig_script /boot/kernel.conf
autoboot 5

然后重新引导,这时可以看到一些新的引导信息。系统实际上进入了配置过程,并且执行了各种配置命令,我认为这确实是一个功能很强的工具。

以下是这次引导的dmesg信息,可以看出引导信息已经被修改了。 
$ dmesg
Copyright (c) 1992-1999 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
FreeBSD 3.1-RELEASE #0: Mon Feb 15 11:08:08 GMT 1999
jkh@usw3.freebsd.org:/usr/src/sys/compile/GENERIC
Timecounter "i8254" frequency 1193182 Hz
CPU: i486DX (486-class CPU)
real memory = 8650752 (8448K bytes)
config> di zp0
config> di ze0
config> di lnc0
config> di le0
config> di ie0
config> di fe0
config> di ex0
config> di ep0
config> di cs0
config> di wt0
config> di wdc1
config> di scd0
config> di mcd0
config> di matcdc0
config> di bt0
config> di aha0
config> di adv0
config> en ed0
config> po ed0 0x300
config> ir ed0 5
config> iom ed0 0xd8000
config> f ed0 0
config> q
avail memory = 5476352 (5348K bytes)
Preloaded elf kernel "kernel" at 0xf0340000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xf034009c.
Probing for devices on the ISA bus:
sc0 on isa
sc0: VGA color <16 virtual consoles, flags="0x0">
ed0 at 0x300-0x31f irq 5 on isa
ed0: address 00:80:29:b1:f2:61, type NE2000 (16 bit)
atkbdc0 at 0x60-0x6f on motherboard
atkbd0 irq 1 on isa
psm0 not found
sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
sio0: type 16550A
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1 not found at 0x2f8
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0):
wd0: 407MB (833664 sectors), 1002 cyls, 16 heads, 52 S/T, 512 B/S
ppc0 at 0x3bc irq 7 on isa
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
nlpt0: on ppbus 0
nlpt0: Interrupt-driven port
ppi0: on ppbus 0
plip0: on ppbus 0
vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa
npx0 on motherboard
npx0: INT 16 interface
changing root device to wd0s1a 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50