N25第十周博客作业

1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)
        (1)post:加电自检
                主要是bios完成,检查主机各个组件是否完好,能否达到运行要求;
        (2)Boot Sequence:启动顺序
                这一步是按照bios的预先设置来选择首选启动项;
        (3)Boot Loader:引导加载器
                这一步是在选择启动介质后,在介质的第一扇区会有一段小程序来引导我们启动不同的系统或内核版本;
        (4)kernel:加载内核
                 当选定内核或系统,由Bootloader将内核或系统加载到 内存中特定空间中,解压、展开,而后把系统控制权叫给内核;
        (5)运行/sbin/init
                当内核被唤醒后,它开始完成系统的构建、加载驱动,然后开始运行第一个程序:init;
        (6)选择默认级别:
                init会根据/etc/inittab等文件的定义来选择默认启动级别,完成系统开启;
        (7)运行系统初始化脚本,完成系统初始化:
                在系统开启后,init会根据/etc/rc.d/rc.sysinit来初始化系统,包括设置主机名、设置欢迎信息、激活udev和SELinux、挂载/etc/fstab文件中定义的所有文件系统等;
        (8)关闭对应级别下要停止的服务和启动对应级别下需要开启的服务:
                根据init配置文件,关闭/etc/rc.d/rc#.d/下K*的所有服务,开启S*的所有服务,注#代表启动级别;
        (9)设置登陆终端:
                这一步主要是开启一个登陆接口,并为之加载环境变量、别名配置等文件,如果是5级别的话,还会开启图形界面,加载图形界面所需的各种插件。

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

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

       ~]#  mkdir /mnt/{sysboot,sysroot}

       ~]#  fdisk /dev/sdb

              n–> p–>1–>+500M

              n–> p–>2–>+2G

              w

        ~]# partprobe /dev/sdb

        ~]# mkfs.ext4 /dev/sdb1

        ~]# mkfs.ext4 /dev/sdb2

        ~]# mount /dev/sdb1 /mnt/sysboot

        ~]# mount /dev/sdb2 /mnt/sysroot

        ~]# grub-install –root-directory=/mnt  /dev/sdb

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

        ~]# cp /boot/vmlinuz-2.6.32-431.el6.x86_64  /mnt/sysboot/vmlinuz

        ~]# cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/sysboot/initramfs.img     

        ~]# mkdir /mnt/sysroot/{bin,proc,lib64,mnt,sbin,…}   

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

        [root@localhost sysroot]# ldd /bin/{cat,ls,bash}

/bin/cat:

linux-vdso.so.1 =>  (0x00007fff91dff000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000)

/bin/ls:

linux-vdso.so.1 =>  (0x00007fffc3f22000)

libselinux.so.1 => /lib64/libselinux.so.1 (0x000000354ba00000)

librt.so.1 => /lib64/librt.so.1 (0x000000354b200000)

libcap.so.2 => /lib64/libcap.so.2 (0x000000354de00000)

libacl.so.1 => /lib64/libacl.so.1 (0x0000003555a00000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

libdl.so.2 => /lib64/libdl.so.2 (0x000000354aa00000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x000000354a600000)

libattr.so.1 => /lib64/libattr.so.1 (0x0000003558600000)

/bin/bash:

linux-vdso.so.1 =>  (0x00007fff00dff000)

libtinfo.so.5 => /lib64/libtinfo.so.5 (0x000000355b200000)

libdl.so.2 => /lib64/libdl.so.2 (0x000000354aa00000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000

[root@localhost ~]#cp /bin/{bash,ls,cat}  /mnt/sysroot/bin

[root@localhost ~]# cd /mnt/sysroot/lib64/

[root@localhost lib64]# cp /lib64/libc.so.6 ./

[root@localhost lib64]# cp /lib64/libselinux.so.1 ./

[root@localhost lib64]# cp /lib64/librt.so.1 ./

[root@localhost lib64]# cp /lib64/libcap.so.2 ./

[root@localhost lib64]# cp /lib64/libacl.so.1 ./

[root@localhost lib64]# cp /lib64/libc.so.6 ./

[root@localhost lib64]# cp /lib64/libdl.so.2 ./

[root@localhost lib64]# cp /lib64/ld-linux-x86-64.so.2 ./

[root@localhost lib64]# cp /lib64/libpthread.so.0 ./

[root@localhost lib64]# cp /lib64/libattr.so.1 ./

[root@localhost lib64]# cp /lib64/libtinfo.so.5 ./

[root@localhost lib64]# cp /lib64/libdl.so.2 ./  

[root@localhost lib64]# cp /lib64/libc.so.6 ./

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

        vim /mnt/sysboot/grub/grub.conf

            default=0

            timeout=5

            title Linux test

            root (hd0,0)

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

            initrd /initramfs.img

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

        新建虚拟机,再选择磁盘时选择这块磁盘;


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

        首先安装system-config-kickstart,然后打开;

            基本配置:主要是语言为中文,键盘默认,设置根密码;

            安装方法:根据情况选择,以光盘驱动器为例;

            引导装载程序选项:默认即可;

            分区信息:清除主引导记录,然后开始添加磁盘分区,主要是根分区、swap、boot和home四个分区;

            网络配置:最好配置一块网卡,设定好ip等信息;

            防火墙配置:建议都先关闭,可在完成后激活;

            显示配置:默认;            

            软件包选择:基本系统;

        配置好以后保存,路径为/var/ftp/ks.cfg,然后安装vsftpd服务,并启动,测试是否可以正常访问;

        然后新建一个虚拟机,在启动时加载镜像,在安装界面摁esc,出现字符界面:boot::,输入以下命令:

                linux ip=IP(根据实际情况,必须与有ftp访问的服务器在同一网段上) netmask=NETMASK ks=ftp://ks.cfg完整路径

        如果不出意外地话,虚拟机会根据ks.cfg来安装部署。

             

  

4、写一个脚本
  (1) 能接受四个参数:start, stop, restart, status
   start: 输出“starting 脚本名 finished.”
   …
  (2) 其它任意参数,均报错退出;

#!/bin/sh

case $1 in

start)

      echo “starting $0 finished “;;

stop)

     echo “stop $0 finished”;;

restart)

     echo “restart $0 finished”;;

status)

     echo “status $0 finished”;;

*)

   echo “error!!”

   exit 1

esac


5、写一个脚本,判断给定的用户是否登录了当前系统;
  (1) 如果登录了,则显示用户登录,脚本终止;

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

         #!/bin/bash

         [ $# -ne 1 ] && echo “need 1 user!!” &&exit 1

usr(){

 if who | grep $1 &>/dev/null;then

  echo “$1 is login..”

  return 0

 else

  echo “$1 is not login..”

  return 2

 fi

}

while true;do

 usr $1

 rt=$?

 [ $rt -eq 0 ] && break || sleep 3

done


6、写一个脚本,显示用户选定要查看的信息;
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit

#!/bin/sh

cat <<a

=========================

cpu) display cpu info

mem) display memory info

disk) display disk info

quit) quit

=========================

a

ab() {

read -p “Please enter your choice: ”  i

case $i in

cpu)

  lscpu;;

mem)

  free -h;;

disk)

   fdisk -l  /dev/[s,h]d[a-z];;

quit)

   exit 0;;

*)

  echo “Please choose again!!”

  ab

esac

}

ab

   非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;
7、写一个脚本
  (1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;
  (2) 提示用户输入一个用户名或输入“quit”退出;
    当输入的是用户名,则调用函数显示用户信息;
    当用户输入quit,则退出脚本;进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit: 

#!/bin/bash

usr() {

 grep “^$1\>” /etc/passwd|awk  -F: ‘{print $3,$7}’

}

cat <<a

user)  display user info;

quit)  quit

a

ub() {

while true;do

  read -p “please input: ” i

  case $i in

    quit)

       exit 0;;

    $i)

       usr $i

       ub

  esac

done

}

ub

        

原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/70591

(0)
N25_韩奇洋N25_韩奇洋
上一篇 2017-03-10
下一篇 2017-03-10

相关推荐

  • 18页PPT带你深度解读运维自动化

    一、概述    在前面的文章中,提到【运维的本质—可视化】,在其中着重强调是自动化的可视化和数据化的可视化。在这个文章中,全面解码看看自动化的极致状态为什么是可视化?在前面的另外一篇文章【运维平台全体系介绍】中,也讲到运维平台体系的构成,提出“**及服务”的理念,其中有几部分和自动化密切相关,比如说资源及服务、配置及服务、架构…

    2015-04-03
  • OpenSSH

    ssh: secure shell, protocol, 22/tcp, 安全的远程登录 OpenSSH: ssh协议的开源实现; dropbear:另一个开源实现;  SSH协议版本 v1: 基于CRC-32做MAC,不安全;man-in-middle v2:双方主机协议选择安全的MAC方式 基于DH算法做密钥交换,基于RSA或DSA算法实现身份…

    Linux干货 2015-06-21
  • 马哥教育网络班22期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干货 2016-11-21
  • 1128基于fastDFS,制作rpm包

    基于fastDFS,制作rpm包: 1、安装相应的环境: 1、Development tools 2、git(从外网git仓库下载源码所需) 3、Server Platform Development ———————————&#…

    2016-12-05
  • ​从实验来了解grub

    实验一为grub设置密码 先看一看grub是怎么样的 grub有两个版本 grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2  Note:grub 1.x是完全重写的只不过是保留grub 0.x的工作机制。 2.利用grub自带命令生成密码grub-md5-cry…

    Linux干货 2016-06-09

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-15 00:41

    操作系统的启动过程能用图示来说明会更好~~cp的那部分可以使用循环~~继续加油~