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

                         

  • 相关阅读:
    记一次简单的SQL优化
    JAVA 根据数据库表内容生产树结构JSON数据
    Maven 整合FreeMarker使用
    JAVA FreeMarker工具类
    JAVA 分页工具类及其使用
    JAVA 日期格式工具类DateUtil.java
    JAVA 读写Excel
    简单Linux命令学习笔记
    WEB安全隐患
    metasploit 连接database相关问题
  • 原文地址:https://www.cnblogs.com/zhoulang8999/p/9872642.html
Copyright © 2011-2022 走看看