C 高级 linuxrc
选项 #
linuxrc
是在装载内核之后、执行 AutoYaST 或其他阶段之前运行的一个小程序,用于为安装系统做好准备。用户可以通过此程序装载模块、启动安装的系统或救援系统,以及指导完成 YaST 的操作。
linuxrc
设置不相同
某些 linuxrc
设置恰好与 AutoYaST 在其 autoyast.xml
文件中使用的设置同名。但这并不意味着它们采用相同的参数或者以相同的方式工作。例如,AutoYaST 采用 self_update
设置。如果此值设置为 1
,则会读取并遵循另一个设置 self_update_url
。虽然 linuxrc
也具有 self_update
设置,但 linuxrc
的设置采用值 0
或 URL。
请不要将 AutoYaST 参数传递给 linuxrc
,因为几乎可以肯定这不会产生所需的结果。
如果在计算机上安装了 linuxrc
,可以在 /usr/share/doc/packages/linuxrc/
目录中找到其相关信息。或者,也可以在 https://en.opensuse.org/SDB:Linuxrc 上找到其联机文档。
linuxrc
如果您在安装的系统上运行 linuxrc
,为了不破坏您的安装,它会以略微不同的方式工作。因此,您无法以这种方式测试所有功能。
为了尽可能保留最小的 linuxrc
二进制文件,其所有库和其他补充文件已直接链接到主程序二进制文件。这意味着,不需要在初始 RAM 磁盘 initrd
中保留任何共享库。
C.1 将参数传递给 linuxrc
#
除非 linuxrc
处于手动模式,否则它会在以下位置查找 info
文件:首先是闪存盘(例如 USB 记忆棒)上的 /info
,如果在该位置未找到,则查找 initrd
中的 /info
。然后,它会分析参数的内核命令行。您可以通过设置 info
命令行参数来更改 linuxrc
读取的 info
文件。如果您不希望 linuxrc
读取内核命令行(例如,因为您还需要指定 linuxrc
可识别的某个内核参数),请使用 linuxrc=nocmdline
。
linuxrc
始终查找并分析名为 /linuxrc.config
的文件。如果需要,请使用此文件更改默认值。一般而言,最好是改用 info
文件。请注意,即使是在手动模式下,也会先读取 /linuxrc.config
,再读取任何 info
文件。
C.2 info
文件格式 #
以 #
开头的行是注释。有效项的格式如下:
key: value
请注意,value
将扩展到行尾,因此可能包含空格。key
的匹配不区分大小写。
您可以使用语法 key=value
,在内核命令行上使用相同的键-值对。未采用上述格式的行将被忽略。
下表列出了重要的键和示例值。有关 linuxrc
参数的完整列表,请参见 https://en.opensuse.org/SDB:Linuxrc。
linuxrc
关键字 #
关键字:示例值 |
说明 |
---|---|
|
如果为 0,则永远不请求交换;如果该参数是正数 |
|
自动安装文件的位置;激活自动安装模式。有关详细信息,请参见AutoYaST 控制文件位置。 |
|
BOOTP 请求的超时为 10 秒。 |
|
在网络激活与启动 bootp 之间休眠 5 秒。 |
|
设置菜单配色方案。 |
|
运行命令。 |
|
运行 |
|
将安装系统装载到 RAM 磁盘中。 |
|
设置并启动网络。有关更多信息,请参见第 C.3 节 “高级网络设置”。 |
|
装载 MODULE。 |
|
从 URL 指定的储存库安装。有关 URL 的语法,请参见 https://en.opensuse.org/SDB:Linuxrc#url_descr。 |
|
要装载的虚拟控制台键盘映射。 |
|
预先选择的安装语言。 |
|
启用通过 syslog 的远程日志记录。 |
|
如果可用内存超过 50000 KB,则将安装系统装载到 RAM 磁盘中。 |
|
如果可用内存降到 10000 KB 以下,则请求交换。 |
|
如果可用内存低于 20000 KB,则以文本模式运行 YaST。 |
|
如果可用内存低于 10000 KB,则在启动 YaST 之前请求交换。 |
|
代理(FTP 或 HTTP)。 |
|
装载救援系统;URL 变体显式指定救援映像的位置。 |
|
救援系统映像的位置。 |
|
安装系统映像的位置。 |
|
以文本模式启动 YaST。 |
|
装载 USB 模块后等待 4 秒。 |
|
覆盖控制文件中的确认参数,并请求确认安装建议。 |
C.3 高级网络设置 #
即使已将 hostip
、nameserver
和 gateway
等参数传递给了 linuxrc
,也只会在需要时(例如,通过 SSH 或 VNC 安装时)才启动网络。由于 autoyast
不是一个 linuxrc
参数(此参数将被 linuxrc
忽略,只会传递给 YaST),在为 AutoYaST 配置文件指定远程位置时,将不会自动启动网络。
因此,需要显式启动网络。此操作过去常常是通过 linuxrc
参数 netsetup
完成的。从 SUSE Linux Enterprise Server 12 开始,可以使用参数 ifcfg
。此参数提供更多配置选项,例如,配置多个接口。ifcfg
直接控制 /etc/sysconfig/network/ifcfg-*
文件的内容。
- DHCP 网络配置
用于配置 DHCP 的一般语法是
ifcfg=INTERFACE=DHCP*,OPTION1=VALUE1,OPTION2=VALUE2
其中 INTERFACE 是接口名称,例如
eth0
,eth*
表示所有接口。DHCP* 可以是dhcp
(IPv4 和 IPv6)、dhcp4
或dhcp6
。要为
eth0
设置 DHCP,请使用:ifcfg=eth0=dhcp
要在所有接口上设置 DHCP,请使用:
ifcfg=eth*=dhcp
- 静态网络配置
用于配置静态网络的一般语法是
ifcfg=INTERFACE=IP_LIST,GATEWAY_LIST,NAMESERVER_LIST,DOMAINSEARCH_LIST,\ OPTION1=value1,...
其中 INTERFACE 是接口名称,例如
eth0
。如果使用eth*
,将使用第一个可用设备。其他参数需按给定的顺序替换为相应的值。示例:ifcfg=eth0=192.168.2.100/24,192.168.5.1,192.168.1.116,example.com
为某个参数指定多个地址时,请使用空格进行分隔,并以引号括住整个字符串。以下示例使用两个名称服务器,以及一个包含两个域的搜索列表。
ifcfg="eth0=192.168.2.100/24,192.168.5.1,192.168.1.116 192.168.1.117,example.com example.net"
有关详细信息,请参见https://en.opensuse.org/SDB:Linuxrc#Network_Configuration。