Linux启动和故障排错

Linux启动和故障排错

系统启动流程:

系统初始化:
POST --> BootSequence (BIOS) --> Bootloader(MBR) -->kernel(ramdisk) -->rootfs(只读) -->init(systemd)
init程序的类型:
Upstart: init,CentOS 6
配置文件:
/etc/inittab, /etc/init/*.conf
Systemd:systemd, CentOS 7
配置文件:/usr/lib/systemd/system
/etc/systemd/system
———————————————————————————————
1、上电POST自检,加载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控制主机
———————————————————————————————

实验一:破坏本机grub stage1,并修复

①将/dev/sda硬盘前446字节清零

Linux启动和故障排错

②reboot,排错,进入救援模式修复
重启系统⽆法进⼊正常的原来系统,启动时按F2键,进⼊BIOS设置第⼀启动设备为CD-ROOM设备
光盘启动界⾯,选择救援模式即第3⾏,回车确定

Linux启动和故障排错
切根,安装grub修复即可
Linux启动和故障排错

实验二:删除vmlinuz和initramfs⽂件后⽆法启动,并修复

①删除两个文件

Linux启动和故障排错

②reboot,进入救援模式修复
方法一
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
chroot /mnt/sysimage #切换/
mkinitrd /boot/initramfs-uname -r.img uname -r
cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-uname -r
sync #写入磁盘
方法二
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-696.e16.x86_64.rpm --root=/mnt/sysimage/ --force

实验三:删除grub.conf⽂件,修复启动

①rm -f /boot/grub/grub.conf;reboot
②进⼊grub界⾯,指定内核及参数和虚拟磁盘映像⽂件

Linux启动和故障排错

③boot启动后,重新创建grub.conf文件
vim /boot/grub/grub.conf

Linux启动和故障排错

④reboot;测试是否可以正常启动

实验四:破坏grub stage2;删除/etc/fstab和/boot⽬录的所有⽂件,并修复

①删除fstab和/boot下所有文件

Linux启动和故障排错

②重启,进入救援模式,通过挂载测试看到/dev/sda2是根目录

Linux启动和故障排错

③vi /mnt/roofs/etc/fstab;创建fstab文件

Linux启动和故障排错

④exit;reboot;
⑤建立文件夹并挂载;解压缩

Linux启动和故障排错

⑥切根并安装gurb;自建配置grub.conf文件

Linux启动和故障排错
Linux启动和故障排错

⑦禁用selinux,重启测试即可

Linux启动和故障排错

猜你喜欢

转载自blog.51cto.com/14322593/2412339