Mark blog

知行合一 划水归档

Linux 启动和内核管理(五)

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

修复GRUB2

GRUB”the Grand Unified Bootloader”
引导提示时可以使用命令行界面
可从文件系统引导
主要配置文件 /boot/grub2/grub.cfg
修复配置文件
grub2-mkconfig > /boot/grub2/grub.cfg
修复grub
grub2-install /dev/sda BIOS环境
grub2-install UEFI环境
调整默认启动内核
vim /etc/default/grub
GRUB_DEFAULT=0