知识大全 Slackware Linux 101 在引导 Linux 机器时发生了什么

Posted 系统

篇首语:知识是为老年准备的最好食粮。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Slackware Linux 101 在引导 Linux 机器时发生了什么相关的知识,希望对你有一定的参考价值。

Slackware Linux 101 在引导 Linux 机器时发生了什么  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  作者 Joe Zonker Brockmeier (jbroc) 高级编辑 User Friendly Media  提要 Joe Brockmeier 研究了 Slackware Linux init 进程 他讨论了系统如何初始化服务 各种运行级别是什么 以及如何从缺省安装中添加或除去服务来定制系统       Linux 用户正日益成熟 这意味着他们想要将系统配置成执行他们希望完成的任务 但目前 Linux 发行版通常都附带了自动配置的设备和启动服务 如 Sendmail 或 Apache 这些发行版没有考虑到的是毫不更改其缺省设置来运行服务 如 Apache 用户毫不知情 会让黑客和利用脚本捣乱的人趁虚而入 而且这会用完本可以更好利用的系统资源 比如可以用于 Quake 或您喜欢的编译器的更多处理器时间 由于缺少控制是件 糟糕的事 因此让我们看一下 Linux 系统引导时在 init 进程期间 在所涉及的各个运行级别上都发生了什么 以及如何在系统运行时定制系统或在运行级别之间切换     我们的示例使用 x 平台上的 Slackware Linux 发行版(请参阅本文后面的参考资料) 大多数信息可用于其它 Linux 发行版 但在细节处会略有不同 尤其是 与其说 Slackware 的 init 结构类似于 System V 结构 还不如说它更类似于 BSD UNIX 结构 尽管 Slackware 的最新发行版中的程序做了一些让步 它们要将服务添加到启动 但期望这些服务是 System V 目录结构 (请参阅侧栏 BSD 和系统 V init 脚本之间的差异 )    所有进程的父代  当 Linux 机器引导时 究竟会发生什么?在计算机的 BIOS 完成其任务后 系统会读取硬盘(或软盘 或 CD ROM 或 Zip 驱动器……Linux 是非常灵活的)的第一位 并会遇到引导装入程序 虽然 GRUB 和其它装入程序也逐渐变得流行 但通常这就是 Linux 装入程序 (LInux LOader) 一般称作 LILO     然后 LILO 将 Linux 内核装入内存 并开始展示它的魔力 Linux 内核初始化了诸如 SCSI 卡之类的设备 以及其它内核中内置的硬件设备 然后内核运行 init 它是除内核之外在系统运行的第一个进程 如果执行 ps ax | grep 就会看到 init 的进程 ID (PID) 是     装入 init 之后 它会读取 inittab 以查看下一步做什么 inittab 告诉 init 要进入什么运行级别 以及在哪里可以找到该运行级别的配置文件     运行级别  运行级别是由系统上的所有服务在某个给定时间定义的(基本上是操作方式) Linux 可以有几种操作方式 单用户方式 单用户联网方式 多用户方式 始于 X 窗口的多用户方式 等等 这部分将要说明运行级别的概念 Slackware 上有哪些运行级别 已经它们被叫作什么     运行级别由数字或字母标明 可惜 不是所有的 Linux 发行版在各个运行级别的称呼问题上都能达成共识 在某些发行版中 运行级别 是使用 X 窗口登录的多用户方式 而其它的 如 Slackware 将运行级别 指定成使用控制台登录的多用户方式     据我所知 所有 Linux 发行版都认同运行级别 是 停机 运行级别 或 S 是单用户方式(稍后将详细说明) 运行级别 是重新引导系统 Slackware 的运行级别如下     运行级别 = 系统停机  运行级别 = 单用户方式 主要用于维护  运行级别 = 从不使用  运行级别 = 使用控制台登录的多用户方式  运行级别 = 使用 X 会话管理器的多用户方式 (XDM GDM KDM)  运行级别 = 从不使用  运行级别 = 重新引导  运行级别 S 或 s = 单用户方式    这里没有记录运行级别 到 在理论上 它们适用于在需要时定制运行级别 但我还没有亲自尝试过创建一个     BSD 和 System V init 脚本之间的差异  Slackware Linux 使用 BSD init 脚本说说挺容易 但这究竟表示什么?    仿真 BSD init 样式的 Linux 和 UNIX 系统有一个 /etc/rc d/ 目录 其中每个运行级别都包含一个 init 脚本 因此 如果要查看或修改运行级别 的 init 脚本 应该编辑文件 /etc/rc d/rc     另一方面 其 init 脚本基于 System V 的系统对于每个运行级别都有独立的目录 因此 如果要编辑运行级别 init 脚本 应查找 /etc/rc d/ 目录 并查找该目录中对应于要修改的服务的脚本     这个差异导致了 Berkeley Sofare Distribution (BSD) UNIX 和 AT&T System V UNIX 之间的设计差异 这两者都开创了各自的 UNIX 商业版本 它们连同 Vi 以及 Emacs 一起是计算机界的激烈争论之一     由于许多 Linux 发行版都喜欢 System V init 布局 Slackware 现在也附带了目录和 rc sysvinit init 脚本 用于保持兼容性     运行级别配置  如果您使用的不是 Slackware Linux 那么配置文件的结构与我谈到的结构会大不相同 除了 inittab 文件 所有 Slackware 的启动配置文件都在 /etc/rc d/ 目录中     缺省情况下 目录中有 个运行级别 rc * 脚本 如果将 symlink 从 rc 加到 rc 那么可有 个     运行级别 init 脚本是     rc = rc 文件是到 rc 的 symlink  rc M = 多用户运行级别 和 的 init 脚本  rc K = 管理 运行级别 单用户方式  rc S = 系统初始化脚本  rc = 运行级别 (自动引导入所选择的 X 会话管理器)的 init 脚本  rc = 重新引导或停止系统时由 init 执行的脚本    目录中的其余 rc * 文件用于启动诸如联网 内核模块 PCMCIA Samba Apache Netatalk 和 GPM 的系统服务 如果想要使某个服务(如 Apache)完全不能在任何运行级别上使用 请使用 chmod 将文件的许可权从可执行更改成不可执行 除去该文件也可以到达相同效果 但我不推荐这种做法 也许在以后某个日子您会发现要重新启用服务 但却不知道怎样做     rc inet 脚本负责启动基本联网服务 如设置主机名(IP 和 DHCP) rc inet 脚本负责启动所有其它 INET 服务 如 NFS 包转发 ssh 服务器和其它联网守护程序     所有 Slackware /etc/rc d/rc * 文件都是 Bash shell 脚本 都可以进行手工编辑 可是对于联网 您可能应该先尝试 netconfig 实用程序 虽然需要手工编辑 /etc/nf 来添加多个名称服务器 但是它也许能处理您想要执行的所有操作 而且它非常易于使用     如果您是 Linux 初学者并且要修改系统 那么也许应该确保您有引导软盘 并且应该复制您所有想要编辑的 rc * 文件 如果拿不定主意 我通常会将文件保存为 rc * old 使它们变成不可执行文件     使用运行的系统  好 现在系统已经运行 然而您需要在单用户方式中执行一些操作 该怎么做呢?本文的下一部分将说明如何在系统运行时更改运行级别 而不是通过重新引导来更改运行级别 而且还说明了为什么执行此操作以及何时执行     telinit 命令 在运行的系统上更改运行级别  telinit 命令可以用于更改运行级别 当以 root 身份执行 telinit S(或者想要更改的任意运行级别)时 它会更改运行级别 关闭前一个运行级别 然后启动下一个     某种程度上您正在重新引导系统的一部分 然而 关闭与重新启动服务的能力正是 Linux 最可爱的品质之一 想要更改机器的 IP 地址吗?没问题 只要进行一些更改 然后重新启动联网服务就行了 只要一切配置正确 备份和运行是如此迅速 很难分辩是否做过更改 在其它即使更改了桌面上的墙纸都必须重新引导的操作系统上 尝试一下执行此操作    确实需要重新引导或彻底关闭 Linux 机器的唯一情况是如果正在添加或更改硬件 假设您正在使用不能热插拔的设备 或者已经中断且需要使机器脱机以修复损坏 与其它操作系统不同 对于那些不经过重新引导就无法解决问题的产品系统 我从来没有看到过重新引导解决了这些系统上的问题 我曾设法利用诸如 hdparm 的命令来挂起非生产性机器 我希望这种情况发生     假设您想要执行一些系统维护 而这些系统维护要求系统处于单用户方式 例如 使用 hdparm 调整硬盘 第一步是 su(切换)到 root 用户     然后执行 telinit 命令使系统进入单用户方式     telinit S t     自变量 t 是可选的 它告诉 telinit 在真正切换到单用户方式之前等待 秒 然而 只要执行了该命令 登录到机器的任何人都会看到在控制台上出现一个警告 指出系统将切换运行级别或将在 秒内停机     到了 秒时 init 会关闭单用户方式中不使用的进程 并使系统进入单用户方式 然后 将提示您输入 root 用户密码以执行系统维护     系统进入单用户方式所使用的进程略有不同 缺省情况下 单用户方式要求 init 在控制台上调用 sulogin 命令 并要求在单用户方式中使用 root 登录     系统进入单用户方式后 应该会看到如下的消息     Give root password for system maintenance  (or type Control D for normal startup):    执行了维护之后 可以执行以下命令来使系统回到以前的运行级别     telinit     此命令告诉系统重新进入多用户运行级别 在此命令中可以用 或 来代替 在 Slackware 系统上 运行级别 将使您进入使用 X 窗口显示管理器之一的多用户方式 因此您将直接登录到 X 窗口     如果在拥有串行电缆的串行上挂了 UPS 那么就可以让 UPS 在断电的情况下向系统发送一个信号 如果您的产品级系统有一个很大的文件系统 那么这是非常有用的 我曾看到过当没 cha138/Article/program/Oracle/201311/18222

相关参考

知识大全 nt与linux共存完全解决方案

  NT和Linux共存的最简单的方法就是在安装linux的lilo时选择将lilo安装在Linux主分区的引导区中然后使用win的启动盘重新启动以后运行fdisk将linux主分区设置为active

知识大全 用发行版光盘引导修复lilo

  作者HopeCao    近来关于不少帖子问:重装xp或其他系统后mbr被重写无法引导进入linux该怎么办?  如果手头上有安装时做的引导盘问题不大用软盘引导进入系统后重写引导管理器就可以了;但

知识大全 grub的使用

  安装grub      如果已经安装了蓝点Linux则grub是默认安装的要把grub重新安装到主引导扇区上只需要简单打入makebootable命令就可以了    制作grub启动盘      

知识大全 red hat liunx的几点小技巧

  .开机启动时自动运行程序      Linux加载后它将初始化硬件和设备驱动然后运行第一个进程initinit根据配置文件继续引导过程启动其它进程通常情况下修改放置在/etc/rc或/etc/rc

高产抗条纹叶枯病水稻新品种“京花101”

京花101系北京农林科学院作物所1987年育成的抗条纹叶枯病水稻品种。一、品种特性京花101在京、津、唐、保等地区做一季稻种植时,全生育期165~170天,在邯郸以南、豫北、山东等地做麦茬稻种植时,全

高产抗条纹叶枯病水稻新品种“京花101”

京花101系北京农林科学院作物所1987年育成的抗条纹叶枯病水稻品种。一、品种特性京花101在京、津、唐、保等地区做一季稻种植时,全生育期165~170天,在邯郸以南、豫北、山东等地做麦茬稻种植时,全

知识大全 繁星春水101至110则

繁星春水101至110则执一枝带有春雨的花朵,让她开在心屋。放下浮就为了彼此盛大的遇见。幸福、信仰、论凋零,还是盛开,我依守,尘世暖暖的风景,还有我淡淡的一生。在喧嚣的尘世中安静地独错过了你最美的瞬间

知识大全 在Linux下增加硬盘

在Linux下增加硬盘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问我使用的是Linux系统

知识大全 sublime text 3 在linux怎么安装

sublimetext3在linux怎么安装不同的linux版本安装的方法都是不一样的。ubuntu为例直接apt-getinstall就可以安装的在linux下怎么安装sublimetext2安装方

知识大全 在Linux中实现流量控制

在Linux中实现流量控制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要: Linux从k