zoukankan      html  css  js  c++  java
  • Linux系统——引导过程与服务控制

    一、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

    (重启)

    #t

    (进行故障修复)

    进入安全模式

    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引导故障

    故障原因:

    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

    四、清除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.dservice启停

    添加:

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

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

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

    删除:

    # chkconfig --del camsd

                           

  • 相关阅读:
    javascript的全局变量和局部变量
    Google Analytics统计代码GA.JS
    display和visible的区别
    div+css实现带三角箭头提示框
    css兼容IE8的一个简便方法 [转]
    20个值得关注最新的jQuery Plugins
    分享40多个新鲜的jQuery图片和内容幻灯插件
    JQuery插件让图片旋转任意角度且代码极其简单
    Android UI dp sp
    MaxScript用二进制读取方式获取Max文件版本
  • 原文地址:https://www.cnblogs.com/daisy118/p/9840552.html
Copyright © 2011-2022 走看看