您当前的位置: 首页 >  centos

少林码僧

暂无认证

  • 2浏览

    0关注

    317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CentOS6启动和内核管理

少林码僧 发布时间:2017-05-14 09:13:11 ,浏览量:2

文章目录
  • Linux组成kernel+rootfs
    • kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安
    • rootfs: 程序和glibc
    • 内核设计流派:
      • 单内核(monolithic kernel) :Linux
      • 微内核(micro kernel) :Windows, Solaris
    • Linux 内核特点:
      • 支持模块化:.ko (内核对象)
      • 组成部分:
  • CentOS6启动流程
    • POST :Power-On-Self-Test ,加电自检
    • ROM :BIOS ,Basic Input and Output System
    • RAM :CMOS 互补金属 氧化物半导体
    • bootloader: 引导加载器,引导程序
      • windows: ntloader ,仅是启动OS
      • Linux :功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核
    • LILO :LInux LOader
    • MBR:
    • GRUB: GRand Unified Bootloader 多重操作系统启动管理器。用来引导不同系统,如windows,linux。
    • kernel: :
    • ramdisk
    • 系统初始化
  • ramdisk 管理
  • init 程序的类型:
    • SysV: init, CentOS 5 之前
    • Upstart: init,CentOS 6
    • Systemd :systemd, CentOS 7
  • 运行级别:为系统运行或维护等目的而设定;0-6 :7 个级别
  • init 初始化
  • CentOS 5 的inittab 文件
  • CentOS 6 /etc/inittab
    • 示例:
  • /etc/rc.d/rc.sysinit: 系统初始化脚本
    • /var/lock/subsys/ 运行中的服务会在次目录生成对应的文件,作为服务是否启动试的判据
    • 务在所有级别的启动或关闭设定情形:
    • 添加:
    • 删除:
    • 修改指定的链接类型
    • ntsysv
  • xinetd 管理的服务
    • service 命令:手动管理服务
    • service 服务 start|stop|restart
    • service --status-all
    • 瞬态(Transient )服务被xinetd 进程所管理
    • 用chkconfig 控制的服务:
    • 总结:
  • grub legacy
    • CentOS 6 启动流程:
    • grub: GRand Unified Bootloader
    • 配置文件:/boot/grub/grub.conf MBR引导->GRUB->加载内核->启动init进程->读取/etc/inittab文件,/etc/init/*.conf文件 执行/etc/rc.d/rc.sysyinit初始化脚本->执行/etc/rc.d/rc脚本->加载/etc/rc#.d/下所有脚本(#为启动级别,这里是开机要启动的各种服务)->执行/etc/rc.d/rc.local脚本(所有服务启动后执行此脚本)->执行/bin/login 程序,进入登录状态 1. 加载BIOS 的硬件信息,获取第一个启动设备 2. 读取第一个启动设备MBR 的引导加载程序(grub) 的启动信息 3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备 4. 核心执行init 程序,并获取默认的运行信息 5.init 程序执行/etc/rc.d/rc.sysinit 文件 6. 启动核心的外挂模块 7.init 执行运行的各个批处理文件(scripts) 8.init 执行/etc/rc.d/rc.local 9. 执行/bin/login 程序,等待用户登录 10. 登录之后开始以Shell控制主机

      注意:正常级别下,最后启动一个服务S99local没有链接至/etc/rc.d/init.d的一个服务脚本,而是指向了 /etc/rc.d/rc.local脚本

      若不想把服务脚本放置于/etc/rc.d/init.d/目录 且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中/etc/rc.d/rc.local在指定运行级别脚本后运行

      可以根据情况进行自定义修改

      POST :Power-On-Self-Test ,加电自检

      是BIOS 功能的一个主要部分 。负责 完成对CPU 、主板、内存 、硬盘 子系统、显示 子系统、 串并行接 口、键盘、CD-ROM 光驱 等 硬件情况 的 检测 。

      ROM :BIOS ,Basic Input and Output System

      保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、 开机加电 自检程序和系统启动自举程序等。

      RAM :CMOS 互补金属 氧化物半导体

      保存各项 参数的设定按次序查找引导设备,第一个有引导程序的设备为本次启动设备

      bootloader: 引导加载器,引导程序 windows: ntloader ,仅是启动OS Linux :功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核 LILO :LInux LOader MBR:

      446: bootloader, 64: 分区表, 2: 55AA

      GRUB: GRand Unified Bootloader 多重操作系统启动管理器。用来引导不同系统,如windows,linux。

      GRUB 0.X: GRUB Legacy, , GRUB2

      primary boot loader : 1st stage ,1.5 stage secondary boot loader :2nd stage ,分区文件

      kernel: :
      • 自身初始化:
      • 探测可识别到的所有硬件设备
      • 加载硬件驱动程序(借助于ramdisk 加载驱动)
      • 以只读方式挂载根文件系统
      • 运行用户空间的第一个应用程序:/sbin/init
      ramdisk

      内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件 访问,并加载相应的硬件驱动

      • ramdisk --> ramfs 提高速度 CentOS 5: initrd 工具程序:mkinitrd
      • CentOS 6 ,7: initramfs 工具程序:mkinitrd, dracut
      系统初始化

      POST --> BootSequence (BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs( 只读) --> init (systemd) )

      1. boot目录中的initramfs-3.10.0-327.el7.x86_64.img 文件被误删,如何恢复之?
      ramdisk 管理

      ## ramdisk 文件的制作:

      (1) mkinitrd 命令

      为当前正在使用的内核重新制作ramdisk 文件 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) (2) dracut 命令

      为当前正在使用的内核重新制作ramdisk 文件 dracut /boot/initramfs-$(uname -r).img $(uname -r)

      init 程序的类型: SysV: init, CentOS 5 之前

      配置文件:/etc/inittab

      Upstart: init,CentOS 6

      配置文件:/etc/inittab, /etc/init/*.conf

      Systemd :systemd, CentOS 7

      配置文件:/usr/lib/systemd/system /etc/systemd/system

      /sbin/init CentOS6之前

      运行级别:为系统运行或维护等目的而设定;0-6 :7 个级别 numcomplications0关机1单用户模式(root 自动登录), single, 维护模式2多用户模式,启动网络功能,但不会启动NFS ;维护模式3多用户模式,正常模式;文本界面4预留级别;可同3 级别5多用户模式,正常模式;图形界面6重启
      默认级别: 3, 5
      切换级别:init #
      查看级别:runlevel ; who -r
      
      runlevel
      N 3
      N为占位符,如果是从其他级别切换过来,则n显示的上次的运行级别
      
      init 初始化
      init 读取其初始化文件:/etc/inittab
      初始运行级别(RUN LEVEL)
      系统初始化脚本
      对应运行级别的脚本目录
      捕获某个关键字顺序
      定义UPS 电源终端/ 恢复脚本
      在虚拟控制台生成getty
      在运行级别5 初始化X
      
      CentOS 5 的inittab 文件

      配置文件:/etc/inittab 每一行定义一种action 以及与之对应的process

      id:runlevel:action:process
      action:
      wait:  切换至此级别运行 一次
      respawn :此process 终止,就重新启动之
      initdefault :设定默认运行级别;process 省略
      sysinit :设定系统初始化方式,此处一般为指定
      /etc/rc.d/rc.sysinit
      ca::ctrlaltdel:/sbin/shutdown -t3 -r now #ctrl+alt+del在字符界面重启
      
      #设置f1-f6六个虚拟终端,可以增加
      # Run gettys in standard runlevels
      1:2345:respawn:/sbin/mingetty tty1
      2:2345:respawn:/sbin/mingetty tty2
      3:2345:respawn:/sbin/mingetty tty3
      4:2345:respawn:/sbin/mingetty tty4
      5:2345:respawn:/sbin/mingetty tty5
      6:2345:respawn:/sbin/mingetty tty6
      7:2345:respawn:/sbin/mingetty tty10 # 新增的
      # Run xdm in runlevel 5
      x:5:respawn:/etc/X11/prefdm -nodaemon #设置5为图形界面
      
      id:3:initdefault:
      si::sysinit:/etc/rc.d/rc.sysinit
      l0:0:wait:/etc/rc.d/rc 0
      l1:1:wait:/etc/rc.d/rc 1...
      l6:6:wait:/etc/rc.d/rc 6
      

      #ca::ctrlaltdel:/sbin/shutdown -t3 -r now(t3延时3秒)生产中最好注释此行,防止误操作重启(对图形界面无效)

      CentOS 6 /etc/inittab

      /etc/inittab 设置系统默认的运行级别

      id:3:initdefault:

      示例:

      破解CentOS5 和6 的root 口令

      • /etc/init/control-alt-delete.conf(该文件中最好注释掉ctrl+alt+del重启功能,防止误操作重启)
      • /etc/init/tty.conf
      • /etc/init/start-ttys.conf
      • /etc/init/rc.conf
      • /etc/init/prefdm.conf # 定义图形界面的启动级别
      /etc/rc.d/rc.sysinit: 系统初始化脚本
      • (1) 设置主机名
      • (2) 设置欢迎信息
      • (3) 激活udev 和selinux
      • (4) 挂载/etc/fstab 文件中定义的文件系统
      • (5) 检测根文件系统,并以读写方式重新挂载根文件系统
      • (6) 设置系统时钟
      • (7) 激活swap 设备
      • (8) 根据/etc/sysctl.conf 文件设置内核参数
      • (9) 激活lvm 及software raid 设备
      • (10) 加载额外设备的驱动程序
      • (11) 清理操作
      说明:rc N -->  意味着读取/etc/rc.d/rcN.d/
      K*: K##* :## 运行次序;数字越小,越先运行;数字
      越小的服务,通常为依赖到别的服务
      S*: S##* :## 运行次序;数字越小,越先运行;数字
      越小的服务,通常为被依赖到的服务
      for srv in /etc/rc.d/rcN.d/K*; do
      $srv stop
      done
      for srv in /etc/rc.d/rcN.d/S*; do
      $srv start
      done
      
      /var/lock/subsys/ 运行中的服务会在次目录生成对应的文件,作为服务是否启动试的判据

      # chkconfig命令

      务在所有级别的启动或关闭设定情形:

      chkconfig [–list] [name]

      添加:

      SysV 的服务脚本放置于/etc/rc.d/init.d (/etc/init.d) chkconfig --add name

      #!/bin/bash
      #LLLL  表示初始在哪个级别下启动,- 表示都不启动
      # chkconfig: LLLL nn nn
      
      删除:

      chkconfig --del name

      修改指定的链接类型

      chkconfig [–level levels] name –level LLLL: 指定要设置的级别;省略时表示2345

      ntsysv xinetd 管理的服务 service 命令:手动管理服务 service 服务 start|stop|restart service --status-all 瞬态(Transient )服务被xinetd 进程所管理

      进入的请求首先被xinetd 代理 配置文件:/etc/xinetd.conf 、/etc/xinetd.d/与libwrap.so 文件链接

      用chkconfig 控制的服务:

      chkconfig tftp on

       1:2345:respawn:/usr/sbin/mingetty tty1
      2:2345:respawn:/usr/sbin/mingetty tty2
      ...
      6:2345:respawn:/usr/sbin/mingetty tty6
      mingetty 会自动调用login 程序
      x:5:respawn:/etc/X11/prefdm -nodaemon
      
      总结:

      开机POST加电自检,检测cpu内存等硬件是否有问题,检测完成后在BISO里面查找引导计算机启动的设备的设置,该设置存储于CMOS,如果是硬盘引导启动会读取硬盘的MBR(446字节+64+2),此时进入stage1;接下来加载/boot/文件系统,由于446字节无法存储/boot文件系统,所有在446字节里面存储的是找到文件系统的指针,这个阶段叫1.5阶段;然后进入stage2读取/boot/grub/grub.conf,加载内核vmlinuz,为了挂载根先加载initramfs作为虚拟文件系统来识别根文件系统;根挂载完后访问下面第一个程序/sbin/init,此程序将读取操作系统配置/etc/inittab,读取运行级别设置,进行服务初始化/etc/rc.d/rc.sysinit,继而读取/etc/fstab挂载,根据相应的启动级别加载/etc/rc.d/rcn.d/下面的服务脚本,先执行k开头的(S25netfs会重读fatab挂载网络资源)最后执行/etc/rc.d/rc.local(s99local)脚本(非服务脚本),然后出现登录界面 这里写图片描述

      • /sbin/init --> (/etc/inittab) --> 设置默认运行级别 -->运行系统初始脚本、完成系统初始化 --> ( 关闭对应下需要关闭的服务) 启动需要启动服务 --> 设置登录终端
      • CentOS 6 init 程序为: upstart, 其配置文件: /etc/inittab, /etc/init/*.conf法,配置文件的语法遵循upstart配置文件语法格式,和CentOS5不同
      grub legacy CentOS 6 启动流程:

      POST --> Boot Sequence(BIOS) --> Boot Loader --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init –

      (/etc/inittab, /etc/init/*.conf) --> 别 设定默认运行级别 --> 系统 初始化脚本 rc.sysinit --> 务 关闭或启动对应级别的服务 --> 启动终端

      grub: GRand Unified Bootloader

      grub 0.97: grub legacy grub 2.x: grub2 grub legacy: stage1: mbr stage1_5: mbr 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统 stage2 :磁盘分区(/boot/grub/)

      配置文件:/boot/grub/grub.conf root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot grub legacy 配置文件 配置文件:/boot/grub/grub.conf 设定项含义default=#设定默认启动的菜单项;落单项(title) 编号从0 开始timeout=#指定菜单项等待选项选择的时长splashimage=(hd#,#)/PATH/XPM_FILE菜单背景图片文件路径hiddenmenu隐藏菜单password [–md5] STRING启动菜单编辑认证title TITLE定义菜单项“标题”, 可出现多次root (hd#,#)查找stage2及kernel文件所在设备分区;为grub 的根kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]启动的内核initrd /PATH/TO/INITRAMFS_FILE内核匹配的ramfs 文件password [–md5|–encrypted ] STRING启动选定的内核或操作系统时进行认证 grub加密

      ### 生成grub 口令

      • grub-md5-crypt
      • grub-crypt
      vim /etc/grub.conf
      default=0
      timeout=5
      splashimage=(hd0,0)/grub/splash.xpm.gz
      hiddenmenu
      password --encrypted $6$6zfuNMferERFGffg/hf$JdwlfhK
      
      破解root 口令:

      启动系统时,设置其运行级别1

      进入单用户模式 :
      • (1) 编辑grub 菜单( 选定要编辑的title ,而后使用e 命令)
      • (2) 在选定的kernel 后附加 1, s, S 或single 都可以
      • (3) 在kernel 所在行,键入“b”
      grub安装
      • (1) grub-install
      安装grub stage1 和stage1_5 到/dev/DISK 磁盘上,并
      复制GRUB到 相关文件到 DIR/boot 目录下
      grub-install --root-directory=DIR /dev/DISK
      
      • (2) grub
      grub> root (hd#,#)
      grub> setup (hd#)
      
      实例
      1. 破解root 口令,并为grub 设置保护功能 开机enter 按a->1或s或S或single进入单用户模式,修改密码
      2. 制作启动菜单界面背景图
      yum  install ImageMagick
      onvert -resize 640x480 -colors 14 win.jpg win.xpm
      head -n 10 win.xpm
      cp win.xpm /boot/grub
      /boot/grub
      gzip win.xpm
      
      1. 删除vmlinuz 和initramfs 文件后无法启动, 两种方法恢复之
      #initramfs文件
      chroot /mnt/sysimage
      df#可以看到原系统的磁盘设备
      cd /boot
      ls
      #是initframs内核文件丢失导致,解决方案:
      #修复initramfs文件
      mkinitrd ./initramfs-`uname -r`.img `uname -r`
      #如果是CenOS5 则执行
      mkinitrd ./initrd-`uname -r`.img `uname -r`
      
      若修复失败可重装内核
      #查看当前系统使用的内核
      uname -r
      从光盘安装内核(注意要先切换根)
      lsblk 可以看到光盘设备是sr0
      挂载光盘
      mkdir /mnt/cdrom
      mount /dev/sr0 /mnt/cdrom
      df
      rpm -ivh kernel-2.6.e64.......rpm --force
      
      启动后出现grub,则需要修复grub
      chroot /mnt/sysimage
      grub-install /dev/sda
      exit
      exit
      reboot
      
      #vmlinuz文件
      光盘里面/images/preboot/vmlinuz和/isolinux/vmlinuz即为内核文件,可以直接cp过来
      # vmlinuz的文件名可参考/boot/grub/grub.conf中的配置,亦可直接改配置中的文件名,两者保持一致即可
      cp -av /mnt/cdeom/isolinux/vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r`
      
      1. /etc/inittab 设置默认6 恢复之
      开机回车,a->1|s|signal进入单用户模式
      或者
      开机回车,a->3
      然后将/etc/inittab改回来
      
      1. 某个服务无法启动,系统无法启动,解决之
      cd /etc/init.d/
      vim testsrv
      输入以下内容
      #!/bin/bash
      #chkconfig:2345 99 00
      #description:this service is used for test
      case $1 in
      start)
          echo 'the service is started'
          touch /root/testsrv
          ;;  
      stop)
          echo 'the service is stopped'
          rm -f /boot/testsrv
          ;;  
      status)
          [ -f /boot/testsrv ] && echo 'service testsrv is running...'||echo 'service testrv is stopped'
          ;;  
      *)
          echo 'Usage start|stop|status'
      
      注意#chkconfig:2345 99 00这里开机启动的序号不能大于99
      #给执行权限
      chmod +x testsrv 
      chkconfig --add testsrv
      chkconfig testsrv --level 1 on
      修改启动时间
      reboot
      #!/bin/bash
      #chkconfig:12345 00 00
      #description:this service is used for test
      case $1 in
      start)
          echo 'the service is started'
          sleep 100000
          touch /root/testsrv
          ;;  
      
      由于启动序号设置太小,网络服务还没起来,无法连接xshell,而单用户模式也设置了开机启动,所以需要按照如下方法修复
      开机按回车进入内核选则项
      按a 在quite后添加 init=/bin/bash(默认为/sbin/init)
      此时开机进入bash以后根目录是以只读方式挂载的,需要重新挂载
      mount -o remount,rw /
      chkconfig --level  12345 testsrv off
      exit 
      reboot
      
      1. 破坏MBR446,恢复之

      注意grub.conf文件会丢失,要提前备份

      #备份mbr
      dd if=/dev/sda of=/root/mbr bs=1 count=466
      
      进入单用户模式
      chroot /mnt/sysimage
      grub-install /dev/sda 从“/dev/sda”中找到GRUB程序并进行修复
      设备名参考
      (hd#,#)
      hd#:  磁盘编号,用数字表示;从0 开始编号
      #:  分区编号,用数字表示;  从0 开始编号
      (hd0,0)  第一块硬盘,第一个分区
      
      
      
      1. 破坏stage1.5

      grub命令依赖于grub目录里面的文件

      grub
      grub> root (hd#,#)
      grub> setup (hd#)
      
      #备份分区表
      dd if=/dev/sda of=/root/mbr count=446 bs=1 conv=notrunc
      # 备份grub.conf
      cp -av /boot/grub/grub.conf /root/
      # 破坏mbr
      dd if=/dev/zero of=/dev/sda bs=1 count=446 conv=notrunc
      
      启动时会出现operating System not found的提示,说明没有mbr来引导操作系统
      reboot
      
      chroot /mnt/sysimage
      df 查看boot和/是否挂载
      grub
      root (hd0,0) # (hd0,0)表示第一块硬盘的第一个分区,也就是sda的sda1
      setup (hd0)
      
      
      1.5阶段前512字节记录的是后面27个扇区具体要读取的内容,如果将后面的内容破坏掉,系统仍无法正常启动
      #备份
       dd if=/dev/sda of=/root/mbr2 bs=1 count=2048 skip=512
      #破坏
      dd if=/dev/zero of=/dev/sda bs=1 count=2048 seek=512 conv=notrun
      c
      reboot
      此时开机界面不会出现倒计时
      进入救援模式
      用grub或grub-install修复
      chroot /mnt/sysimage
      grub-install /dev/sda
      sync
      exit
      exit
      reboot
      
      
      
      1. 破坏stage2
      
      #备份/boot/grub/grub.conf
      #清空/boot/grub目录
      rm -rf /boot/grub
      reboot
      # 进入救援模式
      df 确保/boot已挂载
      chroot /mnt/sysimage
      df
      grub-install /dev/sda
      sync
      exit
      exit
      reboot
      此时由于没有/boot/grub/grub.conf文件,开机会进入grub命令行
      输入ker(tab补全)  /v(tab)补全 root=/dev/vg0/root selinux=0 回车
      ini(tab补全) /initra(tab补全)   回车
      boot
      (也可以在救援模式下手写grub文件)
      
      

      8.为grub加口令

      #生成md5口令
      grub-md5-crypt
      #grub-crypt (sha512)
      [root@lee: /root]# grub-crypt
      Password: 
      Retype password: 
      $6$IwfTNtZWfvNHA2ec$RWiVdrt78Tbbw2fsvAA/icQWCfIgy3KGkoFJHRntceUBwK.Vnn9Mhmz1JfRt/yWdtEbbMaWeWFSTiYUuxTiPn.
      
      添加至配置文件
      default=0
      timeout=5
      #sha512的加密方式需要指定--encrypted
      password --encrypted $6$IwfTNtZWfvNHA2ec$RWiVdrt78Tbbw2fsvAA/icQWCfIgy3KGkoFJHRntceUBwK.Vnn9Mhmz1JfRt/yWdtEbbMaWeWFSTiYUuxTiPn.
        splashimage=(hd0,0)/grub/splash.xpm.gz
        hiddenmenu
      title CentOS 6 (2.6.32-642.el6.x86_64)
            root (hd0,0)
      kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_lee-lv_root rd_LVM_    LV=vg_lee/lv_root rd_NO_LUKS rd_LVM_LV=vg_lee/lv_swap rd_NO_MD crashkernel=128M LANG    =zh_CN.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
      initrd /initramfs-2.6.32-642.el6.x86_64.img
      # 也可直接用明文
      password $1$fYmOJ/$0n6c5b/WPxt0nDOJPsrJq0
       
      
      
      
      
      1. 删除/boot/ 所有内容,然后恢复
      1)/boot/vmlinuz
      cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-`uname -r`
      2)/boot/initramfs.img
      mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
      rpm -ivh /mnt/cdrom/Packages/kernel.XXX.rpm 
      3)grub/*
      grub-install /dev/sda
      4)grub/grub.conf
      default=0
      timeout=3
      title 23M
      kernel /vmlinuz-XXXX root=/dev/sda2
      initrd /initramfs-XXXX.img
      ``
      10. 在普通分区,删除/boot/ 所有内容及/etc/fstab,恢复
      

      1)救援模式,先/etc/fastab恢复 df blkid mount /dev/sda1 /mnt/sda1 mount /dev/sda2 /mnt/sda2 mount /dev/sda3 /mnt/sda3 vim /etc/fstab 2)reboot,重新进入救援模式 df 确保挂载成功 3)修复grub grub-install /dev/sda 4)修复kernel initramfs.img mount /dev/sr0 /mnt/ rpm -ivh /mnt/Packages/kernel-XXX.rpm --force 5)vim /boot/grub/grub.conf

      11. 使用逻辑卷,删除/boot/ 所有内容及/etc/fstab,恢复
      

      1)救援模式,先/etc/fastab恢复 lsblk(失效) df blkid fdisk -l sda1带*为boot分区 mkdir /mnt/{sda1,sda2} mount /dev/sda1 /mnt/sda1 mount /dev/mapper/vg_lee-lv_root /mnt/sda2 lvdisplay (可以看到NOT available) vgchange -ay 激活卷组 lvdisplay

      vim /mnt/sda2/fstab(r!blkid) 2)reboot,重新进入救援模式 df 确保挂载成功 3)修复grub grub-install /dev/sda 4)修复kernel initramfs.img mount /dev/sr0 /mnt/ rpm -ivh /mnt/Packages/kernel-XXX.rpm --force 5)vim /boot/grub/grub.conf

      default=0 timeout=5 title=CentOs6.8 kernel /vmlinuz-2.6.32-642.el6.x86_6 root=/dev/mapper/vg_lee-lv_root selinux=0 initrd /initramfs-2.6.32-642.el6.x86_64.img

      
      
      

      免责声明: 一切资料仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。资料来自网络,版权争议与本人无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。

      更=多=课程请加=v=信=== a518958666 基于SpringCloud 微服务架构 广告系统设计与实现 系统学习docker docker前后端分离实战 Docker+Kubernetes(k8s)微服务容器化实战 Go语言实战抽奖系统 Go语言开发分布式任务调度 轻松搞定高性能Crontab 20小时快速入门go语言 Java从零到企业级电商项目实战 SSM主流框架入门与综合项目实战 Socket网络编程进阶与实战

      1. 基于Python玩转人工智能最火框架 TensorFlow应用实践
      2. webapp书城开发
      3. 组件方式开发 Web App全站
      4. 前端到后台ThinkPHP开发整站
      5. MySQL性能管理及架构设计
      6. 响应式开发一招致胜
      7. 掌握React Native技术转型随意切换
      8. Yii 2.0开发一个仿京东商城平台
      9. Python高效编程技巧实战
      10. 快速开发轻量级App
      11. 6小时 jQuery开发一个前端应用
      12. Android架构师之路 网络层架构设计与实战
      13. 程序猿的内功修炼,学好算法与数据结构
      14. Vue.js高仿饿了么外卖App 1.0到2.0版本完美升级
      15. Android 专项测试 Python篇
      16. 微信小程序入门与实战 常用组件API开发技巧项目实战
      17. Android 5.0+高级动画开发 矢量图动画 轨迹动画路径变换
      18. Android自动化测试实战 Java篇 主流工具 框架 脚本
      19. Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台
      20. 高性能可扩展MySQL数据库设计及架构优化 电商项目
      21. 带领新手快速开发Android App
      22. Angular JS 仿拉勾网 WebApp 开发移动端单页应用
      23. 组件化封装思想实战Android App
      24. React.js入门基础与案例开发
      25. Yii 2.0进阶版 高级组件 优化京东平台
      26. 双平台真实开发GitHub App React Native技术全面掌握
      27. 玩转算法面试 leetcode题库分门别类详细解析
      28. Thinkphp 5.0 仿百度糯米开发多商家电商平台
      29. ThinkPHP5.0正式版第二季:实战开发企业站【完结】
      30. 最容易上手的Vue 2.0入门实战教程
      31. 聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎
      32. Angular 4.0从入门到实战 打造股票管理网站
      33. Java Spring带前后端开发完整电商平台
      34. Node.js项目线上服务器部署与发布
      35. Java大牛 带你从0到上线开发企业级电商项目
      36. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
      37. ES6零基础教学 解析彩票项目
      38. React高级实战 打造大众点评 WebApp
      39. BAT大咖助力 全面升级Android面试
      40. 全程MVP手把手 打造IM即时通讯Android APP
      41. 微信服务号+Yii 2.0构建商城系统全栈应用
      42. 机器学习入门 Scikit-learn实现经典小案例
      43. 腾讯大牛亲授 Web 前后端漏洞分析与防御技巧
      44. IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 难度中级
      45. Vue 2.0 高级实战-开发移动端音乐 WebApp
      46. 全新升级 Kotlin系统入门与进阶
      47. 对接真实数据 从0开发前后端分离企业级上线项目
      48. Android应用发展趋势必备武器 热修复与插件化
      49. Laravel 快速开发简书
      50. 以慕课网日志分析为例 进入大数据 Spark SQL 的世界
      51. Get全栈技能点 Vue2.0/Node.js/MongoDB 打造商城系统
      52. Python操作三大主流数据库
      53. 前端JavaScript面试技巧
      54. Java SSM快速开发仿慕课网在线教育平台
      55. Android通用框架设计与完整电商APP开发
      56. Spring Boot企业微信点餐系统
      57. 开发微信全家桶项目 Vue/Node/MongoDB高级技术栈全覆盖
      58. Web自动化测试 Selenium基础到企业应用
      59. 高性能的 PHP API 接口开发
      60. 企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构
      61. Angular 打造企业级协作平台
      62. Python Flask 构建微电影视频网站
      63. Spring Boot带前后端 渐进式开发企业级博客系统
      64. 从零开发Android视频点播APP
      65. 前端跳槽面试必备技巧
      66. 10小时入门大数据
      67. 让你页面速度飞起来 Web前端性能优化
      68. Google面试官亲授 升级Java面试
      69. LoadRunner 工具使用 企业级性能测试实战
      70. 360大牛带你横扫PHP职场 全面解读PHP面试
      71. Python前后端分离开发Vue+Django REST framework实战
      72. Spring Security技术栈开发企业级认证与授权
      73. PHP开发高可用高安全App后端
      74. 看得见的算法 7个经典应用诠释算法精髓
      75. 全网最热Python3入门+进阶 更快上手实际开发
      76. Android互动直播APP开发
      77. JMeter 深入进阶性能测试体系 各领域企业实战
      78. Node.js入门到企业Web开发中的应用
      79. SSM到Spring Boot 从零开发校园商铺平台
      80. 深度学习之神经网络核心原理与算法
      81. BAT大厂APP架构演进实践与优化之路
      82. PHP秒杀系统 高并发高性能的极致挑战
      83. Java开发企业级权限管理系统
      84. Redux+React Router+Node.js全栈开发
      85. Redis从入门到高可用,分布式实践
      86. ES6+ 开发电商网站的账号体系 JS SDK
      87. Spark Streaming实时流处理项目实战
      88. 快速上手Linux 玩转典型应用
      89. Python接口测试框架实战与自动化进阶
      90. Python3数据科学入门与实战
      91. Android高级面试 10大开源框架源码解析
      92. 移动端App UI 设计入门与实战
      93. 精通高级RxJava 2响应式编程思想
      94. Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式
      95. Webpack + React全栈工程架构项目实战精讲
      96. 快速上手Ionic3 多平台开发企业级问答社区
      97. 全面系统讲解CSS 工作应用+面试一步搞定
      98. 跨平台混编框架 MUI 仿豆瓣电影 APP
      99. Kotlin打造完整电商APP 模块化+MVP+主流框架
      100. BAT大牛亲授 基于ElasticSearch的搜房网实战
      101. Python3入门机器学习 经典算法与应用
      102. Java秒杀系统方案优化 高性能高并发实战
      103. 四大维度解锁 Webpack3.0 工具全技能
      104. 手工测试企业项目实践及面试提升
      105. 基于Storm构建实时热力分布项目实战
      106. Java深入微服务原理改造房产销售平台
      107. 全网稀缺Python自动化运维项目实战
      108. 前端成长必经之路-组件化思维与技巧
      109. 基于Python玩转人工智能最火框架 TensorFlow应用实践
      110. Koa2框架从0开始构建预告片网站
      111. React16+React-Router4 从零打造企业级电商后台管理系统
      112. Google资深工程师深度讲解Go语言
      113. 微信小游戏入门与实战 刷爆朋友圈
      114. Elastic Stack从入门到实践
      115. Python移动自动化测试面试
      116. Python3数据分析与挖掘建模实战
      117. Tomcat+Memcached/Redis集群 构建高可用解决方案
      118. 系统学习Docker 践行DevOps理念
      119. Spring Cloud微服务实战
      120. 揭秘一线互联网企业 前端JavaScript高级面试
      121. OpenCV+TensorFlow 入门人工智能图像处理
      122. 基于Golang协程实现流量统计系统
      123. 移动端自动化测试Appium 从入门到项目实战Python版
      124. UI动效设计从入门到实战 PC与移动界面设计必学
      125. Java并发编程与高并发解决方案
      126. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
      127. 韩天峰力荐 Swoole入门到实战打造高性能赛事直播平台
      128. Docker+Kubernetes(k8s)微服务容器化实践
      129. Python Flask高级编程
      130. ZooKeeper分布式专题与Dubbo微服务入门
      131. App界面设计利器Sketch 精选案例合集
      132. Python高级编程和异步IO并发编程
      133. 新浪微博资深大牛全方位剖析 iOS 高级面试
      134. Vue2.5开发去哪儿网App 从零基础入门到实战项目
      135. 最全面的Java接口自动化测试实战
      136. HBase+SpringBoot实战分布式文件存储
      137. Gradle3.0自动化项目构建技术精讲+实战
      138. 玩转数据结构 从入门到进阶
      139. MyCAT+MySQL 搭建高可用企业级数据库集群
      140. 验证码图像识别,快速掌握TensorFlow模型构建与开发
      141. SpringBoot2.0不容错过的新特性 WebFlux响应式编程
      142. 响应式开发一招致胜
      143. jquery源码分析
      144. AngularJS全栈开发知乎
      145. 揭秘一线互联网企业 前端JavaScript高级面试
      146. JavaScript版 数据结构与算法
      147. Koa2 实现电影微信公众号前后端开发
      148. Koa2+Nodejs+MongoDb 入门实战视频教程
      149. Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备
      150. Vue.js 源码全方位深入解析
      151. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
      152. Vue全家桶+SSR+Koa2全栈开发美团网
      153. 飞速上手的跨平台App开发
      154. 前端JS基础面试技巧
      155. 前端跳槽面试必备技巧
      156. 让你页面速度飞起来 Web前端性能优化
      157. 微信小程序商城构建全栈应用
      158. 移动Web APP开发之实战美团外卖
      159. Thinkphp 5.0 仿百度糯米开发多商家电商平台
      160. ThinkPHP5.0正式版第二季:实战开发企业站
      161. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
      162. 前端到后台ThinkPHP开发整站
      163. PHP从基础语法到原生项目开发
      164. PHP高性能 高价值的PHP API
      165. 360大牛全面解读PHP面试
      166. PHP开发高可用高安全App后端
      167. PHP秒杀系统 高并发高性能的极致挑战
      168. Swoole入门到实战打造高性能赛事直播平台
      169. YII 2.0开发一个仿京东商城平台

      … … 更=多=课程请加=v=信=== a518958666

      ╭══════════════════════════════════════════╮ ║  ║ 说明:教程版权归原作者所有,本人只是负责搜集整理,本人 ║ ║ 不承担任何技术及版权问题。本人分享的任何教程仅提 ║ ║ 供学习参考,不得用于商业用途,请在下载后在24小时 ║ ║ 内删除。 ║ ║ ║ ║ 1.请遵守中华人民共和国相关法律、条例 ║ ║ 2.本人提供的各类视频教程仅供研究学习,本人不承担观看 ║ ║ 本教程后造成的一切后果 ║ ║ 3.本人不保证提供的教程十分安全或是完全可用,请下载后 ║ ║ 自行检查 ║ ║ 4.本人提供的教程均为网上搜集,如果该程序涉及 ║ ║ 或侵害到您的版权请立即写信通知我们。 ║ ║ 5.如不同意以上声明,请立即删除,不要使用,谢谢合作 ║ ║ ║ ╰═════════════════════════════════════════╯

关注
打赏
1661398670
查看更多评论
立即登录/注册

微信扫码登录

0.0407s