CentOS7启动及排错
- UEFi或BIOS初始化,运行POST开机自检
- 选择启动设备
- 引导装载程序, centos7是grub2
- 加载装载程序的配置文件:
/etc/grub.d/
/etc/default/grub
/boot/grub2/grub.cfg - 加载initramfs驱动模块加载内核选项
- 内核初始化,centos7使用systemd代替init
- 执行initrd.target所有单元,包括挂载/etc/fstab
- 从initramfs根文件系统切换到磁盘根目录
- systemd执行默认target配置,配置文件/etc/systemd/system/default.target
- systemd执行sysinit.target初始化系统及basic.target准备操作系统
- systemd启动multi-user.target下的本机与服务器服务
- systemd执行multi-user.target下的/etc/rc.d/rc.local
- Systemd执行multi-user.target下的getty.target及登录服务
- systemd执行graphical需要的服务
设置内核参数
- 设置内核参数,只影响当次启动
- 启动时,在linux16行后添加systemd.unit=desired.target
- systemd.unit=emergency.target
- systemd.unit=rescue.target
- rescue.target 比emergency 支持更多的功能,例如日志等
- systemctl default 进入默认target
启动排错
- 文件系统损坏
先尝试自动修复,失败则进入emergency shell,提示用户修复 - 在/etc/fstab不存在对应的设备和UUID
等一段时间,如不可用,进入emergency shell - 在/etc/fstab不存在对应挂载点
systemd尝试创建挂载点,否则提示进入emergency shell. - 在/etc/fstab不正确的挂载选项
提示进入emergency shell
破解CentOS7的root口令方法一
- 启动时任意键暂停启动
- 按e键进入编辑模式
- 将光标移动linux16开始的行,添加内核参数rd.break
- 按ctrl-x启动
- mount –o remount,rw /sysroot
- chroot /sysroot
- passwd root
- touch /.autorelabel
- exit
- reboot破解
破解CentOS7的root口令方法二
- 启动时任意键暂停启动
- 按e键进入编辑模式
- 将光标移动linux16开始的行,改为rw init=/sysroot/bin/sh
- 按ctrl-x启动
- chroot /sysroot
- passwd root
- touch /.autorelabel
- exit
- reboot
centous7设置默认启动内核,并删除
配置文件 :/boot/grub2/grub.cfg
修改:/etc/default/grub GRUB_DEFAULT=saved saved改为0
grub2-mkconfig -o /boot/grub2/grub.crg 重新生成
删除没用的内核
/boot/ 和 /lib/modules/ 里面内核版本的东西 3.10.0.xxxx
grub2-mkconfig -o /boot/grub2/grub.crg 重新生成
修复GRUB2
- GRUB”the Grand Unified Bootloader”引导提示时可以使用命令行界面可从文件系统引导
- 主要配置文件/boot/grub2/grub.cfg
- 修复配置文件grub2-mkconfig > /boot/grub2/grub.cfg
- 修复grub grub2-install /dev/sdaBIOS环境grub2-install UEFI环境
- 调整默认启动内核vim /etc/default/grubGRUB_DEFAULT=0
删除boot下所有
- 进入救援模式
- 输入 1 continue
- 2 进入shell
- chroot /mnt/sysimage
- mkdir /mnt/cdroom
- mount -o /dev/cdroom /mnt/cdroom
- rpm -ivh /mnt/cdroom/Packages/kernel-3.10.0.693.e17.x86.rpm –force
- grub2-install /dev/sda
- 修复配置文件grub2-mkconfig > /boot/grub2/grub.cfg
- exit
- reboot