What You See Is What You Get Element

如何初始化 Oracle Linux 系统

SUSE Linux 到 Oracle Linux 迁移指南

作者:Manik Ahuja 和 Kamal Dodeja

本文是 Oracle Linux 与 SUSE Linux 比较和对比系列的第 1 部分,介绍软件注册、启动和系统初始化。


2013 年 7 月发布

想对本文发表评论吗?请将链接发布在 Facebook 的 OTN Garage 页面上。有类似文章要分享?请将其发布在 Facebook 或 Twitter 上,我们来进行讨论。
软件支持中心
在 Unbreakable Linux Network 注册和更新 Oracle Linux 6
在 Novell Customer Center 注册和更新 SUSE Linux Enterprise
启动与系统初始化
另请参见
关于作者

本文是一个由六部分组成的系列的第 1 部分,其目的是帮助 SUSE Linux 管理员快速了解并执行 Oracle Linux 上的日常系统管理任务。

该系列概括了 Linux 系统管理主要领域之间的相似点和区别,例如,文件系统差异、启动序列、配置常用后台程序(如邮件和 Web)以及软件包管理。纵观整个系列,您将发现实际配置示例以及实现特定目标所需的步骤。这些示例可重复用于 Oracle Linux 和 SUSE Linux。

阅读该系列文章后,您不仅能够辨别两个操作系统之间的微妙差异,还能轻松执行日常任务。该系列还将帮助您降低从 SUSE Linux 迁移到 Oracle Linux 所带来的任何风险。

在该系列中,Oracle Linux 6.1 和 SUSE Linux Enterprise Server 11 作为两个基本操作系统进行比较。所有配置示例和解释说明均基于 Oracle Linux 6.1 或 SUSE Linux Enterprise Server。

软件支持中心

每个操作系统厂商都提供一个支持中心,用于注册系统以及下载最新更新、安全补丁和勘误表。Oracle 针对 Oracle Linux 提供了 Unbreakable Linux Network,SUSE 通过 Novell Customer Center (NCC) 提供支持服务订阅、Linux 软件补丁、更新和修复程序。

以下内容概要介绍如何配置 Unbreakable Linux Network 和 NCC 才能获取软件包、更新和勘误表。

在 Unbreakable Linux Network 注册和更新 Oracle Linux 6

安装 Oracle Linux 6 操作系统后,首先应在 Unbreakable Linux Network 注册您的服务器。Unbreakable Linux Network 是面向 Oracle Linux 支持订阅用户的综合资源,提供 Linux 软件补丁、更新和修复程序。可通过 https://linux.oracle.com/ 访问 Unbreakable Linux Network。

注册 Oracle Linux 6 服务器

要在 Unbreakable Linux Network 注册 Oracle Linux 6 服务器,请执行以下步骤。整个过程简单易懂。

首先,确保您的系统能够访问互联网。Unbreakable Linux Network 要求端口 80 和 443 可用于正在注册的服务器和 Unbreakable Linux Network 之间的通信。与网络管理员合作,确保正在注册的服务器能够访问 Unbreakable Linux Network。

接下来,启动一个终端会话,以 root 用户身份执行以下命令:

.# uln_register

然后,您应看到图 1 所示的欢迎屏幕。

Unbreakable Linux Network 欢迎屏幕

图 1. Unbreakable Linux Network 欢迎屏幕

在欢迎屏幕中输入身份验证详细信息。

访问 http://linux.oracle.com/register,您可以获得该屏幕上要求的 Unbreakable Linux Network 登录 ID。

您还需要输入购买 Oracle Linux 支持服务订阅时提供的有效 Oracle Linux 支持服务客户支持服务标识 (CSI)。联系 Oracle 销售代表,了解如何购买 Oracle Linux 支持服务订阅。还可通过 oracle.com/linux 上的 Oracle Linux Store 在线购买 Oracle Linux 支持服务。

有了 CSI 后,您将能够创建 Unbreakable Linux Network 登录 ID,访问 Oracle Linux 支持服务、Linux 软件补丁、更新和修复程序。您还可以根据所选的支持服务级别提升客户支持服务计划。

提供登录详细信息后,单击 Advanced Network Configuration,输入代理详细信息(如果有的话)。然后,依次单击 CloseForward 进入下一步。

Unbreakable Linux Network 的 Advanced Network Configuration 屏幕

图 2. Unbreakable Linux Network 的 Advanced Network Configuration 屏幕

如果登录详细信息正确,您将看到以下屏幕。

Unbreakable Linux Network 系统配置文件屏幕

图 3. Unbreakable Linux Network 系统配置文件屏幕

单击 Forward 后,此过程将收集正在注册的服务器的硬件和软件包信息,并将其发送至 Unbreakable Linux Network。必须这样才能确保相应的数据包可供服务器使用。这还有助于识别正在注册的服务器,以便稍后维护和管理其状态。

Unbreakable Linux Network 进度对话框

图 4. Unbreakable Linux Network 进度对话框

下一个屏幕显示该系统可用的频道。

Unbreakable Linux Network 频道订阅屏幕

图 5. Unbreakable Linux Network 频道订阅屏幕

单击 Finish 完成注册过程。

Unbreakable Linux Network 完成设置屏幕

图 6. Unbreakable Linux Network 完成设置屏幕

管理订阅

注册服务器后,您可以访问 Unbreakable Linux Network 查看、编辑和管理订阅。为此,执行以下步骤:

  1. 打开一个支持 Java 的 Web 浏览器,输入 https://linux.oracle.com
  2. 单击 Sign On 登录 Unbreakable Linux Network,查看已注册系统的详细信息和管理订阅。

    Unbreakable Linux Network 登录屏幕

    图 7. Unbreakable Linux Network 登录屏幕

  3. 使用有效的用户名和口令登录 Unbreakable Linux Network。

    Unbreakable Linux Network 登录

    图 8. Unbreakable Linux Network 登录

  4. 单击 Home 选项卡,查看已注册系统的详细信息、操作系统版本、注册日期和频道名称。

    Home 选项卡

    图 9. Home 选项卡

  5. 单击 Systems 选项卡,查看已注册系统的详细信息,如系统主机名称、CSI 编号、订阅频道数量和 Ksplice 访问密钥(如果您拥有 Oracle 标准支持服务)。

    Systems 选项卡

    图 10. Systems 选项卡

  6. 转至 Systems -> System Detail,查看系统详细信息。要从 Unbreakable Linux Network 取消订阅系统,请单击 Delete

    System Detail 屏幕

    图 11. System Detail 屏幕

  7. 要管理频道订阅,请单击 Manage Subscription

    根据您的系统配置和支持服务级别,您将能够访问各种 Unbreakable Linux Network 频道。作为 Oracle Linux 标准支持服务客户,您还能获得 Ksplice 技术,并且可以订阅 Ksplice 频道。Ksplice 频道提供内核更新,可实时应用于正在运行的 Oracle Unbreakable Enterprise Kernel。这对 Oracle Linux 客户来说是一项显著的优势:客户无需停机就能更新正在运行的系统的内核。您可以在 http://oss.oracle.com/ksplice/docs/ksplice-quickstart.pdforacle.com/linux 了解有关 Ksplice 的更多信息。

    Manage Subscriptions 屏幕

    图 12. Manage Subscriptions 屏幕

  8. 现在,您可以根据需要添加或删除频道订阅。图 12 中的示例为您之前注册的服务器上添加了“Latest Unbreakable Enterprise Kernel for Oracle Linux 6 (x86_64)”频道。同样,您可以添加其他频道。可用频道列表视您已注册的支持服务级别而定。要访问特定频道或频道组,请联系您的 Oracle 销售代表。

在 Novell Customer Center 注册和更新 SUSE Linux Enterprise

Novell Customer Center (NCC) 是一个集中化工具,用于管理产品和订阅以及系统和管理员。有关 NCC 的更多信息,请参见 www.novell.com/customercenter/。在 NCC 注册 SUSE Linux Enterprise (SLE) 计算机可将系统添加到 NCC 以便管理,使系统能够接收在线更新。可以在 SLE 安装过程中或安装之后注册计算机。

在安装过程中注册

配置和测试网络后,在安装过程中执行 NCC 注册。如果未配置和测试网络,将跳过 NCC 配置。要在 NCC 上注册,请选择 Configure Now (Recommended),在 Novell Customer Center Configuration 屏幕中单击 Next。要跳过配置,稍后执行,请选择 Configure Later

Novell Customer Center Configuration 屏幕

图 13. Novell Customer Center Configuration 屏幕

在安装后注册

如果在安装过程中有意或因为网络问题跳过 NCC 配置,稍后均可执行配置。要注册,请执行以下操作:

  1. 启动 YaST。
  2. 选择 Software -> Novell Customer Center Configuration

     YaST Control Center 屏幕

    图 14. YaST Control Center 屏幕

  3. 按照向导上的说明执行操作。

     Novell Customer Center Configuration 屏幕的另一个视图

    图 15. Novell Customer Center Configuration 屏幕的另一个视图

启动与系统初始化

Linux 启动过程是 Linux 操作系统初始化的过程。在 Linux 中,启动过程中的控制流将从计算机 BIOS 移交至引导加载程序,最后移交至内核。然后,内核会启动调度程序(允许多任务),运行第一个用户环境(在内核空间外)程序 — init(主要负责针对每个运行级别运行启动脚本)。此时,如果外部程序不进行调用,内核将处于空闲状态。init(initialization 的缩写)程序面向基于 Linux 的计算机操作系统,可以生成所有其他进程。

启动过程

启动过程分为几个阶段。

  • BIOS 检查系统和外围设备,找到并运行主引导记录 (MBR)。
  • MBR 加载 Grand Unified Bootloader (GRUB)。
  • GRUB 使用 /boot/grub/menu.lst 中的信息引导内核。
  • 内核开始初始化设备,从 initrd 映像加载其他设备,然后从 /sbin/init 启动 init 进程。
  • init 进程根据 /etc/inittab 文件启动其他进程。
  • Oracle Linux 中的 /etc/rc.d/rc 或 SUSE 中的 /etc/init.d/rc 运行相应的 /etc/rcX.d 脚本启动其他组件。

默认内核位置为 /boot,其中包含内核和 initrd 映像。

默认内核模块位置为 /lib/modules/'uname -r'/

运行级别

表 1. 运行级别
运行级别 说明
S 或 s SUSE Linux 中的基本单用户模式。在 Oracle Linux 中,与 init 级别 1 相同。
0 关机状态。关闭操作系统,尝试关闭电源(如果系统支持)。
1 单用户模式。
2 无 NFS 资源共享的多用户。仅文本登录。
3 有 NFS 资源共享的多用户。仅文本登录。
4 无描述(替代多用户)。
5 完全多用户、NFS 资源共享以及通过 X 显示管理器实现的图形登录。
6 重新启动。
紧急 忽略 /etc/inittab 文件,启动默认 shell。

启动配置文件

启动配置涉及多个文件。

  • /etc/inittab 文件:当内核加载 /sbin/init 程序时,它读取 /etc/inittab 文件,看看默认运行级别是什么、需要运行哪些脚本。初始化后,无论管理员何时更改系统的运行级别,都会使用该文件中的信息。

    如果您修改 /etc/inittab 文件并且想指示 init 重新加载该文件,可以通过 init qinit Q 命令执行此操作。

  • 运行控制 (rc) 文件:每个运行级别都一套与之相关的脚本,叫作 运行控制文件rc 文件

    与每个运行级别相关的脚本目录在 Oralce Linux 中为 /etc/rcX.d/,在 SUSE Linux 中为 /etc/init.d/rcX.d,其中 X 代表运行级别。通常,这些目录中的脚本大部分是 /etc/init.d/ 主要服务脚本的符号链接。

    例如,在 Oracle Linux 中,/etc/rc3.d/S80sendmail/init.d/sendmail 脚本的符号链接,/etc/rc1.d/K30sendmail 是相同脚本的符号链接。

    Oracle Linux 针对每个运行级别仅提供一套脚本,也就是说,对于运行级别 3,init 程序仅运行适用于运行级别 3 的脚本来达到其目标运行级别,而不运行更低运行级别的脚本。请特别注意您手动存放 rc 脚本的位置。

    在 Oracle Linux 中,通过将参数 restartstatus 传递给 /etc/init.d directory 中的服务脚本,可重新启动大多数服务或查看其状态:

    # /etc/init.d/sendmail restart
    # /etc/init.d/sendmail status
    

    以不带任何选项的方式运行脚本可列出该特定脚本支持的选项:

    # /etc/init.d/sendmail
    
    Usage: /etc/init.d/sendmail {start|stop|restart|condrestart|status}
    

禁用 RC 脚本

有时,您可能需要阻止某些服务在启动时初始化时自动运行。在 Linux 中,可以使用 chkconfig 命令或 GUI 程序,例如,在 Oracle Linux 中使用系统配置服务,在 SUSE Linux 中使用来自 YaST2 的系统/运行级别编辑器模块。

作为一个相当普遍的做法,系统管理员通常在安装过程中禁用 iptables 服务。该服务提供一种保护操作系统免遭网络相关威胁攻击的方法。一旦 Linux 服务器的配置完全符合要求,配置一套合适的 iptables 规则并启用 iptables 服务是一个不错的主意。

以下信息首先概述了 chkconfig 命令,演示了如何利用该命令查看各种 Linux 服务的当前状态。然后,下一节举例说明如何配置一些 iptables 规则示例,让 iptables 服务在启动序列中自动启动。

通过 ckhconfig -- list 命令,您可以查看 Oracle Linux 服务器上各种服务的当前启动时状态,如清单 1 所示。

# chkconfig -- list
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
...
...
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
...
...
SUSE Linux to Oracle Linux: Guide for System Administrators
17
...
...

清单 1

在清单 1 中,您可以看到

  • abrtd 服务设置为在运行级别 3 和 5 自动启动。
  • acpid 服务设置为在所有运行级别保持关闭状态。
  • atd 服务被设置在运行级别 3、4 和 5 自动启动。
  • iptables 服务设置为在所有运行级别保持关闭状态。
  • 添加一些 iptables 规则,然后让 iptables 服务在启动序列中自动启动,这将阐释启动序列。

iptables 的完整概述不在本文的讨论范围内,不过您可以参考 Netfilter 上的文档和 iptables(8),了解更多信息。

iptables 示例

该示例向 iptables 添加规则,丢弃所有传入连接,但允许源自服务器的传出流量。

# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -L -v -n
### *** now ping and wget should work *** ###
# ping oracle.com
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

此时,iptables 规则在内存中运行,但它们将在服务器重新启动时丢失。要在重新启动后恢复这些规则,请使用以下命令将它们保存到文件中。

# /sbin/service iptables save

注意,以上命令仅当 iptables init 脚本出现在 /etc/init 目录中时运行。init 脚本包括在发行版中,在安装过程中安装。

成功执行以上命令后,iptables init 脚本运行 /sbin/iptables-save 程序,将当前 iptables 配置写入 /etc/sysconfig/iptables 文件。任何现有的 /etc/sysconfig/iptables 文件都将另存为 /etc/sysconfig/iptables.save

最后一步是让 iptables 在每次重新启动时自动启动,并调用 /etc/sysconfig/iptables 文件加载您之前保存的 iptables 规则。为此,请执行以下命令:

# chkconfig --add iptables

无论是向 chkconfig 控制添加服务还是从中删除服务,都会在 /etc/rc.d 子目录下执行以下操作:

  • 执行 chkconfig --add 命令时,它会创建一个符号链接文件,在相应的 rc 目录下启动和停止服务。
  • 执行 chkconfig --del 命令时,它会从相应的 rc 命令中删除符号链接文件。

要确认已成功添加 iptables 服务,可使用以下命令:

# chkconfig --list | grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

您可以看到,iptables 服务现在已设置为在启动时自动启动,当系统在运行级别 3、4 或 5 启动时将运行。通过 chkconfig 实用程序添加服务时,这是默认行为。

还可以使用 chkconfig 实用程序以各种其他方式管理启动服务。下面列出了更多示例供快速参考:

  • 要查看配置为在系统启动过程中在运行级别 3 运行的其他服务,可执行以下命令:

    # chkconfig --list | grep 3:on
    
  • 要查看特定服务的设置,请使用 grep 筛选针该服务的 chkconfig --list 输出。例如,要查看网络服务,请使用以下命令:

    # chkconfig --list | grep network
    

关闭

shutdownreboothaltpoweroffinit 命令在 Oracle Linux 和 SUSE Linux 中都存在:

  • init 6        reboot
    
  • init 0        shutdown/halt/poweroff
    

另请参见

关于作者

Manik Ahuja 是 Oracle Linux 和 Oracle VM 产品的全球销售咨询总监。在过去 18 年间,他一直为客户提供技术咨询解决方案。除了提供售前解决方案外,他还为各种 Linux 和开源产品构建和管理产品与服务组合。他是公认的开源产品专家,经常为各种 IT 杂志撰写技术文章。他擅长的领域包括设计和实施高可用性集群、数据中心整合以及基于云的解决方案。

Kamal Dodeja 是 Oracle Linux 销售咨询团队的首席顾问和资深成员。他拥有计算机应用专业硕士学位,具有超过 10 年的 IT 经验。Kamal 擅长设计和实施高度优化的 Linux 和虚拟化解决方案。他经常主持召开概念验证研讨会,为世界各地的潜在客户提供售前支持。

修订版 1.0,2013 年 4 月 24 日

关注我们:
博客 | Facebook | Twitter | YouTube