Solaris 9 安装指南

第 7 章 预先配置系统信息(任务)

本章描述如何预先配置系统信息。预先配置有助于您在安装 Solaris 操作环境时避免系统提示您输入该信息。本章还描述如何预先配置 Power ManagementTM 信息。本章包含以下几个部分:

预先配置系统信息的优点

各种安装方法都需要有关系统的配置信息,如外围设备、主机名、网际协议 (IP) 地址和名称服务。在安装工具提示您输入配置信息之前,它们会首先依次在 sysidcfg 文件和名称服务数据库中检查该信息。

如果 Solaris Web Start 程序、Solaris suninstall 程序 或定制 JumpStart 安装程序检测到预先配置的系统信息,则安装程序将不会提示您输入该信息。例如,您有若干个系统,并且不希望每次在一个系统上安装 Solaris 9 软件时都提示输入时区。您可以在 sysidcfg 文件中或在名称服务数据库中指定时区。这样在安装 Solaris 9 软件时,安装程序就不会提示您键入时区了。

预先配置系统信息的方法

您可以选择以下方法之一来预先配置系统信息。您可以将系统配置信息添加到以下任何一个位置中。

使用下表来确定使用哪种方法来预先配置系统信息。

表 7–1 预先配置系统信息的方法

可预先配置的系统信息 

可用 sysidcfg 文件预先配置吗?

可用名称服务预先配制吗?

名称服务 

可以 

可以 

域名 

可以 

不可以 

名称服务器 

可以 

不可以 

网络接口 

可以 

不可以 

主机名 

可以1

可以 

网际协议 (IP) 地址 

可以1

可以 

网络掩码 

可以 

不可以 

DHCP 

可以 

不可以 

IPv6 

可以 

不可以 

缺省路由器 

可以 

不可以 

超级用户口令 

可以 

不可以 

安全策略 

可以 

不可以 

用来显示安装程序和桌面的语言(语言环境) 

可以 

如果是 NIS 或 NIS +,则可以 

如果是 DNS 或 LDAP,则不可以 

终端类型 

可以 

不可以 

时区 

可以 

可以 

日期和时间 

可以 

可以 

Power Management(自动停机)2

不可以 

不可以 

  1. 由于此信息是特定于系统的,因此请编辑名称服务,而不是为每个系统创建一个不同的 sysidcfg 文件。

  2. 您不能通过 sysidcfg 文件或名称服务来预先配置此系统配置信息。“预先配置 Power Management 信息”包含详细信息。

sysidcfg 文件进行预先配置

您可以在 sysidcfg 文件中指定一组关键字来预先配置一个系统。这些关键字在表 7–2 中进行了描述。

您必须为每一个需要不同配置信息的系统创建一个唯一的 sysidcfg 文件。如果希望为所有系统指定相同的时区,则可以使用同一个 sysidcfg 文件在一组系统上预先配置时区。但是,如果要为其中每个系统预先配置一个不同的根(超级用户)口令,则需要为每个系统创建一个唯一的 sysidcfg 文件。

您可以将 sysidcfg 文件放在下面的一个位置中。


注意:

如果您正在执行定制 JumpStart 安装,并且希望使用软盘上的 sysidcfg 文件,则必须将 sysidcfg 文件放在配置文件软盘上。要创建配置文件软盘,请参见“为独立系统创建配置文件盘”


您可以在一个目录或一张软盘上只放置一个 sysidcfg 文件。如果您创建了多个 sysidcfg 文件,则必须将每个文件放在不同的目录或软盘中。

sysidcfg 文件的语法规则

您可以在 sysidcfg 文件中使用以下两种关键字:独立关键字和依赖关键字。依赖关键字只在独立关键字中被保证是唯一的。依赖关键字只有在通过其关联的独立关键字进行标识时才存在。

在本示例中,name_service 是独立关键字,而 domain_namename_server 则是依赖关键字:

name_service=NIS {domain_name=marquee.central.sun.com

name_server=connor(129.152.112.3)}

语法规则 

示例 

独立关键字可以按任意顺序列出。 

pointer=MS-S

display=ati {size=15-inch}

关键字不区分大小写。 

TIMEZONE=US/Central

将所有依赖关键字用花括号 ({}) 括起来以使其与关联的独立关键字绑定在一起。 

name_service=NIS 

       {domain_name=marquee.central.sun.com

        name_server=connor(129.152.112.3)}

您还可以将值括在单引号 (`) 或双引号 (“) 中。 

network_interface='none'

一个关键字只有一个实例有效。但如果多次指定一个关键字,则仅使用该关键字的第一个实例。 

network_interface=none

network_interface=le0

sysidcfg 文件关键字

下表描述了在 sysidcfg 文件中可以使用的关键字。

表 7–2 在 sysidcfg 中可以使用的关键字

配置信息 

关键字 

值或示例 

名称服务、域名、名称服务器 

name_service=NIS, NIS+, DNS, LDAP, NONE

 
  

NIS 和 NIS+ 选项:{domain_name=domain_name name_server=hostname( ip_address)}

name_service=NIS {domain_name=west.arp.com name_server=timber(129.221.2.1)}

name_service=NIS+ {domain_name=west.arp.com. name_server=timber(129.221.2.1)}

 

DNS 选项:{domain_name=domain_name name_server=ip_address, ip_address, ip_address(最多三个) search=domain_name, domain_name,domain_name, domain_name,domain_name, domain_name(最多六个,总长度小于或等于 250 个字符)}

name_service=DNS {domain_name=west.arp.com name_server=10.0.1.10,10.0.1.20 search=arp.com,east.arp.com}


注意:

只选择一个 name_service 值。根据需要,可包含 domain_namename_server 这两个关键字中的任何一个,也可同时包含这两者,或者两者都不包含。如果这两个关键字都不用,则省略花括号 {}。


 

LDAP 选项:{domain_name=domain_name profile=profile_name profile_server= ip_address}

name_service=LDAP {domain_name=west.arp.com profile=default profile_server=129.221.2.1}

网络接口、主机名、网际协议 (IP) 地址、网络掩码、DHCP、IPv6 

network_interface=NONE、PRIMARY 或value

其中:

  • NONE 可关闭联网

  • PRIMARY 是在系统中找到的第一个已启用的、非回送接口。顺序与“ifconfig.”相同。如果没有启用任何接口,则使用第一个非回送接口。如果没有找到任何非回送接口,则系统将被设置为 NON-NETWORKED。

  • value 指定一个接口,如 le0 或 hme0。

  
  如果确实要使用 DHCP,则请指定:{dhcp protocol_ipv6= yes_or_no}

network_interface=primary {dhcp protocol_ipv6=yes}

  如果使用 DHCP,则请指定:{hostname=host_name default_route=ip_address ip_address= ip_address netmask=netmask protocol_ipv6= yes_or_no}

network_interface=le0 {hostname=feron default_route=129.146.88.1 ip_address=129.146.88.210 netmask=255.255.0.0 protocol_ipv6=no}


注意:

只选择一个 network_interface 值。根据需要,可包含 hostnameip_addressnetmask 这三个关键字的任意组合,或者三者都不包含。如果不使用这三个关键字中的任何一个,则请省略花括号 ({})。



注意:

如果不使用 DHCP,则不必指定 protocol_ipv6default_route。但 JumpStart 安装需要立即指定 protocol_ipv6,否则稍后就会以交互方式提示您输入它。


超级用户口令 

root_password= root_password

/etc/shadow 加密。

安全策略 

security_policy=kerberos, NONE

Kerberos 选项: {default_realm=FQDN admin_server=FQDN kdc=FQDN1, FQDN2, FQDN3}

FQDN 是一个完全限定域名)

security_policy=kerberos 

{default_realm=Yoursite.COM 

admin_server=krbadmin.Yoursite.COM 

kdc=kdc1.Yoursite.COM, 

kdc2.Yoursite.COM}


注意:

您最多可以列出三个密钥分发中心 (KDC),但至少需要列出一个。


显示用于显示安装程序和桌面的语言 

system_locale=locale

/usr/lib/locale 目录或第 40 章,语言环境值(参考)提供有效的语言环境值。

终端类型 

terminal= terminal_type

/usr/share/lib/terminfo 目录中的子目录提供有效的终端值。

时区 

timezone= timezone

/usr/share/lib/zoneinfo 目录中的目录和文件提供有效的时区值。时区值是相对于 /usr/share/lib/zoneinfo 目录的路径的名称。例如,美国山地标准时间的时区值为 US/Mountain。日本的时区值为 Japan。您还可以指定任何有效的 Olson 时区。

日期和时间 

timeserver=localhost, hostname, ip_addr

如果您将 localhost 指定为时间服务器,则假定系统时间正确。如果您没有运行名称服务,并且指定了某个系统的 hostnameip_addr,则该系统的时间将用于设置时间。

创建 sysidcfg 配置文件

  1. 使用文本编辑器创建一个名为 sysidcfg 的文件。

  2. 键入所需要的 sysidcfg 关键字。

  3. 保存 sysidcfg 文件。


    注意:

    如果创建了多个 sysidcfg 文件,则必须将每个文件分别保存在不同的目录中或不同的软盘上。


  4. 通过以下方法使 sysidcfg 文件可由各客户机使用:

    • UFS 软盘上的根 (/) 目录。

sysidcfg 文件示例

下面是 sysidcfg 文件的示例。这些系统的主机名、IP 地址和网络掩码已通过编辑名称服务得到预先配置。由于所有系统配置信息都是在定制 JumpStart 配置文件中预先配置的,因此您可以使用该文件来执行定制 JumpStart 安装。

system_locale=en_US

timezone=US/Central

terminal=sun-cmd

timeserver=localhost

name_service=NIS {domain_name=marquee.central.sun.com

                  name_server=connor(129.152.112.3)}

root_password=m4QPOWNY

用名称服务进行预先配置

下表对名称服务数据库进行了高级概述,您需要编辑和填充这些数据库来预先配置系统信息。

要预先配置的系统信息 

名称服务数据库 

主机名和网际协议 (IP) 地址 

hosts

日期和时间 

hosts。在为所安装的系统提供日期和时间的系统的主机名旁边指定timehost 假名。

时区 

timezone

网络掩码 

netmasks

您不能用 DNS 或 LDAP 名称服务来预先配置系统的语言环境。如果使用 NIS 或 NIS+ 名称服务,则请遵循该名称服务的过程来预先配置系统的语言环境:

使用 NIS 预先配置语言环境

  1. 首先成为名称服务器上的超级用户。

  2. 更改 /var/yp/Makefile 以添加本地映射。

    1. 在最后一个 variable .time shell 过程后面插入以下 shell 过程。

      locale.time:  $(DIR)/locale
      
              -@if [ -f $(DIR)/locale ]; then \
      
                     sed -e "/^#/d" -e s/#.*$$// $(DIR)/locale \
      
                     | awk '{for (i = 2; i<=NF; i++) print $$i, $$0}' \
      
                     | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/locale.byname; \
      
                     touch locale.time; \
      
                     echo "updated locale"; \
      
                     if [ ! $(NOPUSH) ]; then \
      
                             $(YPPUSH) locale.byname; \
      
                             echo "pushed locale"; \
      
                     else \
      
                     : ; \
      
                     fi \
      
              else \
      
                     echo "couldn't find $(DIR)/locale"; \
      
              fi
    2. 查找字符串 all: 并且在变量列表的末尾插入 locale 一词。

      all: passwd group hosts ethers networks rpc services protocols \
      
      	netgroup bootparams aliases publickey netid netmasks c2secure \
      
      	timezone auto.master auto.home locale
      
    3. 在接近该文件末尾处和其类型的最后一项后面,另起一行插入字符串 locale: locale.time

      passwd: passwd.time
      
      group: group.time
      
      hosts: hosts.time
      
      ethers: ethers.time
      
      networks: networks.time
      
      rpc: rpc.time
      
      services: services.time
      
      protocols: protocols.time
      
      netgroup: netgroup.time
      
      bootparams: bootparams.time
      
      aliases: aliases.time
      
      publickey: publickey.time
      
      netid: netid.time
      
      passwd.adjunct: passwd.adjunct.time
      
      group.adjunct: group.adjunct.time
      
      netmasks: netmasks.time
      
      timezone: timezone.time
      
      auto.master: auto.master.time
      
      auto.home: auto.home.time
      
      locale: locale.time
      
    4. 保存文件。

  3. 创建文件 /etc/locale 并为每个域或特定系统生成一项:

    locale domain_name
    

    或者

    locale system_name
    

    注意:

    第 40 章,语言环境值(参考)包含一个有效语言环境列表。


    例如,下面这项指定法语为 worknet.com 域中使用的缺省语言:

    fr worknet.com

    下面这项指定比利时法语为名为 charlie 的系统所使用的缺省语言环境:

    fr_BE charlie 

    注意:

    语言环境可从 Solaris 9 DVD 或 Solaris 9 Software 1 (1 of 2) CD 中获得。


  4. 建立映射:


    # cd /var/yp; make
    

    通过域指定的系统或分别在 locale 映射中指定的系统现在被设置为使用缺省语言环境。所指定的缺省语言环境将在安装过程中使用,并在重新引导系统之后由桌面使用。

使用 NIS+ 预先配置语言环境

以下过程假定已经设置 NIS+ 域。对 NIS+ 域的设置被记录在《System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP)》中。

  1. 以超级用户或 NIS+ 管理组中用户的身份登录到名称服务器。

  2. 创建 locale 表:


    # nistbladm -D access=og=rmcd,nw=r -c locale_tbl name=SI,nogw= 
    
    locale=,nogw= comment=,nogw= locale.org_dir.`nisdefaults -d` 
    
  3. 将所需项添加到 locale 中。


    # nistbladm -a name=name locale=locale comment=comment 
    
    locale.org_dir.`nisdefaults -d`
    

    name

    要为其预先配置缺省语言环境的域名或特定系统名。 

    locale

    要在系统上安装并在重新引导系统之后在桌面上使用的语言环境。第 40 章,语言环境值(参考)包含一个有效语言环境列表。

    comment

    注释字段。使用双引号来开始和结束多于一个字的注释。 


    注意:

    语言环境可从 Solaris 9 DVD 或 Solaris 9 Software 1 (1 of 2) CD 中获得。


    通过域指定的系统或分别在 locale 表中指定的系统现在设置为使用缺省语言环境。所指定的缺省语言环境将在安装过程中使用,并在重新引导系统之后由桌面使用。

预先配置 Power Management 信息

您可以使用在 Solaris 环境中提供的 Power Management 软件来自动保存系统的状态,并在其空闲 30 分钟后将其关闭。如果您是在符合 EPA 的 能源之星指南的第 2 版的系统(如 sun4u 系统)上安装 Solaris 9 软件,则会在默认情况下安装 Power Management 软件。然后,系统会在重新引导之后提示您启用还是禁用 Power Management 软件。

如果您正在执行交互式安装,则无法预先配置 Power Management 信息并避免出现提示。但是,通过使用定制 JumpStart 安装,您可以预先配置 Power Management 信息,方法是使用结束脚本在系统上创建 /autoshutdown/noautoshutdown 文件。当系统重新引导时,/autoshutdown 文件将启用 Power Management,而 /noautoshutdown 文件将禁用 Power Management。

例如,结束脚本中的以下行将启用 Power Management 软件并防止在系统重新引导之后显示提示信息。

touch /a/autoshutdown

结束脚本在“创建结束脚本”中进行了描述。