• 开机十步和进程管理


    一、Linux启动十步流

    第一步:BIOS启动

    BIOS的作用开机检测,主板检测(BIOS检测)

    第二步:MBR引导程序

    硬盘的引导程序启动

    MBR硬盘引导程序(硬盘引导区前512K,主引导程序是1-446  64分区表一共4个区4*16,2个校验码)

    第三步:GRUB菜单启动(操作系统的引导菜单)

    grub菜单的配置文件:/boot/grub/grub.conf

    快捷方式:/etc/grub.conf

    第四步:kernel操作系统的内核,启动操作系统的核心

    第五步:启动操作系统的主进程init

    负责执行kernel的任务

    进程用来执行计算结果

    第六步:读取/etc/inittab配置文件

    确定开机以哪一个模式启动

    设定Linux开机时默认的启动模式

    runlevel 看当前系统运行模式

    第七步:执行/etc/rc.d/rc.sysinit初始化脚本

    在临时目录生成刚开机时必须有的东西

    /proc目录是临时存放内存数据的目录

    /proc目录里既有目录也有文件,好多目录都是数字,那么这些数字目录到底是什么呢?都是进程

    ps命令:直接显示进程 每个进程都有PID号的

    ps -ef命令:看很多进程, PID号(进程号)从1开始 1是主进程

    UID是用户;  GID是组的;

    UUID是设备的,每个设备都有UUID号;UUID0是超级用户的

    PID是进程的,每个进程都有PID号;

    PPID是这个进程的上级进程。

    如果只把眼光站在运维的角度看问题,那么你只能看到进程这个东西。

    通常来说,站在运维的立场,进程到底是什么,进程就是程序。

    但是,假如我们把眼光看的更深一些,其实进程里还有很多叫做线程的东西,然后真正干活的不是进程,而是线程。然而,对于运维来说,是看不到线程的。只有你做了开发人员才能看得到线程。

    如果面试时,面试官问你,进程是什么,你说进程是程序,也可以。

    如果面试的是开发,那么你一定要说,进程什么都不是,它只是一个目录,存放资源的目录,这些资源是提供给线程进程调用的资源,真正干活的是线程,因此,线程才是程序

    第八步:执行/etc/rc.d/rc脚本

    去某个目录执行文件

    cd /etc/rc3.d/    ls 都是高权限文件

    chkconfig 开机自启动

    chkconfig | grep "3:on"

    工作中chkconfig精简化配置,只开5个,其他特殊需要开启的在个人脚本里写

    postfix关的话 rc3.d对应的文件是K打头

    postfix开的话 rc3.d对应的文件是S打头

    如果是K打头就改成S,如果是S打头就改成K

    告诉Linux开机时候哪个服务需要启动

    当启动模式是3模式,那么Linux进入/etc/rc3.d/目录下,就会执行里面所有以S开头的脚本。

    所以,chkconfig这个命令所查看的内容,其实是即时生成的。然而并不是保存于某个文件里。

    因此,我们是无法对chkconfig的启动下做备份的。

    在运维工作中,我们并不建议以chkconfig的方式来管理Linux操作系统的开机自启动项,因为运维需要安全,安全就要备份。

    正确做法是,只开启5个服务,其他在/etc/rc.d/rc.local/里写

    /etc/fastab 开机自动挂载,我们也是不推荐的,我们推荐的是/etc/rc.local

    其实,我们也可以通过命令的方式去启动服务,如果/etc/rc.local这个脚本每次开机都先启动的话,里面的命令也会被先执行,其实也就是开机自启动。

    运维规则:就是有理由即可!!

    第九步:执行/etc/rc.d/rc.local个人配置脚本

    /etc/init.d/服务名 start/stop  当前立刻启动/关闭程序(能用TAB

    reload(平滑重启) 让玩游戏的人不掉线,不是先开后关,很平滑

    service postfix start/stop 启动/关闭程序(这个不能TAB不推荐)

    第十步:启动mingetty进程

    终端进程

    二、进程管理

    1SSHDsocket守护进程:

    24小时不间断监听某个固定端口的进程

    默认监听端口是22端口,我们Xshell连接默认的也是22端口

    (用于远程连接)

    当我们的xshell连接上Linux以后,sshd主进程会临时生成一个sshd子进程来接待我们所发起的远程连接。

    sshd子进程,为了让我们友好的方式进行远程操作,sshd子进程会再生成一个bash的界面进程,其实我们命令模式所操作的界面就是bash这个界面。

    2/proc目录:临时存放内存数据的目录

    /proc目录是临时存放内存数据的目录

    /proc目录里既有目录也有文件,好多目录都是数字,那么这些数字目录到底是什么呢?都是进程

    3、系统中的bash

    bash主要是用来解析命令,是人和机器交互的中介

    bash再生成进程,也就是一个一个的命令,命令帮我们工作

    4设置grub菜单密码及其配置文件位置

    配置文件/etc/grub.conf(快捷方式)

    /boot/grub/grub.conf  (原文件)

    两者都能用

    grub菜单设置密码:教案设置的第二层密码不对,passwd需要往下移,在移动到一个位置就对了

    kerelroot之间

    5、Linux操作系统中的两个特殊文件

    /dev/null  /dev/zero文件

    /dev/null 我们称作黑洞文件,不论什么文件内容被重定向到了这个文件里,内容就都消失了,所以也被称为垃圾箱文件

    /dev/zero 我们称为无限数据流文件,不论要从文件里取多大的数据,都能取得出来,然而取出的数据没有任何内容显示,就是纯粹的占大小。

    三、dd命令

    1dd抽取命令

    dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1(此命令在进行备份那512

    /dev/sda系统盘查找数据,输出到根下的/backup叫做/sda.mbr.bak抽前512字节,抽count 1

    把这个盘的前512字节备份出来,count几次 就是备份几次

    (if从哪来, of到哪去)

    2dd覆盖命令(破坏)

    dd if=/dev/zero of=/dev/sda bs=512 count=1

    从无限数据流文件,取出文件,输出到/dev/sda的前512字节文件里,相当于把这个文件覆盖了

    这公司就倒闭了

    3dd检测磁盘读写速度用法

    dd if=/dev/zero of=/dev/sda bs=512 count=1

    记录了1+0 的读入

    记录了1+0 的写出

    512字节已复制,0.000206154 秒, 2.5MB/

    四、忘记root密码与开机自启动chkconfig用法

    1如忘记root密码

    清除Linux各种密码

    方法一:

    重启,读秒状态下,按Esc,按e 选第二个 e 空格 1 回车  再按b

    进入1模式,可直接登录

    # passwd

    设置新密码

    # reboot

    方法二:

    进入急救模式shell修改密码

    执行passwd root命令,修改root密码即可

    方法三:

    修改/etc/shadow/文件

    # vim /etc/shadow

    删除密文,x!(强制保存退出)

    2chkconfig用法和需自启动的五个服务

    chkconfig查看开机自启动

    一般和过滤一起用

    chkconfig | grep post

    chkconfig --list post 单一查找

    chkconfig postfix on/off  默认2345模式下开启和关闭

    chkconfig --level 3 postfix on   指定在3模式下开启

    service 服务名  start|stop|restart(重启)|reload(平滑重启)|status(查看)

    查看当前服务当前是否启动   

    service postfix status    查看开启/关闭状态

    is running....代表正在启动

    is stopped....代表已经关闭了

    service postfix stop  停止程序

    service postfix start 启动程序(这个不能TAB不推荐

    /etc/init.d/服务名 start  当前立刻/关闭启动程序这个推荐,能用TAB

    虽然我们经常用这个方式来控制服务的当前启动状态;但是,假如我们忘记了postfix或者其他服务名字;这种方式TAB

    那么我们用什么方式来控制服务呢??

    利用一个路径/etc/init.d/

    ls /etc/init.d/里面是一个一个的服务,这些是服务的启动脚本

    /etc/init.d/TAB postfix就出来了

    如果我们没记住服务的名字,还是用这个路径来启动或者关闭比较好。

    五、系统故障修复

    1修复MBR扇区故障

    故障原因

    病毒、木马等造成的破坏;不正确的分区操作,磁盘读写误操作

    故障现象

    找不到引导程序,启动中断,无法加载操作系统,开机后黑屏

    解决思路

    应提前做好备份文件,以安装光盘引导进入应急模式,从备份中恢复

    eg:(提前对系统盘进行备份)

    挂载/dev/sdb1/backup,MBR扇区备份至此,毁坏MBR扇区,重启

    备份数据

    # mkdir  /backup

    # mount /dev/sdb1 /backup

    # dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1

    # ls /backup

    (破坏数据)

    # dd if=/dev/zero of=/dev/sda bs=512 count=1

    (重启)

    # reboot

     

    (进行故障修复)

    进入安全模式

    rescue installed system

    (进入命令行)

    # fdisk -l | grep "/dev/"

    # mkdir /backup

    # mount /dev/sdb1 /backup

    # ls /backup

    # dd if=/backup/sda.mbr.bak of=/dev/sda bs=512 count=1

    # reboot

     

     

    2、修复grub引导故障

     

     

     

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

    3修复grub引导故障

    故障原因

    MBR中的grub引导程序遭到破坏;grub.conf文件丢失,引导配置有误

    故障现象

    系统引导停滞,显示grub>”提示符

    解决思路

    方法一:尝试手动输入

    方法二:进入急救模式,重建grub程序

    方法三:若无MBR备份,进入急救模式,重新安装grub程序

    eg

    方法一:手动输入(需记下内核的UUID或存储的绝对路径)

    # cat /boot/grub/grub.conf

    记下UUIDkernel的路径

    grub.conf文件备份,重启

    ###########################

    # mount /dev/sdb1 /backup

    # cd /boot/grub

    # cp grub.conf /backup

    # mv grub.conf grub.conf.bak

    # ls

    # reboot

    此时,出现grub>”提示符,手动输入

    grub>root(hd0,0)

    grub>kernel /vmlinuz-2.6.32-431.e16.x86-64 ro root=/dev/mapper/vg www-lv root

    grub>initrd /initramfs-2.6.32-431.e16.x86-64.img

    grub>boot

    进入系统后修改grub.conf文件

    # cd /boot/grub

    # mv grub.conf.bak grub.conf

    方法二:

    进入急救模式,重建grub程序,需提前备份MBR446字节

    (进行破坏)

    # dd if=/dev/zero of=/dev/sda bs=446 count=1

    # reboot

    进入急救模式:okokshell start shellok

    进入shell后,将根路径修改为/mnt/sysimage (chroot/mnt/sysimage)

    bash-4.1# chroot /mnt/sysimage

    bash-4.1# fdisk -l | grep "/dev/"

    bash-4.1# mount /dev/sdb1/ /backup

    bash-4.1# dd if=/backup/sda.mbr.bak of=/dev/sda bs=446 count=1

    bash-4.1# exit

    bash-4.1# reboot

    至此,进入安全模式进行grub引导的修复完成

    方法三:若无MBR备份,进入急救模式,重新安装grub程序

    # dd if=/dev/zero of=/dev/sda bs=446 count=1(模拟破坏)

    # reboot

    进入安全模式shell 同方法三

    改变磁盘根目录到/mnt/sysimage

    重新安装grub引导程序

    退出重启

    bash-4.1# chroot /mnt/sysimage

    bash-4.1# fdisk  -l /dev/sda

    bash-4.1# grub -install /dev/sda

    Disk /dev/mapper/vg-www-lv-root

    sh-4.1# ls /boot/

    initramfs-2.6.32-431.e16.x86-64.img

    vimlinuz-2.6.32-431.e16.x86-64

    sh-4.1# ls /boot/grub/

    sh-4.1# vim /boot/grub/grub.conf (手动建立grub.conf文件)

    末行输入

    root hd0.0

    kernel /vimlinuz-2.6.32-431.e16.x86-64 ro root=/dev/mapper/vg-www-lv-root rhgb quiet

    initrd /initramfs-2.6.32-431.e16.x86-64.img

    退出

    sh-4.1# exit

    bash-4.1# reboot

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

  • 相关阅读:
    python之道04
    python之list [ 列表 ]
    end和sep的使用方法
    pass1
    python之for (循环)
    python之range (范围)
    python之str (字符型)
    python之bool (布尔值)
    python之int (整型)
    python之道03
  • 原文地址:https://www.cnblogs.com/kakajiang/p/9871710.html
Copyright © 2020-2023  润新知