zoukankan      html  css  js  c++  java
  • linux开机10步及个人配置脚本

    Linux启动过程(十步)
    *****************
    第一步:BIOS启动*
    *****************
    =================================================================================
    BIOS的作用开机检测,主板检测(BIOS检测)


    ******************************
    第二步:MBR引导程序,硬盘的引导程序启动*
    ******************************
    ===================================================================================
    MBR硬盘引导程序(硬盘引导区前512K,主引导程序是1-446 64分区表一共4个区4*16,剩2个校验码)

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


    ===================================================================================
    第四步: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操作系统的开机自启动项,因为运维需要安全,安全就要备份。
    ************************************************************************************
    /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进程
    终端进程

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

    引导过程与服务控制

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

    Linux开机启动原理(十步)

    (1)开机自检BIOS

    开机检测,主板检测

    (2)MBR引导

    硬盘512字节

    (3)GRUB菜单

    操作系统菜单

    (4)加载内核(kernel)

    启动操作系统核心,根据grub设定的内核映像所在路径,系统读取内存影响并进行解压缩操作

    (5)运行INIT进程

    执行kernel的任务。INIT是一个由内核启动的用户级进程,内核被加载后,第一个运行的程序便是/sbin/init

    (6)读取/etc/inittab配置

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

    (7)执行/etc/rc.d/rc/sysinit初始化脚本

    设定了运行级别后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,他做的工作非常所,包括设定PATH、设定网络配置、启动swap分区、生成在/proc目录李刚开机时必须有的文件;/proc,临时存放内存数据的目录

    (8)执行/etc/rc.d/rc脚本

    进入/etc/rc3.d/*(3模式)  执行该文件里所有S开头的脚本

    (9)执行/etc/rc.d/rc.local个人配置脚本

    除了五个开机必须启动的程序外,需要单独启动的在个人配置脚本中实现

    (10)启动mingetty进程

    启动终端进程

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

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

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

    修复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

    修复grub引导故障

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

    修复grub引导故障

    故障原因:

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

    故障现象:

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

    解决思路:

    方法一:尝试手动输入

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

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

    eg:

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

    # cat /boot/grub/grub.conf

    记下UUID,kernel的路径

    将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程序,需提前备份MBR前446字节

    (进行破坏)

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

    # reboot

    进入急救模式:ok,ok,shell start shell,ok

    进入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

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

    清除Linux各种密码

    方法一:

    重启,读秒状态下,按Esc,按e,光标选择kernel,按e

    若此时,在quit后,空格,输入1,进入1模式,引导b

    进入1模式,可直接登录

    # passwd

    设置新密码

    # reboot

    方法二:

    进入急救模式shell修改密码

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

    方法三:

    修改/etc/shadow/文件

    # vim /etc/shadow

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

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

    清空grub引导密码

    进入单用户模式,将/boot/grub/grub.conf文件内的passwd内容删除并重启

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

    系统服务控制

    service 服务名称 控制类型

    /etc/init.d 服务名称 控制类型

    # /etc/init.d start|stop|restart|reload|status

    # service start|stop|restart|reload|status

                启动  停止  重启   平滑重启 查看状态

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

    chkconfig命令

    格式:

    chkconfig --list

    chkconfig --list 服务名称

    chkconfig --level 级别列表 服务名on/off

    eg:# chkconfig --level 35 iptables on

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

    添加服务,使服务可以用/etc/init.d或service启停

    添加:

    方法一:将该服务的脚本拷入/etc/rc.d/init.d文件夹下,保证其状态为可执行;

    方法二:使用chkconfig命令将服务添加到服务列表中:

    # chkconfig --add camsd (可用service来启动/停止)

    删除:

    # chkconfig --del camsd

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

    引导过程与服务控制
    Linux开机启动原理(十步)
    开机自检BIOS===================开机检测,主板检测
    MBR引导======================硬盘512字节
    GRUB菜单======================操作系统菜单
    加载内核(kernel)================启动操作系统核心,根据grub设定的内核映像所在路径,系统读取内存影响并进行解压缩操作
    运行init进程=====================执行kernel的任务。init是一个由内核启动的用户级进程,内核被加载后,第一个运行的程序便是/sbin/init
    读取/etc/inittab配置================设定开机时默认的启动模式
    执行/etc/rc.d/rc/sysinit初始化脚本>>>>>>>>>>>>>>>>设定了运行级别后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,他做的工作非常所,包括设定PATH、设定网络配置、启动swap分区、生成在/proc目录李刚开机时必须有的文件;/proc,临时存放内存数据的目录
    执行/etc/rc.d/rc脚本======== =======进入/etc/rc3.d/*(3模式) 执行该文件里所有S开头的脚本
    执行/etc/rc.d/rc.local个人配置脚本>>>>>>>>>>>>>>>>除了五个开机必须启动的程序外,需要单独启动的在个人配置脚本中实现
    启动mingetty进程==================启动终端进程
    =====================================
    socket 守护进程:24小时不间断监听某个固定端口的进程
    /proc目录:临时存放内存数据的目录
    =====================================
    ps命令 显示进程
    ps -ef 从主进程开始显示
    cd /etc/rc3.d/ >>>>>>>>>>>>>第八步
    chkconfig | grep "3:on" >>>>>>>>>>>>第九步
    mv K30postfix S30postfix
    runlevel
    =====================================
    修复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*********if 从哪输出的,of 输出到哪,bs每次导入多少(字节,K,M,G),count导入数据次数
    ls /backup
    (破坏数据) *************************************/dev/null 黑洞文件,无论什么文件内容被重定向该文件,内容都消失
    dd if=/dev/zero of=/dev/sda bs=512 count=1********/dev/zero 无限数据流文件,无论要从文件内取多大数据,都能取出
    (重启) 然而取出的数据无内容显示,只要纯粹的占大小
    reboot
    (进行故障修复)
    进入安全模式
    rescue installed system
    english
    us
    no(不开去网络访问)
    continue
    OK
    shell start shell
    (进入命令行)
    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*********!!!dd这个命令在工作中,用来检测磁盘读写速度
    reboot
    ==============================================
    修复grub引导故障
    故障原因
    MBR中的grub引导程序遭到破坏;grub.conf文件丢失,引导配置有误
    故障现象
    系统引导停滞,显示“grub>”提示符
    解决思路
    方法一:尝试手动输入
    方法二:进入急救模式,重建grub程序
    方法三:若无MBR备份,进入急救模式,重新安装grub程序
    eg:
    方法一:手动输入(需记下内核的UUID或存储的绝对路径)
    cat /boot/grub/grub.conf
    记下UUID,kernel的路径
    将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程序,需提前备份MBR前446字节
    (进行破坏)
    dd if=/dev/zero of=/dev/sda bs=446 count=1
    reboot
    进入急救模式:ok,ok,shell start shell,ok

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


    chroot /mnt/sysimage

    fdisk -l | grep "/dev/"

    mount /dev/sdb1/ /backup

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

    exit
    reboot

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

    方法三:若无MBR备份,进入急救模式,重新安装grub程序
    dd if=/dev/zero of=/dev/sda bs=446 count=1(模拟破坏)
    reboot
    进入安全模式shell 同方法三
    改变磁盘根目录到/mnt/sysimage
    重新安装grub引导程序
    退出重启
    chroot /mnt/sysimage
    fdisk -l /dev/sda
    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
    ===============================================
    清除Linux各种密码
    方法一:
    重启,读秒状态下,按esc,按e,光标选择kernel,按e
    若此时,在quit后,空格,输入1,进入1模式,引导b
    进入1模式,可直接登录
    passwd
    设置新密码
    reboot

    方法二:
    进入急救模式shell修改密码
    执行passwd root命令,修改root密码即可

    方法三:
    修改/etc/shadow/文件
    vim /etc/shadow
    删除密文,x!(强制保存退出)
    ======================================
    设置grub引导密码
    vim /boot/grub/grub.conf
    title行下一行设置第一个密码,在按e时就会启动第一个密码
    root (hd0,0)行与kernel之间的位置(即root (hd0,0)行后面)设置密码,在按b的环节,就会启动第二个密码
    =======================================
    清空grub引导密码
    进入单用户模式,将/boot/grub/grub.conf文件内的passwd内容删除并重启*******/boot/grub/grub.conf文件的快捷方式 /etc/grub/grub.conf
    ====================================================
    系统服务控制
    service 服务名称 控制类型
    /etc/init.d 服务名称 控制类型
    /etc/init.d start|stop|restart|reload|status
    service start|stop|restart|reload|status
    启动 停止 重启 平滑重启 查看状态
    start 当前立刻启动程序
    reload 不影响用户的使用(无需关闭),重新开启程序
    =====================================
    chkconfig命令 (作用与ntsysv一样,ntsysv 利用图形界面控制)
    格式:
    chkconfig --list
    chkconfig --list 服务名称
    chkconfig --level 级别列表 服务名on/off
    eg:chkconfig --level 35 iptables on(启动3模式和5模式)
    chkconfig iptables off (默认关闭2/3/4/5模式)
    =======================================
    添加服务,使服务可以用/etc/init.d(/etc/rc.d/init.d文件的快捷方式)或service启停
    添加:
    方法一:将该服务的脚本拷入/etc/rc.d/init.d文件夹下,保证其状态为可执行;
    方法二:使用chkconfig命令将服务添加到服务列表中:
    chkconfig --add camsd (可用service来启动/停止)
    删除:
    chkconfig --del camsd

                         

  • 相关阅读:
    164 Maximum Gap 最大间距
    162 Find Peak Element 寻找峰值
    160 Intersection of Two Linked Lists 相交链表
    155 Min Stack 最小栈
    154 Find Minimum in Rotated Sorted Array II
    153 Find Minimum in Rotated Sorted Array 旋转数组的最小值
    152 Maximum Product Subarray 乘积最大子序列
    151 Reverse Words in a String 翻转字符串里的单词
    bzoj3994: [SDOI2015]约数个数和
    bzoj 4590: [Shoi2015]自动刷题机
  • 原文地址:https://www.cnblogs.com/zhoulang8999/p/9872642.html
Copyright © 2011-2022 走看看