马哥教育网络班19期+第十周课程练习

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

POST

BIOS加电自检,检查CPU,内存等硬件是否正常,

–>Bootsequence(BIOS)

通过引导次序,找到第一块有引导程序的设备,即完成。不管失败与否,

–>Bootloader(MBR)

引导加载器程序,位于MBR前446字节,由操作系统提供,windows为ntloader,linux为grub,

功能:提供菜单,允许用户选择要启动的系统和不同的内核版本,把选定的内核装载到内存指定的空间解压展开,并把控制权交给内核。

–>Kernel(ramdisk)

kernel自身初始化,探测所有设备,加载硬盘驱动、以只读方式挂载根文件系统,运行用户空间的第一个程序/sbin/init

–>rootfs(readonly)


–>/sbin/init

/sbin/init(/etc/rc.d/rc.sysinit — rc#.d–rc.local–/bin/local)

kernel自身初始化,探测所有设备,加载硬盘驱动、以只读方式挂载根文件系统,运行用户空间的第一个程序/sbin/init

Centos 5  SysV风格的启动方式

1>运行/etc/inittab 设定运行级别 
    /etc/rc.d/保存rc1~6.d的目录,每个目录对应相应级别,目录脚本全部链接到/etc/init.d/下面

    相应级别目录下对应K*和S*开头的脚本,根据对应级别启动和停止相应脚本。

2>/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) 清理操作;


Centos 6 upstart启动风格

       /etc/inittab,  运行级别配置文件

       /etc/init/*.conf   启动脚本来决定/etc/init.d/下的哪些服务器启动与否

       /etc/init.d/启动脚本和/etc/rc.d/init.d/一样


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

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

添加一块硬盘,创建2个分区,避免与/boot冲突,/dev/sdb1;/dev/sdb2

格式化并挂载分区/mnt/boot;/mnt/rootfs

grub-install –root-directory=/mnt/ /dev/sdb  #安装grub 指定根路径和磁盘

马哥教育网络班19期+第十周课程练习cf828d5273c8466ca20458f436259bc7.jpg

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

拷贝/boot/目录下的内核文件和ramdisk文件 至/mnt/boot/下

马哥教育网络班19期+第十周课程练习96423f8ecb554f39887b859d4d046509.jpg

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

创建和根目录相同的目录文件

拷贝/bin/ls /bin/bash /bin/cat 至/mnt/boot 对应的目录内

ldd 命令查询ls,bash,cat 对应的库文件,拷贝至/mnt/boot对应目录

马哥教育网络班19期+第十周课程练习clipboard.png

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

指定内核root=/dev/sda2根目录 启动程序init=/bin/bash

马哥教育网络班19期+第十周课程练习clipboard.png

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

新建虚拟机使用现有磁盘 

马哥教育网络班19期+第十周课程练习clipboard.png

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

kickstart文件的格式:

  命令段:指明各种安装前配置,如键盘类型等;

  程序包段:指明要安装的程序包组或程序包,不安装的程序包等;

   %packages  开始

   @group_name

   package

   -package

   %end 结束

  脚本段:

   %pre: 安装前脚本

    运行环境:运行于安装介质上的微型Linux环境 isolinux/anaconda

   %post: 安装后脚本

    运行环境:安装完成的系统; 支持所有shell 脚本。

创建引导光盘:无服务器情况下,

   # mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/

   也要自己指定KS文件。在本身光盘上。

   boot:linux ks=cdrom:/myks.cfg

   可以直接写道linux.cfg 配置内的

   append initrd=initrd.img ks=cdrom:/myks.cfg 

4、写一个脚本

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

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

   …

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

clipboard.png

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

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

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

马哥教育网络班19期+第十周课程练习clipboard.png


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

   cpu) display cpu info

   mem) display memory info

   disk) display disk info

   quit) quit

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

马哥教育网络班19期+第十周课程练习clipboard.png


7、写一个脚本

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

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

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

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

马哥教育网络班19期+第十周课程练习clipboard.png


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

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

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

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

08337353fd67467e9fa57f24234ee6f5.jpg



原创文章,作者:Net19_Lam,如若转载,请注明出处:http://www.178linux.com/25146

(0)
Net19_LamNet19_Lam
上一篇 2016-07-21
下一篇 2016-07-22

相关推荐

  • 数据结构- 串的模式匹配算法:BF和 KMP算法

    Brute-Force算法的思想 1.BF(Brute-Force)算法   Brute-Force算法的基本思想是: 1) 从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s 的第二个字符起再重新和串t进行比较。 2) 依此类推,直至串t 中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹…

    Linux干货 2015-04-07
  • 初识Nginx

    前言:   Nginx介绍:    Nginx(engine x)是由俄罗斯人logor sysoev研发的;官方网站:nginx.org;nginx是一个轻量级的高性能的web服务器和反向代理服务器;nginx本身一个处理静态资源的web服务器,但是通过加装fastcgi等模块,可是支持动态资源;可以为IMAP/POP3/SM…

    Linux干货 2015-06-23
  • LVM逻辑卷管理器(Logical Volume Manager)

    逻辑卷管理器(Logical Volume Manager) 简介      LVM的做法是将几个物理的分区通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再分成可以使用的分区(LV),最终就能够挂载使用了。内部通过PE来进行扩展或缩小。 PV(PhysicalVolume)物理卷 用fdisk命令调整系统标识…

    Linux干货 2016-09-01
  • linux入门学习动手部分

    linux入门学习了几天,各种命令跟选项如果靠记忆很容易忘记,通过下面随堂实验加深记忆 实验操作部分 enable 命令使用 禁用内部命令 enable -n echo 禁用echo命令 重新启用echo命令 enable echo type 命令使用 type -a echo 列出所有echo的内部命令外部命令 type -p cd 显出cd外部命令的路径…

    Linux干货 2017-05-20
  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15
  • VPS服务器的购买使用

           Virtual Host Server(虚拟主机)是一个云计算服务,相比于传统的购买服务器硬件方式搭建服务器,有着价格便宜,个性化定制配置,使用灵活等特点。按需求购买计算资源,只需要几分钟时间就可以在公网配置一个属于自己的服务器。         最著名的云计算服务提供商国外有Amazon,Google,vultr等等,国内有阿里云,腾讯云等等…

    2018-03-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-22 11:15

    写的很好,排版还可以在漂亮一点,4 6 8 在仔细看看,不对。加油