笔记基本分类-系统的启动过程

  系统的启动过程
常见启动错误排错
救援模式

--------------------
BIOS:基本输入输出系统。是硬件(主板、CPU、内存、显卡、硬盘、键盘、鼠标)自检和管理的一套程序。保存在主板上的CMOS芯片中。BIOS的主程序是只读的,用户修改的设置是保存在可写的区域。

CPU虚拟化功能:是在BIOS设置中开启。通常是在BIOS的CPU设置中找virtualization关键字,设置为enable启用。

BIOS自检流程:主板》CPU》内存》显卡》硬盘》boot引导(446字节)》分区表(64字节)》grub.cfg启动菜单》加载vmlinuz内核、initrd*.img》systemd加载后续的一系列服务》login登录。

内存故障报警:连续嘀...(长鸣) 原因:内存条接触不良,或内存条坏了
显卡:嘀,嘀嘀(即一长两短) 原因:显卡接触不良,或显卡坏了
注:如果开机无任何报警,且屏幕不显示信息,就得考虑用主板诊断卡(通常PCI接口的)检测,看检测卡上的数字编号去排错。

开机键开机--->BIOS 加电自检 确定引导设备,加载boot loader--->mbr 512
|
446 64 2
boot loader 分区表 魔法分割符
|
stage1-->stage1.5--->stage2 是由stage1.5引导的,是真正的引导程序,即加载grub的配置文件(启动菜单grub.cfg)

boot loader 引导加载器 grub主要功能就是识别操作系统的文件格式和加载内核和驱动。
stage1 是主程序(引导程序的指针,安装在mbr中前446字节),执行bootloader
stage1.5是文件系统,是stage1和stage2的桥梁
stage2 是由stage1.5引导的,是真正的引导程序,即加载grub的配置文件grub.cfg

cat /etc/grub.conf /boot/grub/gub.conf (centos6系列的启动菜单)
default=0 //默认启动系统,第一个title编号就是0 第二个title编号就是1
timeout=5 //读秒时间,如果为-1是等待用户手工确认
splashimage=(hd0,0)/grub/splash.xpm.gz //背景图片 hd0,0 hd0是第一块硬盘 0第一个分区 hd0,0 第一块硬盘的第一个分区(通常是指/boot所在的分区)
hiddenmenu //隐藏菜单
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) //系统的名称(启动菜单1)
root (hd0,0) //root的引导分区(是指/boot分区) hd0,0 第一块硬盘的第一个分区
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=64ee0f70-4051-41f4-ab46-aa17fd8969fe nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet //指定内核的位置以及传递给内核一个参数,第一个/是引导分区,不是根,引导分区就是/boot下的文件,后面的uuid才是真正的根
initrd /initramfs-2.6.32-431.el6.x86_64.img //提供虚拟文件系统
|
centos7内核启动第一个进程systemd(而centos6是init进程)
|
systemd的配置文件
/etc/inittab 记录运行级别,里面介绍了如何修改运行级别,用runlevel查当前的运行级别
/etc/init/rcS.conf -- /etc/rc.d/rc.sysinit 初始化系统文件
/etc/init/rc.conf 运行对应级别的服务的脚本(脚本位置/etc/rc.d/init.d)
/etc/rc.d/rc5.d
K 开机不启动 S 开机启动
|
进入系统之前最后一个执行脚本/etc/rc.d/rc.local(centos7必须手工添加x执行权限)
|
启动6个命令终端,或5个命令终端+1个桌面环境(用ctrl+alt+F1~F6切换终端)
|
login登录
|
登录后加载环境变量文件(文件中可以存放命令或环境变量):
/etc/profile.d/* (0) 登录后会执行的命令或环境变量
/etc/profile(1)、/etc/bashrc(2) 全局环境变量配置文件
~/.bashrc(3)、~/.bash_profile(4) 当前用户的环境变量配置文件


第一阶段:bios
案例:设备引导顺序错误
解决方法:进入bios调整

第二阶段:GRUB
mbr的bootloader损坏怎么办?

案例:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 5.3G 12G 33% /
tmpfs 931M 228K 931M 1% /dev/shm
/dev/sda1 194M 34M 150M 19% /boot
/dev/sr0 3.6G 3.6G 0 100% /mnt/redhat6u5

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

# reboot

解决方案:使用光盘进入救援模式
选择跳过加载网络,选择shell
bash-4.1#grub
grub> root (hd0,0) //指定引导分区
grub> setup (hd0) //安装grub主程序到mbr
grub> quit
bash-4.1# poweroff

mbr损坏怎么办?512
系统装在/dev/sda上破坏sda的mbr
准备分区/dev/sdb1 挂载在/quota
备份mbr(即bootloader和分区表)
# dd if=/dev/sda of=/opt/mbr.txt bs=1 count=512
注:备份sda硬盘的前512字节(即bootloader引导程序和分区表)

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

# reboot 重启

解决方案:使用光盘进入救援模式(rescure或TroubleShooting)
选择跳过加载网络,选择shell
bash-4.1# cd /mnt/sysimage
bash-4.1# mkdir aa
bash-4.1# mount /dev/sdb1 aa
bash-4.1# cd aa
bash-4.1# ls
mbr.txt
bash-4.1# dd if=mbr.txt of=/dev/sda bs=1 count=512
bash-4.1# reboot

grub.cfg文件损坏怎么办?
案例:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 5.3G 12G 33% /
tmpfs 931M 228K 931M 1% /dev/shm
/dev/sda1 194M 34M 150M 19% /boot
/dev/sr0 3.6G 3.6G 0 100% /mnt/redhat6u5

# cat /boot/grub2/grub.cfg 用手机拍下第99、100行的代码
# mv -v /boot/grub2/grub.cfg /opt/
# reboot

解决方案:(centos6)
grub > root (hd0,0) hd0,0 = /dev/sda1 指定/boot所在的分区
grub > kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2
grub > initrd /initramfs-2.6.32-431.el6.x86_64.img
grub > boot

解决方案:(centos7)
grub > help 显示grub引导程序帮助信息,列出grub可用的命令
grub > insmod gzio 加载gzio模块
grub > insmod part_msdos 加载msdos分区模块
grub > insmod xfs 加载xfs文件系统模块
grub > root (hd0,按tab键 查看hd0硬盘的分区表信息
grub > set root='hd0,msdos1' 注msdos1是第1个分区,是指/boot分区
grub > linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap
grub > initrd16 /initramfs-3.10.0-514.el7.x86_64.img
grub > boot

做完实验 还原grub.conf文件
cp -v /opt/grub.cfg /boot/grub2/
或 重新生成启动菜单 grub2-mkconfig -o /boot/grub2/grub.cfg

破解密码:
读秒5...--->按上下方向键(进入grub)--->a--> 空格 1-->进入特权模式--->修改密码或删除密码 passwd vim /etc/passwd root的代表密码

给grub加密(centos6):
制作加密密码
grub-md5-crypt

vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 dsadsfkjsadfksdkjfk //给grub菜单加密
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
password --md5 dsadsfkjsadfksdkjfk //给OS加密(千万不要加,否则启动前要输入密码)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=64ee0f70-4051-41f4-ab46-aa17fd8969fe nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img







ipv4
网络接口
网卡的配置文件
路由
写路由条目

posted on 2018-09-12 10:16  惠生活  阅读(194)  评论(0)    收藏  举报

导航