

Linux系统管理手册第二章习题实践
source link: https://blogread.cn/it/article/696?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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
就可以了。
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
Recommend
-
111
CentOS7中,系统自带的netfilter操作程序由iptables变为firewalld。firewalld引入了zone的概念,一、firewalld中的9个zonefirewalld这个模块zone这个概念指的二、firewalld的应用操作前,我们看下当前系统中应用的是哪种防火墙程序。systemctllist-units--all--typ...
-
102
Linux系统本身包含了很多服务,CentOS6之前系统的服务用SysV控制,CentOS7改为systemd控制一、chkconfig服务管理机制简而言之,chkconfig就是CentOS6以前用来控制系统服务的工具,常用方法举例chkconfig--list#列出所有的系统服务。chkconfig--addhttpd#增加httpd...
-
96
一、系统日志系统日志是我们了解系统状况,服务启动情况,学会阅读日志是我们了解系统运行状况并进行管理的基本技能。(一)/var/log/messages系统中的各种操作都会记录到系统日志中,日志储存在/var/log/目录中,日志会被系统的logrotate程序自动切割,就是日志文...
-
117
理论:1.常见文件系统Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap(交换分区)iso9660(光盘)Windows:fat32,ntfsUnix:FFS,UFS,JFS2网络文件系统:NFS,CIFS集群文件系统:GFS2,OCFS2分布式文件系统:ceph,moosefs,mogilefs,GlusterFS,Lustre在centos...
-
95
os, os.path, shutil, sys一瞥...
-
53
本文要点 如果做得好,模型驱动的软件开发(MDSD)可以局部地屏蔽一些复杂性,但是必须要将源码输出作为构建构件,并获取模板的所有权。维护代码生成模板是一种大多数开发人员都不太习惯的元编程。 12 要素应...
-
43
-
8
《Terraform 101 从入门到实践》 第二章 Providers插件管理 《Terraform 101 从入门到实践》这本书只将在南瓜慢说官方网站和
-
4
Linux系统管理技术手册第10章系统实践 浏览:2048次 出处信息 E10.1 保留老日志文件的主要理由是什...
-
2
南瓜慢说 www.pkslow.com 随笔 - 144, 文章 - 0, 评论 - 43, 阅读 - 21万
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK