标签:运行 root 进入 mil sbin timeout 命令 for 模拟
掌握Linux启动的过程是很重要的,可以让我们在系统故障时进行排查,判断是具体哪个阶段出现问题,从而修复,而不是只能重装系统。
我们需要了解几个相关名词及其含义
inux 内核英文叫kernel,提供进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能。
核心文件: /boot/vmlinuz-VERSION-release
ramdisk:辅助的伪根系统
CentOS 5: /boot/initrd-VERSION-release.img
CentOS 6,7: /boot/initramfs-VERSION-rel5ase.img
模块文件: /lib/modules/VERSION-release5
1.加载 加载BIOS的硬件信息,获取第一个启动设备 POST: Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、键盘、 CD-ROM光驱等硬件情况的检测。
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息。
MBR总共512字节,前446byte 是bootloader ,之后64byte是硬盘分区表,最后两个字节是55AA 。 bootloader 是第一阶段启动项
bootloader 作用:
1.提供启动菜单
2.加载内核
3.将引导转交给其他的Boot Loader
探测可识别到的所有硬件设备
加载硬件驱动程序(可能借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init
Init程序的类型
配置文件:/etc/inittab
配置文件:/etc/inittab, /etc/init/*.conf
配置文件:/usr/lib/systemd/system /etc/systemd/system
Centos 5:运行级别:为系统运行或维护等目的而设定;0-6:7个级别 0:关机 1:单用户模式(root自动登录),single,维护模式 2:多用户模式,启动网络功能,但不会启动NFS;维护模式 3:多用户模式,正常模式;文本界面 4:预留级别;可同3级别 5:多用户模式,正常模式;图形界面 6:重启 默认级别:3,5 切换级别:init# 查看级别:runlevel;who -r
4.1 init程序执行/etc/rc.d/rc.sysinit文件
4.2 启动核心的外挂模块
4.3 init执行运行的各个批处理文件(scripts)
4.4 init执行/etc/rc.d/rc.local
4.5 执行/bin/login程序,等待用户登录
系统完后启动
dd if=/dev/zero of=/dev/sda bs=1 count=512 将MBR表清空
重启
此时我们不能进入到系统中,因为没有了Stage1的引导。
修复:重启进入救援模式
通过命令 chroot /mnt/sysimage 切换到真正根目录下。
然后执行grub-install /dev/sda 等待完后后 重启 ,就恢复了
这种方法同样适用于1.5阶段故障
我们先看看分区下的文件
里面除了grub 文件夹外的文件都是安装kernel 时候自动生成的。 当整个boot 分区丢失后,我们同样先进入救援模式,同样先执行
chroot /mnt/sysimage 命令切换到平时的根目录下
,然后挂载光盘,之后安装光盘里的内核文件,
命令rpm -ivh /mnt/Packages/kernel-2.6.32-696.e16x86_64.rpm –force
然后我们在grub 文件夹下新建grub.conf 文件
[root@Centos6.9 boot]#cat grub/grub.conf root (hd0,0) 写明/boot分区的位置 hd0 表示第一个硬盘,0 表示第一个分区。 default=0 0表示默认启动 timeout=5 表示5秒后自动运行 title linux1 一个名称,叫什么无所谓,但是要有 kernel /vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 initrd /initramfs-2.6.32-696.el6.x86_64.img
做完之后退出,然后重启机器就可以正常恢复了!
标签:运行 root 进入 mil sbin timeout 命令 for 模拟
原文地址:https://www.cnblogs.com/zkwjl/p/9533061.html