技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> Linux系统管理手册第二章习题实践

Linux系统管理手册第二章习题实践

浏览:1769次  出处信息
  • E2.1 为什么在安装LILO引导加载程序之前先运行lilo -t很重要?该怎样引导一个名字不是vmlinuz的内核?

A: 任何引导程序在加载到MBR之前都应该检查配置文件的正确性,对于没有引导时可编辑特性的LILO更应如此,因此在执行lilo或者lilo -v 之前,先执行lilo -t 来测试配置文件的正确性是一个良好的习惯。引导配置/etc/lilo.conf里可以通过image指令来指定内核的名字,和内核具体的命名没有关系。

  • E2.2 为什么不应该用计算机机箱上的电源开关来关闭Linux系统?有什么别的办法来替代?

A: 似乎很多人觉得Linux的文件系统不够健壮,因为一次意外的掉电或者非法关机都会导致文件系统损毁,从而无法正常引导系统。所以,正确的关闭Linux系统是非常重要的。遗憾的是,目前Linux在ACPI方面支持得并不太好,所以有些机器不同通过直接按电源按钮来触发系统正常关闭。这种情况下,使用正确的关机指令很重要,比如shutdown -h now,init 0,poweroff等指令都能正常关闭系统。

  • E2.3 用grub命令行引导一个grub.conf里没有的内核?

A: 这就是考察对grub命令行的掌握了,在出现grub引导界面时,按字母c,进入grub命令行,然后依次输入
root (hdX,Y)
kernel /vmlinuz-<version> root=LABEL=<label> [ options ]
initrd /initrd-<version>
boot
就可以引导你指定的内核。

  • ♥ E2.4 试述运行级的概念,列出Linux定义的运行级,并简短描述每一个运行级。运行级1和S有什么区别?

A:运行级是Linux系统定义的进入系统不同状态的一个描述,每一个运行级用来补充运行特定的服务。目前,Linux定义了0-6,S/single,emergency等9个运行级别。分别描述如下:

0 关机,永远不要设置它为默认运行级别
1 单用户模式,用于系统紧急恢复,备份等特殊情况
2 多用户,没有NFS支持
3 全特征多用户文字模式
4 保留
5 全特征图形模式(X11)
6 重启,永远不要设置它为默认运行级别
s,S,Single 单用户模式的另外一个选择,但是有区别
emergency 绕过rc.sysinit,执行sulogin

运行级1关闭所有的多用户和远程登录进程,确保系统运行在最小的软件组合模式下。而S仅仅是提供一个用户输入root口令的提示,而它本身不是最终的运行目的。

  • ♥ E2.5 编写一个启动脚本,启动名为“foot”的守护进程(/usr/local/sbin/foo),它是一项网络服务。说明如何把它融入系统,在引导时刻自动启动。

A:脚本模型如下:

#cat /etc/init.d/foo
 
#!/bin/bash
#
# chkconfig: 35 90 12
# description: Foo server
#
 
# Get function from functions library
. /etc/init.d/functions
 
# Start the service foo
start() {
        initlog -c "echo -n Starting foo server: "
        /usr/local/sbin/foo &amp;
        ### Create the lock file ###
        touch /var/lock/subsys/foo
        success $"FOO server startup"
        echo
}
 
# Restart the service foo
stop() {
        initlog -c "echo -n Stopping foo server: "
        killproc foo
        ### Now, delete the lock file ###
        rm -f /var/lock/subsys/foo
        echo
}
 
### main logic ###
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status foo
        ;;
  restart|reload|condrestart)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 1
esac
 
exit 0

对于R系统,使用chkconfig -add foo 方式添加到系统里,如何使用chkconfig -level 的方式设定每一个运行级别的启动停止选项。对于D系统,脚本头需要加入一些LSB的信息进去,类似如下:

### BEGIN INIT INFO
# Provides:          foo
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

而后使用update-rc.d foo default,先加入到系统中,最后使用update-rc.d foo start 0123 stop 456来设定个运行级的启动停止情况。

  • ♥ E2.6 取得并安装mactime程序。运行mactime(它是TCT工具集的一部分),创建一个域文件系统相关联的时间戳初始数据库。重启机器。再次运行mactime,判断因为引导机器而被修改的文件有哪些,哪些文件访问了而没有修改?(需要root权限)

A:对于D系统,可以使用sudo apt-get install tct来安装tct工具集。对于R系统,如果yum仓库里没有,就从官方站点http://www.porcupine.org/forensics/tct.html 下载最新的版本并编译。
mactime需要配合TCT工具集里的其他程序一起使用,因此我打算找一个时间单独说说TCT以及TCT的补充工具集。

  • ♥♥ E2.7 如果一个系统处于运行级4,而用户运行了命令telinit 1,init会采取哪些步骤?命令最终的结果将会是什么样子?

A:简单的来说,执行telinit 1指令,需要两个阶段的工作要做。第一个阶段是将当前运行级(即运行级4)的所有已经运行的服务停止,也就是所有/etc/rc.d/rc3.d/(Debian是/etc/rc3.d/)下所有S开头的服务,执行对应的K开头的脚本。完成这个步骤后。转入到/etc/rc.d/rc1.d/(Debian是/etc/rc1.d/),执行所有S开头的服务。
执行后完,系统进入到单用户模式。

  • ♥♥ E2.8 绘制一张依赖关系图,画出在您的Linux系统上启动别的守护进程之前,必须启动哪些守护进程?

A: 手工做这件事情,不是不可以,但是显然很累。我目前想到的一个办法是用bootchart这个记录系统启动时间的工具,虽然它的功能是分析系统启动时,各服务所占用的时间,不过它绘制的图,也同事暗示了各服务的依赖关系。比如这个链接地址(http://www.bootchart.org/images/bootchart.debian.mcrae.0.png),图片太大,就不粘贴到这里了。

  • ♥♥ E2.9 顺序列出创建一个能工作的多OS系统-包含Linux和Windows-所用到的步骤。使用GRUB和Windows的引导加载程序

A:只要是包含了Windows的多OS系统,一定要先安装Windows系统,因为Windows的ntldr程序太霸道,只认自家系统的引导程序,别的一律删除。因此安装完Windows后,然后再安装Linux,绝大部分发行版本在安装的过程中,都能顺利识别出当前机器已经安装的OS,并在其引导配置文件里加入对应的启动入口。无论是GRUB还是LILO均能完成这个功能。如果没有。只需要在GRUB里,加入类似下面的几行:
title windows
rootnoverify (hd0,1)
chainloader +1
就可以了。

建议继续学习:

  1. Linux系统管理手册习题实践    (阅读:2802)
  2. linux系统管理技术手册第十二章系统实践    (阅读:2343)
  3. Linux系统管理技术手册第10章系统实践    (阅读:2259)
  4. Linux系统管理技术手册第三章习题实践    (阅读:2208)
  5. Linux系统管理技术手册第五章习题实践    (阅读:2193)
  6. Linux系统管理技术手册第四章习题实践    (阅读:2164)
  7. Linux系统管理技术手册第十三章系统实践    (阅读:2076)
  8. Linux系统管理技术手册第8章习题实践    (阅读:1965)
  9. Linux系统管理技术手册第七章习题实践    (阅读:1889)
  10. Linux系统管理技术手册第六章习题实践    (阅读:1815)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1