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.net.cn/SDB:Linuxrc。
linuxrc如果在已安装的系统上运行 linuxrc,它将以略有不同的方式工作,以免破坏您的安装。因此,您无法通过这种方式测试所有功能。
为了使 linuxrc 二进制文件尽可能小,其所有库和其他补充文件都直接链接到主程序二进制文件中。这意味着初始 RAM 磁盘 initrd 中不需要任何共享库。
除非 linuxrc 处于手动模式,否则它将在以下位置查找 info 文件:首先是闪存盘(例如 USB 存储设备)上的 /info,如果不存在,则在 initrd 中查找 /info。之后,它解析内核命令行以获取参数。您可以通过设置 info 命令行参数来更改 linuxrc 读取的 info 文件。如果您不希望 linuxrc 读取内核命令行(例如,因为您需要指定 linuxrc 也识别的内核参数),请使用 linuxrc=nocmdline。
linuxrc 将始终查找并解析名为 /linuxrc.config 的文件。如果需要,请使用此文件更改默认值。通常,最好使用 info 文件。请注意,即使在手动模式下,/linuxrc.config 也会在任何 info 文件之前读取。
以 # 开头的行是注释。有效的条目形式如下
key: value
请注意,value 扩展到行尾,因此可能包含空格。对 key 的匹配不区分大小写。
您可以使用 key=value 语法在内核命令行上使用相同的键值对。不符合上述形式的行将被忽略。
下表列出了重要的键和示例值。有关完整的 linuxrc 参数列表,请参阅 https://en.opensuse.net.cn/SDB:Linuxrc。
linuxrc 关键字 #|
关键字:示例值 |
描述 |
|---|---|
|
|
如果为 0,则从不请求交换空间;如果参数是正数 |
|
|
自动安装文件的位置;激活自动安装模式。有关详细信息,请参阅 AutoYaST 控制文件位置。 |
|
|
BOOTP 请求的 10 秒超时。 |
|
|
在启动 bootp 之前,在网络激活之间休眠 5 秒。 |
|
|
设置菜单颜色方案。 |
|
|
运行 command。 |
|
|
在运行 |
|
|
将安装系统加载到 RAM 磁盘中。 |
|
|
设置并启动网络。有关更多信息,请参阅 第 C.3 节,“高级网络设置”。 |
|
|
加载 MODULE。 |
|
|
从使用 URL 指定的存储库安装。有关 URL 的语法,请参阅 https://en.opensuse.net.cn/SDB:Linuxrc#url_descr。 |
|
|
要加载的虚拟控制台键盘映射。 |
|
|
为安装预选的语言。 |
|
|
通过 UDP 端口 514 启用通过 syslog 的远程日志记录 |
|
|
通过 TCP 端口 514 启用通过 syslog 的远程日志记录 |
|
|
如果可用内存高于 50000 KB,则将安装系统加载到 RAM 磁盘中。 |
|
|
如果可用内存降至 10000 KB 以下,则请求交换空间。 |
|
|
如果可用内存低于 20000 KB,则以文本模式运行 YaST。 |
|
|
在启动 YaST 之前,如果可用内存低于 10000 KB,则请求交换空间。 |
|
|
定义 HTTP 代理服务器。有关完整的参数语法,请参阅 https://en.opensuse.net.cn/SDB:Linuxrc#p_proxy。 |
|
|
加载救援系统;URL 变体显式指定救援镜像的位置。 |
|
|
救援系统镜像的位置。 |
|
|
安装系统镜像的位置。 |
|
|
以文本模式启动 YaST。 |
|
|
加载 USB 模块后等待四秒。 |
|
|
覆盖控制文件中的 confirm 参数并请求确认安装建议。 |
即使将诸如 hostip、nameserver 和 gateway 等参数传递给 linuxrc,网络仅在需要时(例如,通过 SSH 或 VNC 安装时)才启动。由于 autoyast 不是 linuxrc 参数(此参数被 linuxrc 忽略,仅传递给 YaST),因此在指定 AutoYaST 配置文件的远程位置时,网络将 不会自动启动。
因此,需要显式启动网络。这是通过使用参数 ifcfg 完成的。ifcfg 直接控制 /etc/sysconfig/network/ifcfg-* 文件中的内容。
配置 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.net.cn/SDB:Linuxrc#Network_Configuration。