CentOS启动流程及Shell脚本编程练习

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

第一步:POST加电自检

主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序。

第二步:Boot Sequence(选择启动设备以加载MBR)

主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。

第三步:加载bootloader(MBR)

这一步实现起来的步骤比较多,前面的BIOS通过读取并执行启动设备的MBR中的bootloader,而bootloader要实现的功能就是提供一个菜单给用户,让用户去选择要启动的系统或不同的内核版本,然后把用户选择的内核版本加载至RAM中的特定空间,接着在RAM中解压、展开,而后把系统控制权移交给内核。

第四步:Kernel自身初始化

Kerenl在得到系统控制权之后,首先要进行自身初始化

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

(2)加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序(有可能会借助于ramdisk加载驱动);

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

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

第五步:init管理用户空间服务进程

init可以理解成是内核派来管理用户空间的使者,就好像天使代表上帝来访问人间一样。init这个初始化程序会根据其配置文件执行一系列操作。

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

1.为硬盘新建两个主分区;并为其安装Grub

echo “- – -” > /sys/class/scsi_host/hos0/scan

fdisk /dev/sdb

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/sdb2

mount /dev/sdb2 /mnt/minilinux/

mkdir -v /mnt/minilinux/{etc,bin,sbin,lib,lib64,var,proc,usr,sys,boot,dev,tmp}

mount /dev/sdb1 /mnt/minilinux/boot/

grub-install –root-directory=/mnt/minilinux /dev/sdb

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

cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/minilinux/boot/initramfs.img

cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/minilinux/boot/vmlinuz

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

cp /bin/{bash,ls,cat} /mnt/minilinux/bin/

cp $(ldd /bin/{bash,ls,cat} |grep -o “/.*\.[0-9]”) /mnt/minilinux/lib64/

chroot /mnt/minilinux/

4.为grub提供配置文件

vi /mnt/minilinux/boot/grub/grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Minilinux

root (hd0,0)

kernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bash quiet

initrd /initramfs.img

5.将新的硬盘设为第一启动项并能正常启动目标主机

 

三、制作一个Kickstart文件以及一个引导镜像,描述其过程

1、制作Ks文件

yum -y install system-config-kickstart

system-config-kickstart

2、创建引导镜像

mkdir /root/miniboot

cp -r /media/CentOS_6.5_Final/isolinux/ /root/miniboot/

cp /root/ks.cfg /root/miniboot/

vim /root/miniboot/isolinux/isolinux.cfg

mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6 miniboot” -c isolinux/boot.cat -b isolinux/isolinux.bin -o  /root/boot.iso   /root/miniboot/

 

四、写一个脚本

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

start:输出”starting脚本名finished”

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

10.4

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

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

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

10-5

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

cpu)display cpu info

mem)display memory info

disk)display disk info

quit)quit10.6

七、写一个脚本

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

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

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

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

10.7

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88910

(0)
N27_wjxN27_wjx
上一篇 2017-11-26 16:53
下一篇 2017-11-26 19:42

相关推荐

  • 磁盘阵列(raid),划分逻辑卷(lvm)

    磁盘阵列(raid),划分逻辑卷(lvm)       将来我们在生产环境中由于磁盘的来回读写量比较大,所以就容易导致磁盘的损坏率比较高。但是,处于生产环境的需求,我们还得保证服务器的正常运行。或者说我们需要对服务器的读写速率进行优化,这样我们就不得不运用到这个磁盘阵列(raid )。而所谓的磁盘阵列就是使用…

    Linux干货 2016-08-29
  • Linux基础-第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    2018-03-19
  • 文本处理

    cat,tac,rev,more,less,head,tail,cut,wc,sort,uniq,grep,
    正则表达式,扩展正则表达式

    2018-03-13
  •   在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?

      在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?   服务器硬盘出现硬件故障时,大家应注意以下几点:   1、硬盘出现异声,此时磁头已不正常寻址,为防止打伤盘体,需立即断电不可拆解硬盘,需交有超净间的专业公司拆开检查。   2、BIOS不认盘,找不到硬盘,先请计算机工程师仔…

    Linux干货 2016-04-05
  • 重定向和管道

    1.Linux给程序提供三种I/O设备 标准输入-0    默认接受来自键盘的输入 标准输出-1    默认输出到终端窗口 标准错误-2    默认输出到终端窗口 在dev下有个fd设备,打开的文件都有一个fd:file dexcriptor 文件描述符 I/O重定向:…

    2017-07-20
  • Linux基础目录名称命名法则及功能规定

    Linux中有非常多的目录文件,那么这些目录文件的命令规则,和功能都有那些,今天学习了下,下面是我的学习记录,跟大家分享下。 文件命名规则 (1) 除了/之外,所有字符都合法 (2) 特殊字符如@、#、¥、&、()、-、空格等最好不要使用,当使用空格作为文件名时,执行命令会出错 (3) 避免使用”.”作为文件名的第一个字符,因为在Linux系统中以”…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-08 16:36

    思路清晰,步骤详细,进度有点慢