首页 > 代码库 > 第十周Linux

第十周Linux

1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)

CentOS主机按以下顺序启动

1、POST 加电自检

2、BIOS 读取CMOS中的BIOS设置的参数来识别基础硬件,寻找到启动设备

3、MBR

1)读取启动设备MBR中前446字节的bootloader

2)读取MBR后的扇区用来识别grub以及内核kernel所在的区域

3)启动grub

4、GRUB 显示菜单界面,选择运行内核kernel;配置文件是/boot/grub/grub.conf

1)提供菜单、并提供交互式接口

2)加载用户选择的内核或操作系统

3)为菜单提供了保护机制

5、KERNEL 自身初始化

1)探测可识别到的所有硬件设备

2)加载硬件驱动程序(有可能会借助于ramdisk加载驱动)

3)以只读方式挂载根文件系统

4)运行用户空间的第一个应用程序:/sbin/init

6、INIT

运行/sbin/init程序,配置文件/etc/inittab和/etc/init/*.conf 

设置默认运行级别 如id:3:initdefault

运行系统初始化脚本 /etc/rc.d/rc.sysinit

1)设置主机名;

2)设置欢迎信息;

3)激活udev和selinux

4)挂载/etc/fstab文件中定义的文件系统;

5)检测根文件系统,并以读写方式重新挂载根文件系统;

6)设置系统时钟;

7)激活swap设备;

8)根据/etc/sysctl.conf文件设置内核参数;

9)激活lvm及software raid设备

10)加载额外设备的驱动程序

11)清理操作

关闭对应的脚本中需要关闭的服务,启动需要启动服务(实际服务命令位于/etc/rc.d/init.d)

设置登录终端

2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;

  (1) 为硬盘新建两个主分区;并为其安装grub;

  (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;

  (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件;

  (4) 为grub提供配置文件;

  (5) 将新的硬盘设置为第一启动项并能够正常启动目标主机;

3、制作一个kickstart文件以及一个引导镜像。描述其过程。

4、写一个脚本

  (1) 能接受四个参数:start, stop, restart, status

   start: 输出“starting 脚本名 finished.”

   ...

  (2) 其它任意参数,均报错退出;

5、写一个脚本,判断给定的用户是否登录了当前系统;

  (1) 如果登录了,则显示用户登录,脚本终止;

  (2) 每3秒钟,查看一次用户是否登录;

6、写一个脚本,显示用户选定要查看的信息;

   cpu) display cpu info

   mem) display memory info

   disk) display disk info

   quit) quit

   非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;

7、写一个脚本

  (1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;

  (2) 提示用户输入一个用户名或输入“quit”退出;

    当输入的是用户名,则调用函数显示用户信息;

    当用户输入quit,则退出脚本;进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit: 

8、写一个脚本,完成如下功能(使用函数)

   (1) 提示用户输入一个可执行命令的名字;获取此命令依赖的所有库文件;

   (2) 复制命令文件至/mnt/sysroot目录下的对应的rootfs的路径上,例如,如果复制的文件原路径是/usr/bin/useradd,则复制到/mnt/sysroot/usr/bin/目录中;

   (3) 复制此命令依赖的各库文件至/mnt/sysroot目录下的对应的rootfs的路径上;规则同上面命令相关的要求;


本文出自 “追梦” 博客,请务必保留此出处http://sihua.blog.51cto.com/377227/1847485

第十周Linux