首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux基础命令之: Linux启动过程详解

Linux基础命令之: Linux启动过程详解

1.确定用户登录模式        在“/etc/inittab”中列出了如下所示的登录模式,主要有单人维护模式、多用户无网络模式、文字界面多用户模式、X-Windows多用户模式等。其中的单人维护模式(run level为1)类似于Windows中的“安全模式”,在这种情况下,系统不加载复杂的模式从而使系统能够正常启动。在这些模式中最为常见的是3或5,其中本系统中默认的为5,也就是X-Windows多用户模式。以下是在“/etc/inittab”文件中设置系统启动模式的部分。

        # Default runlevel. The runlevels used by RHS are:
        #   0 - halt (Do NOT set initdefault to this)
        #   1 - Single user mode
        #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
        #   3 - Full multiuser mode (文本界面启动模式)
#   4 - unused
        #   5 - X11 (图形界面启动模式)
#   6 - reboot (Do NOT set initdefault to this)
        #
        id:5:initdefault:

        2.执行/etc/rc.d/rc.sysinit在确定了登录模式之后,就要开始将Linux的主机信息读入系统,其过程是通过运行“/etc/rc.d/rc.sysinit”脚本而完成的。查看此文件可以看出,在这里确定了默认路径、主机名称、“/etc/sysconfig/network”中所记录的网络信息等。以下是在“/etc/inittab”文件中运行该脚本的部分。

        # System initialization.
        si::sysinit:/etc/rc.d/rc.sysinit

        3.加载内核的外挂模块,执行各运行级别的脚本以及进入用户登录界面        在此,主要是读取模块加载配置文件(/etc/modules.conf),以确认需要加载哪些模块。接下来会根据不同的运行级(run level),通过带参数(运行级)运行“/etc/rc.d/rc”脚本,加载不同的模块,启动系统服务。init进程会等待(wait)“/etc/rc.d/rc”脚本的返回。系统还需要配置一些异常关机的处理部分,最后通过“/sbin/mingetty”打开几个虚拟终端(tty1~tty6),用于用户登录。如果运行级为5(图形界面启动),则运行xdm程序,给用户提供xdm图形界面的登录方式。如果在本地打开一个虚拟终端,当这个终端超时没有用户登录或者太久没有用户击键时,该终端会退出执行,脚本中的“respawn”即告诉init进程重新打开该终端,否则在经过一段时间之后,我们会发现这个终端消失了,无法利用ALT+Fn切换。
        以下是“/etc/inittab”文件中的相应部分。

l0:0:wait:/etc/rc.d/rc 0
        l1:1:wait:/etc/rc.d/rc 1
        l2:2:wait:/etc/rc.d/rc 2
        l3:3:wait:/etc/rc.d/rc 3
        l4:4:wait:/etc/rc.d/rc 4
        l5:5:wait:/etc/rc.d/rc 5
        l6:6:wait:/etc/rc.d/rc 6

        # Trap CTRL-ALT-DELETE
        ca::ctrlaltdel:/sbin/shutdown -t3 -r now

        # When our UPS tells us power has failed, assume we have a few minutes
        # of power left.  Schedule a shutdown for 2 minutes from now.
        # This does, of course, assume you have powerd installed and your
        # UPS connected and working correctly.  
        pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

        # If power was restored before the shutdown kicked in, cancel it.
        pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
        # Run gettys in standard runlevels
        1:2345:respawn:/sbin/mingetty tty1
        2:2345:respawn:/sbin/mingetty tty2
        3:2345:respawn:/sbin/mingetty tty3
        4:2345:respawn:/sbin/mingetty tty4
        5:2345:respawn:/sbin/mingetty tty5
        6:2345:respawn:/sbin/mingetty tty6
        # Run xdm in runlevel 5
        x:5:respawn:/etc/X11/prefdm -nodaemon
1.确定用户登录模式        在“/etc/inittab”中列出了如下所示的登录模式,主要有单人维护模式、多用户无网络模式、文字界面多用户模式、X-Windows多用户模式等。其中的单人维护模式(run level为1)类似于Windows中的“安全模式”,在这种情况下,系统不加载复杂的模式从而使系统能够正常启动。在这些模式中最为常见的是3或5,其中本系统中默认的为5,也就是X-Windows多用户模式。以下是在“/etc/inittab”文件中设置系统启动模式的部分。

        # Default runlevel. The runlevels used by RHS are:
        #   0 - halt (Do NOT set initdefault to this)
        #   1 - Single user mode
        #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
        #   3 - Full multiuser mode (文本界面启动模式)
#   4 - unused
        #   5 - X11 (图形界面启动模式)
#   6 - reboot (Do NOT set initdefault to this)
        #
        id:5:initdefault:

        2.执行/etc/rc.d/rc.sysinit在确定了登录模式之后,就要开始将Linux的主机信息读入系统,其过程是通过运行“/etc/rc.d/rc.sysinit”脚本而完成的。查看此文件可以看出,在这里确定了默认路径、主机名称、“/etc/sysconfig/network”中所记录的网络信息等。以下是在“/etc/inittab”文件中运行该脚本的部分。

        # System initialization.
        si::sysinit:/etc/rc.d/rc.sysinit

        3.加载内核的外挂模块,执行各运行级别的脚本以及进入用户登录界面        在此,主要是读取模块加载配置文件(/etc/modules.conf),以确认需要加载哪些模块。接下来会根据不同的运行级(run level),通过带参数(运行级)运行“/etc/rc.d/rc”脚本,加载不同的模块,启动系统服务。init进程会等待(wait)“/etc/rc.d/rc”脚本的返回。系统还需要配置一些异常关机的处理部分,最后通过“/sbin/mingetty”打开几个虚拟终端(tty1~tty6),用于用户登录。如果运行级为5(图形界面启动),则运行xdm程序,给用户提供xdm图形界面的登录方式。如果在本地打开一个虚拟终端,当这个终端超时没有用户登录或者太久没有用户击键时,该终端会退出执行,脚本中的“respawn”即告诉init进程重新打开该终端,否则在经过一段时间之后,我们会发现这个终端消失了,无法利用ALT+Fn切换。
        以下是“/etc/inittab”文件中的相应部分。

l0:0:wait:/etc/rc.d/rc 0
        l1:1:wait:/etc/rc.d/rc 1
        l2:2:wait:/etc/rc.d/rc 2
        l3:3:wait:/etc/rc.d/rc 3
        l4:4:wait:/etc/rc.d/rc 4
        l5:5:wait:/etc/rc.d/rc 5
        l6:6:wait:/etc/rc.d/rc 6

        # Trap CTRL-ALT-DELETE
        ca::ctrlaltdel:/sbin/shutdown -t3 -r now

        # When our UPS tells us power has failed, assume we have a few minutes
        # of power left.  Schedule a shutdown for 2 minutes from now.
        # This does, of course, assume you have powerd installed and your
        # UPS connected and working correctly.  
        pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

        # If power was restored before the shutdown kicked in, cancel it.
        pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
        # Run gettys in standard runlevels
        1:2345:respawn:/sbin/mingetty tty1
        2:2345:respawn:/sbin/mingetty tty2
        3:2345:respawn:/sbin/mingetty tty3
        4:2345:respawn:/sbin/mingetty tty4
        5:2345:respawn:/sbin/mingetty tty5
        6:2345:respawn:/sbin/mingetty tty6
        # Run xdm in runlevel 5
        x:5:respawn:/etc/X11/prefdm -nodaemon
返回列表