📄 bootprompt-howto-3.html
字号:
<H3>`nfsroot=' 参数</H3><P><P>这个参数告诉核心以那一台机器,那个目录以及那些个网路档案系统选项作为根档案系统使用。此参数的格式如下:<P><HR><PRE> nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]</PRE><HR><P>如果指令列上没有给定 nfsroot 参数,则将使用 `/tftpboot/%s' 预设值。其它选项如下:<P><server-ip> --指定网路档案系统伺服端的网际网路位址(IP address)。如果没有给定此栏位,则使用由 nfsaddrs 变数(见下面)所决定的值。此参数的用途之一是允许使用不同机器作为反向位址解析协定(RARP)及网路档案系统伺服端。通常你可以不管它(设为空白)。<P><root-dir> --伺服端上要作为根挂入的目录名称。如果字串中有个 `%s' 符记(token),此符记将代换为客户端网际网路位址之 ASCII 表示法。<P><nfs-options> --标准的网路档案系统选项。所有选项都以逗号分开。如果没有给定此选项栏位则使用下列的预设值:<P><PRE> port = as given by server portmap daemon rsize = 1024 wsize = 1024 timeo = 7 retrans = 3 acregmin = 3 acregmax = 60 acdirmin = 30 acdirmax = 60 flags = hard, nointr, noposix, cto, ac</PRE><P><H3>`nfsaddrs=' 参数</H3><P><P>这个启动参数设定网路通讯所需的各种网路界面位址。如果没有给定这个参数,则核心会试著使用反向位址解析协定以及/或是启动协定(BOOTP)以找出这些参数。其格式如下:<P><HR><PRE> nfsaddrs=<my-ip>:<serv-ip>:<gw-ip>:<netmask>:<name>:<dev>:<auto></PRE><HR><P><my-ip> --客户端的网际网路位址。如果没设,此位址将由反向位址解析协定或启动协定来决定。使用何种协定端视配置核心时打开的选项以及 <auto> 参数而定。如果设定此参数,就不会使用反向位址解析协定或启动协定。<P><serv-ip> --网路档案系统伺服端之网际网路位址。如果使用反向位址解析协定来决定客户端位址并且设定此参数,则只接受从指定之伺服端传来的回应。要使用不同的机器作为反向位址解析与网路档案系统伺服端的话,在此指定你的反向位址解析协定伺服端(保持空白)并在 nfsroot 参数(见上述)中指定你的网路档案系统伺服端。如果此项目空白则使用回答反向位址解析协定或启动协定之伺服端的位址。<P><gw-ip> --闸道(gateway)之网际网路位址,若伺服端位於不同的子网路上时。如果此项目空白则不使用任何闸道并假设伺服端在本地的(local)网路上,除非由启动协定接收到值。<P><netmask> --本地网路介面的网路遮罩。如果为空白,则网路遮罩由客户端的网际网路位址导出,除非由启动协定接收到值。<P><name> --客户端的名称。如果空白,则使用客户端网际网路位址之 ASCII-标记法,或由启动协定接收的值。<P><dev> --要使用的网路设备名称。如果为空白,所有设备都会用来发出反向位址解析请求,启动协定请求由最先找到的设备发出。网路档案系统使用接收到反向位址解析协定或启动协定回应的设备。如果你只有一个设备那你可以不管它。<P><auto> --用以作为自动配置的方法。如果是 `rarp' 或是 `bootp' 则使用所指示的协定。如果此值为 `both' 或空白,若配置核心时有打开这两种协定则都使用。`none' 表示不使用自动配置。这种情况下你必须指定前述栏位中所有必要的值。<P>此 <auto> 参数可以作为 nfsaddrs 的参数单独使用(前面没有任何 `:`字元),这种情况下会使用自动配置。然而,此种情况不能使用 `none'作为值。<P><H2><A NAME="ss3.5">3.5 其它另外的核心启动参数</A></H2><P><P>这些启动参数让使用者调整某些核心内部的参数。<P><H3>The `debug' Argument</H3><P><P>核心经由 <CODE>printk()</CODE>函式传达重要(以及没那麽重要)的讯息给管理者(operator)。如果讯息很重要, <CODE>printk()</CODE> 函式也会显示到主控台(console)上,就如同丢给 <CODE>klogd()</CODE> 记录到磁碟上一般。如同记录到磁碟上一般在主控台上显示重要讯息的原因是因为在不幸的状况下(例如磁碟损坏)讯息将无法存入磁碟而漏失。<P>到底什麽重要什麽不重要其门槛藉由 <CODE>console_loglevel</CODE> 变数设定。预设是把任何比 <CODE>DEBUG</CODE>(等级 7)重要的东西记录到主控台上去。(这些等级定义在 <CODE>kernel.h</CODE> 含入档中)指定<CODE>debug</CODE> 启动参数将使主控台的记录等级设为 10,所以<EM>所有</EM>核心讯息都会出现在主控台上。<P>主控台记录等级通常也可以在执行期间经由 <CODE>klogd()</CODE> 程式选项设定。查看你系统之安装版本的线上说明页看看该怎麽做。<P><H3>`init=' 参数</H3><P><P>核心启动时预设执行 `init' 程式,这支程式接下来经由执行 getty 程式,跑 `rc' 指令稿(scripts)以及诸如此类的东东为使用者设定电脑。核心首先寻找 <CODE>/sbin/init</CODE> ,然後是 <CODE>/etc/init</CODE>(depreciated),而最後它会去试 <CODE>/bin/sh</CODE> (可能在 <CODE>/etc/rc</CODE> )。如果说,例如,如果你的 init 程式坏掉了,只要使用 <CODE>init=/bin/sh</CODE><P>这个启动参数就能让你在启动时直接跳到解译环境(shell),使你能够换掉坏掉的程式。<P><H3>`no387' 参数</H3><P><P>某些 i387 协同处理器晶片有臭□(bugs),在 32 位元保护模式下会出现。例如,部份早期的 ULSI-387 晶片在执行浮点运算时会死当,这似乎是因为 FRSAV/FRRESTOR 指令的一只□。使用 `no387' 启动参数使 Linux 就算你真的有数值辅助处理器也忽略它的存在。当然编译核心时你必须加入数值模拟支援!如果你有某些能够使用 80287 浮点处理单元(FPU)的<EM>古董级</EM> 386机器那这也很有用,因为 linux 无法使用 80287。<P><H3>`no-hlt' 参数</H3><P><P>i386(及其後继者)家族的中央处理器有个 `hlt' 指令用来告诉中央处理器现在□□没事做,直到某个外部设备(键盘,数据机,磁碟等等)呼叫中央处理器执行任务为止。这个指令会使中央处理器进入‘省电’模式,像个死人(zombie)般坐在那里直到有个外部设备叫它起来(经由中断(interrupt) ,通常是)。部份早期的 i486DX-100 晶片处理这个 `hlt' 指令有问题,使用过这个指令後它们不能可靠地回到运作模式。使用 `no-hlt' 这个指令告诉Linux当无事可做时跑个无穷回圈而<EM>不</EM>停住你的中央处理器。让有这些晶片的人们能够使用 Linux,然而还是建议有可能的话就换掉这些晶片。<P><H3>`no-scroll' 参数</H3><P><P>启动时使用这个参数可以关闭卷页(scrolling)特性,这个特性使得 Braille终端机难以使用。<P><H3>`panic=' 参数</H3><P><P>在不太可能发生的核心异常(kernel panic)事件下(像是核心侦测到内部错误,并认为这样的错误严重到应该发出警讯并停止任何作业),<P>预设的处理方式是就停在那儿直到有人过来并注意到萤幕上的异常警讯然後重新启动机器。<P>然而如果机器是在无法触及,隔离的地方跑的话也许会希望它能自动重置自己然後回到线上。例如,启动时使用 <CODE>panic=30</CODE> 会使核心在发生核心异常 30秒後试著重新启动自己。若此值为零则使用预设的处理方式,就是一直在那儿等。<P>注意,这个逾时(timeout)设定也可经由 <CODE>/proc/sys/kernel/panic</CODE>系统控制(sysctl)介面读取与设定。<P><H3>`profile=' 参数</H3><P><P>核心发展者们可以打开某个选项以得知核心如何使用中央处理器时间以及用在那□,以便最大化效率(efficiency)与效能(performance)。这个选项让你在启动时设定观察变化的计数(the profile shift count)。此值一般设为二。你也可以在编译核心时打开此功能。无论那种情况,你都需要像<CODE>readprofile.c</CODE> 这类可以处理 <CODE>/proc/profile</CODE> 输出的工具。<P><H3>`reboot=' 选项</H3><P><P>这个选项控制重置电脑时(典型是经由 <CODE>/sbin/init</CODE> 处理的 Control-Alt-Delete 动作)Linux 所做的重新启动之种类。新的 v2.0 核心预设的动作是做‘冷’开机(完全重置,基本输出入系统执行记忆体检查等等)以代替‘暖’开机(没有完全重置,没有记忆体检查)。<P>改为预设冷开机是为了要在便宜的/烂烂的,暖开机请求没办法重新启动的硬体上工作。可以使用 <CODE>reboot=w</CODE> 设为原先的方式(暖开机),其实可以用任何以<CODE>w</CODE> 开头的字来设定。<P>为什麽这会造成困扰?某些具有记忆体快取的磁碟控制器能够感测到暖开机,并且把所有暂存的资料写到磁碟上。冷开机可能会重设该卡,在快取卡记忆体里面的回写(write-back)资料就会漏失。已经有人回报系统记忆体检查很花时间以及/或是小型电脑智慧介面基本输出入系统(SCSI BIOSes)冷开机时花较久的时间初始化是使用暖开机的好理由。<P><H3>`reserve=' 参数</H3><P><P>这是用来<EM>保护</EM>输出入埠区域不要侦测。这个指令的格式是:<P><BLOCKQUOTE><CODE>reserve=iobase,extent[,iobase,extent]...</CODE></BLOCKQUOTE><P>在某些机器上也许必须避免设备驱动程式去检查(自动侦测)在某些特殊区域的设备。这可能是因为硬体设计的不良而会使得启动<EM>终止</EM>(像是某些乙太网路卡),会被误认的硬体,状态会因为较前面的侦测而改变的硬体,或者只是你不想让核心初始化的硬体。<P>此 <CODE>reserve</CODE>启动时期参数藉由指定一段不要侦测的输出入埠□围以解决此问题。此段区域在核心的输出入埠注册表格当中被视为已经在该处找到设备(名称为 <CODE>reserved</CODE> )而保留。注意,绝大部份的机器都不需要此机制。只有真的有问题或特殊情况才会需要用到这东东。<P>位於指定之区域中的输出入埠乃是靠著在侦测一段输出入区域之前先执行<CODE>check_region()</CODE> 以避免设备侦测。这用於某些遇上 NE2000 会挂掉或者会误认其它设备的驱动程式。<P>正确的设备驱动程式不应该去侦测保留区域,除非另一个启动参数明确地指示它这样做。这意谓著 <CODE>reserve</CODE> 经常与其它启动参数一起使用。如果你指定一段<CODE>保留</CODE>区域以保护某特定设备的话,你必须明确地指定此设备的侦测□围,大部份的驱动程式如果有给它们明确的位址就会忽略输出入埠注册表。<P>例如,此启动列<P><HR><PRE> reserve=0x300,32 blah=0x300</PRE><HR><P>保留 <CODE>0x300-0x31f</CODE> 不让除了 `blah'的设备驱动程式外的所有驱动程式去侦侧。<P>如同一般启动时期所用的格式,它也有 11 个参数之限制,因此每个 <CODE>reserve</CODE> 关键字只能指定 5 个保留区域。如果你有异常复杂的需求,可以使用多重 <CODE>reserve</CODE> 指定。<P><H3>`vga=' 参数</H3><P><P>注意,这并不真的是个启动参数。它是由 LILO 解译的选项,与所有其它由核心处理的启动参数并不相同。然而因为它的使用变得如此普遍故值得在此加上一笔。这个选项也可以经由使用<CODE>rdev -v</CODE> 或相同的 <CODE>vidmode</CODE> 指令对 vmlinuz 档案作设定。这使得设定程式码能够在真的启动Linux 核心之前使用视讯(video)基本输出入系统改变预设的显示模式。典型的模式是 80x50, 132x44 等等。使用此选项最好的方式是以 <CODE>vga=ask</CODE> 启动,如此在启动核心前会有个列表提示你的显示卡可以使用的各种模式。一旦你从上述列表得知你想使用的号码,以後就可以把它放在 `ask' 的位置。更进一步的资讯请参阅随附於所有新版核心的<CODE>linux/Documentation/svga.txt</CODE> 档案。<P>注意,新的核心(2.1 版以上)有改变显示模式的设定程式码选项<EM>Video mode selection support</EM>,所以如果你想使用这个特性那麽你就得打开这个选项。<P><HR><A HREF="BootPrompt-HOWTO-4.html">Next</A><A HREF="BootPrompt-HOWTO-2.html">Previous</A><A HREF="BootPrompt-HOWTO.html#toc3">Contents</A></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -