Linux启动过程-1

Linux启动过程

按下电源之后进行固件自检(CMOS) GRUB/LILO载入内核initinittab

C:\Users\ag\Desktop\2018-01-10 19_59_43-李明老师讲Linux - 网易云课堂.png

修改CentOS 5/6的引导配置文件(修改启动界面等待时间、默认使用的内核等参数),vim /etc/grub.conf

修改CentOS 5/6的init配置文件(修改默认使用的运行级别),vim /etc/inittab

查看当前运行级别:直接执行runlevel

Linux的7种运行级别:0,1,2,3,4,5,6

请不要设置运行级别为0或者6,否则就如同我们运行init 0和init 6来关机和重启系统一样,系统会进入死循环。

Linux启动过程-1

运行级别:

0关机,等同于init 0

1单用户模式,等同于windoiws的安全模式

2多用户模式,但不启动NFS服务

3多用户模式,一般我们都是用这个模式

4暂时没有使用,你可以自己定制,然后设置为默认模式,例如一些智能设备提供商可能就会自己定制一些应用,然后用模式4来启动定制的Linux。

5图形界面模式

6

重启,等同于init 6或者reboot

C:\Users\ag\Desktop\2018-01-10 20_05_52-李明老师讲Linux - 网易云课堂.png

查看进程列表ps -le | more

C:\Users\ag\Desktop\2018-01-10 20_30_34-李明老师讲Linux - 网易云课堂.png

CentOS7下的inittab已经不再使用,具体使用方法可阅读该文件中的说明。

其他知识点:

查看系统时间date

从互联网同步时间给操作系统 ntpdate time.windows.com

从硬件(主板)同步时间给操作系统hwclock -s

从操作系统同步时间给硬件(主板)hwclock -w

更多操作请hwclock –help

手动设置操作系统的时间 date ‘传参数’,具体使用请man date

总结一下Linux的启动过程:

Linux启动过程-1

练习:

Linux启动过程-1

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://gavindong.com/1935.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。

版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

(0)

相关文章

回复 ag

登录后才能评论

评论列表(28条)

  • ag的头像
    ag 2018.01.11 20:50

    grub配置文件真正保存位置是/boot/grub.conf中,/etc/grub.conf只是一个软连接,内核等文件都是在/boot下,/boot目录需要备份。
    grub里的参数:
    default是定义默认启动的操作系统;
    timeout定义启动界面上的倒计时时间;

    splashimage定义启动界面的图片;
    注意:
    splashimage配置中的(hd0,0)表示第一块硬盘的第一个分区。
    实际上启动界面上的背景图片的存储位置是/boot/grub,所以此处的(hd0,0)其实表示/boot分区。
    背景图片的分辨率最好是640*480,色深最好是14.
    可以使用命令concert进行图片的转换,如果使用分辨率非常高的图片,由于启动界面时显卡还没有加载,有可能变成漆黑一片。

    hiddenmenu掩藏启动界面上的多操作系统选择菜单;
    title定义启动界面的抬头描述;
    root定义了根设备,也就是/boot所在的分区;
    kernel定义了内核在上述分区中的具体位置;
    initrd表示载入镜像文件。

    • ag的头像
      ag 2018.01.11 20:51

      @aggrub快捷键:
      启动界面按e进入编辑行模式,选择kernel行,再次按e,在新界面的最后一行输入1或者s,即可进入单用户模式。之后可进行系统修复、重置密码等操作。

    • ag的头像
      ag 2018.01.11 20:53

      @agc直接进入grub的命令行模式;
      b表示启动当前菜单项;
      d表示删除当前行;
      esc可以返回启动界面,取消刚才所做的任何修改。

    • ag的头像
      ag 2018.01.11 20:55

      @ag按e之后显示的第一个界面就是grub.conf里的最后三行配置。

    • ag的头像
      ag 2018.01.11 20:57

      @ag选择kernel所在的行,之后输入空格加【0~6】,之后回车可以进入对应的运行级别。单用户模式只有root登录系统并且不需要密码。

    • ag的头像
      ag 2018.01.11 21:02

      @ag单用户模式如果你坐在电脑面前,就可以进行任何操作,但是服务器所在的机房、一般人无法靠近。
      如果是自己的电脑,我们可以给grub设置一个密码,这样即便别人在电脑面前,系统启动的时候也要先输入密码才能进入单用户模式。
      设置grub密码的方式有两种,一种是在安装系统的时候就设置,一种是使用命令grub-md5-crypt设置加密的密码或者直接敲md5crypt也能设置grub的密码,然后vi /etc/grub.conf并将上述操作产生的加密按下面的格式插入到title和spashimage中间(必须在此位置才能进行全局设置!!)。
      例如:
      password –md5 ¥%¥USDHSGJSsdfsdfdsf85866877

    • ag的头像
      ag 2018.01.11 21:52

      @ag如果/etc/grub.conf配置有错误,则系统启动过程中可能卡住报错或者直接进入grub命令界面,如果没有进入命令界面,可以按c进入命令模式,然后cat /grub/grub.conf文件看下配置有没有问题。
      注意此处是cat /grub/grub.conf,而不是/boot目录!!!
      如果配置文件有问题,人工参照grub.conf文件录入信息,引导系统启动先。
      录入如下四行即可引导系统启动:
      root (hd0,0)
      kernel …… ro root=LABEL=/ 3(参照cat出来的内容,纠正其中不正确的内容,注意用tab键补全输入信息,以免输入错误!!)
      initrd ……
      boot

    • ag的头像
      ag 2018.01.11 22:38

      @ag如果grub没问题,但后续出问题了,则只能考虑使用安装光盘进行linux rescue,操作方法是插入安装光盘,然后设置CMOS启动的时候从光盘引导,然后在安装Linux界面按【F5】,然后在命令行中输入linux rescue,接下来见机行事(注意,程序在提示将要挂载原来的系统到/mnt/sysimage上这一步的时候,需要选择continue)。

    • ag的头像
      ag 2018.01.11 23:08

      @ag实际工作中,当你已经在服务器旁边的时候,如果grub进不去,那么就尝试rescue模式吧。rescue模式相当于Windows选的windowsPE模式,进入之后按照提示,哪里有问题修复哪里就好了。
      安装界面选择【rescue】,然后输入linux rescue,然后一直continue,最后输入chroot /mnt/sysimage进入要修复的系统的命令行中进行操作,操作完毕exit,重启即可。
      第一次重启有可能失败,有可能要重启多次!!

  • ag的头像
    ag 2018.01.11 20:32

    父进程死了,子进程叫孤儿进程,子进程会被init进程接管;
    子进程死了,父进程叫僵尸进程。

  • ag的头像
    ag 2018.01.11 19:52

    firmware -> boorloader -> kernel -> init -> /etc/inittab -> initdefault -> /etc/rc.d/rc.sysinit -> /etc/rc.d/rc -> /etc/rc.d/rcN.d(N=0到6) -> username/password登录系统 -> login.

    • ag的头像
      ag 2018.01.11 19:52

      @agfirmware例如pc的cmos和bios

    • ag的头像
      ag 2018.01.11 19:53

      @aglinux的bootloader主要有lilo、grub两种。

    • ag的头像
      ag 2018.01.11 19:54

      @ag/etc/inittab主要是控制运行级别的,centos7中已经不采用此配置文件。

    • ag的头像
      ag 2018.01.11 19:57

      @ag/etc/rc.d/rcN.d中显示有6个tty(终端),按【ctrl + alt + F1~F6】进行切换,虚拟机中需要专门设置快捷键才行。

    • ag的头像
      ag 2018.01.11 19:58

      @ag显示当前在哪个终端执行命令:tty
      回到图形界面:【ctrl + alt + F7】

    • ag的头像
      ag 2018.01.11 20:04

      @ag/etc/rc.d/rcN.d的脚本是对应启动模式下的启动脚本及关闭脚本,以大写K开头的表示关闭,以大写S开头的表示开启,如果不想某个服务开启,只需要删除或者重命名对应的脚本就行了。例如:S25mysql表示第25个启动的服务是MySQL服务。

    • ag的头像
      ag 2018.01.11 20:07

      @ag/etc/rc3.d其实是/etc/rc.d/rc3.d的软连接,但是商用UNIX则一般没有这个软连接,而是直接放在/etc/rc3.d下,所以控制启动项建议在/etc/rc3.d里边做。

    • ag的头像
      ag 2018.01.11 20:09

      @ag/etc/rc.d/init.d包含了各种运行级别的启动服务,如果想手工启动或者关闭某个服务,只需要在该目录下找到对应的服务,直接执行/etc/rc.d/init.d/服务,例如/etc/rc.d/init.d/sshd,系统会告诉你脚本的输入参数。
      例如:
      /etc/rc.d/init.d/sshd restart

    • ag的头像
      ag 2018.01.11 20:10

      @ag这些文件都是shell脚本,可以cat简单看一下里边的内容。

    • ag的头像
      ag 2018.01.11 20:12

      @agls -l /etc/rc.d/rc5.d会发现里边的文件都是软连接,都是链接到/etc/rc.d/init.d目录下的shell脚本。

    • ag的头像
      ag 2018.01.11 20:23

      @ag如果要设置某个服务在linux启动的时候自动启动,通常用四种方法:
      1.在/etc/rc.d/init.d/下创建一个对应的shell,然后ln -s /etc/rc.d/init.d/shellName /etc/rc.d/rcN.d/S100shellName;(表示rcN.d下第100个启动的脚本是shellName)
      2.chkconfig httpd 2345 on;
      chkconfig –list mysql
      chkconfig –add mysql;
      chkconfig –del mysql;
      chkconfig –levels sshd off;
      3.直接在/etc/rc.d/rcN.d里边将对应的某个服务move成小写s开头的就行了(系统启动时只识别大写K和S开头的启动项);
      4.ntsysv,进入命令模式的图形界面控制启动项目。
      ntsysv直接执行,设置的是当前运行级别的启动项;
      ntsysv –level 5,设置的是运行级别5的启动项(按空格选中,显示星号表示自动启动,空白表示不启动,按TAB键切换操作位置);

    • ag的头像
      ag 2018.01.11 20:35

      @ag如果没有ntsysv或者chkconfig,用方法1.

    • ag的头像
      ag 2018.01.11 20:26

      @agdmesg显示启动过程中显示的信息,录入现在添加了一块硬盘,系统启动之后无法使用,可以dmesg看下是否报错(驱动不存在、不支持等)。
      查看需要的信息:
      dmesg | grep eth0
      dmesg | grep httpd
      dmesg | grep sda

    • ag的头像
      ag 2018.01.11 20:28

      @agLinux里所有的标准日志文件都是在/var/log下,标准的日志文件是/var/log/messages文件,该文件存储了linux运行过程中的大多数日志信息,如果执行某个服务不正确,可以查看此文件。
      grep syslog /vat/log/messages

    • ag的头像
      ag 2018.01.11 20:30

      @aggrub最主要的作用就是选择载入哪个内核。

  • ag的头像
    ag 2018.01.10 21:18

    内核可执行文件存放在/boot下,源代码(如果安装了源代码)在/var/lib/linux下,下载内核https://www.kernel.org/

  • ag的头像
    ag 2018.01.10 21:15

    查看进程树的方式:pstree
    需要安装psmisc软件包:yum install psmisc