Linux系统管理手册第二章习题实践
- 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 & ### 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
就可以了。
建议继续学习:
- Linux系统管理手册习题实践 (阅读:2802)
- linux系统管理技术手册第十二章系统实践 (阅读:2343)
- Linux系统管理技术手册第10章系统实践 (阅读:2259)
- Linux系统管理技术手册第三章习题实践 (阅读:2208)
- Linux系统管理技术手册第五章习题实践 (阅读:2193)
- Linux系统管理技术手册第四章习题实践 (阅读:2164)
- Linux系统管理技术手册第十三章系统实践 (阅读:2076)
- Linux系统管理技术手册第8章习题实践 (阅读:1965)
- Linux系统管理技术手册第七章习题实践 (阅读:1889)
- Linux系统管理技术手册第六章习题实践 (阅读:1815)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:mlsx 来源: Linux|系统管理|WEB开发
- 标签: Linux系统管理技术手册 习题
- 发布时间:2009-11-24 23:16:51
- [69] Twitter/微博客的学习摘要
- [65] find命令的一点注意事项
- [64] IOS安全–浅谈关于IOS加固的几种方法
- [62] Go Reflect 性能
- [62] android 开发入门
- [61] 如何拿下简短的域名
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [58] 图书馆的世界纪录
- [58] 读书笔记-壹百度:百度十年千倍的29条法则