系统排错 一.grub磁盘引导阶段 1.mbr的作用是为了记录/boot目录所在分区位置磁盘的0磁道1扇区的前446字节。 如果446个字节丢失,怎样动系统启: dd if=/dev/zero of=/dev/vda bs=446 count=1 reboot 2.根据系统版本添加光驱选择镜像 打开虚拟机管理器: 3.从光驱启动,开机选择修复: 选择镜像 选择从光驱启动 开机启动选择修复 进入系统 进入系统后,打开shell执行: chroot /mnt/sysimage df查看boot程序所在分区,安装主引导分区程序:grub2-install /dev/vda 安装完成后,以硬盘驱动开机即可。 二.grub文件引导阶段 1.boot分区的引导文件:/boot/grub2/grub.cfg,这个引导文件指定了boot分区的位置;加载内核;启动系统初始化程序,如果引导文件缺失系统不能启动。 2.如将引导文件删除,可通过命令恢复:grub2-mkconfig > /boot/grub2/grub.cfg 3.如果系统没有该文件,启动时需手动引导: set root='hd0,msdos1' linux16 /boot/vmlinz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img boot 进入系统后需生成grub.cfg引导文件:grub2-mkconfig > /boot/grub2/grub.cfg 三.内核引导软件损坏:vmlinuz 1.内核引导文件:vmlinuz。检测硬件设备,设备驱动初始化;将/只读挂载,载入初始化进程systemd中。 2.内核文件损坏,无法开机,需重新安装内核软件。 启动失败: 3.开机中时从光驱启动,选择镜像,选择修复。 选择镜像: 从光驱启动: 选择修复进入修复模式: 点击:Continue 确认 再次确认 进入系统: 4.进入系统后: chroot /mnt/sysimage mount /dev/sr0 /mnt/ 挂载 mkdir /kernel 建立目录 cp /mnt/Packages/kernel-3.10.0-327.e17.x86_64.rpm /kernel/ 复制文件 cd /kernel 进入到目录 ls 查看 5.打开kernel,获得内核引导软件: rpm2ccpio kernel-3.10.0-327.e17.x86_64.rpm | cpio -id cp ./boot/vmlinuz-3.10.0-327.e17.x86_64 /boot 复制内核软件到boot下 6.查看boot分区文件完整,之后以虚拟硬盘开机启动。 四.img文件损坏 1.如果不小心删除:initramfs-3.10.0-123.e17.x86_64.img。 可通过命令mkinitrd /boot/initramfs-`uname -r`.img `uname -r` 2.img文件损坏后,无法正常开机,需重新建立img文件。 3.从光驱启动,开机中选择修复,建立img文件: mkinitrd /boot/initramfs-`uname -r`.img `uname -r`, 查看boot分区自恋完整,从硬盘启动即可。 五.systemd初始化 1.systemd初始化目录:/etc/systemd/system/multi-user.target.wants/。 开启selinux和systemd-tools;加载内核参数;加系统时钟,键盘,主机名称。 读写挂载/文件系统;激活raid,lvm设备;激活系统配额。 启动/etc/systemd/system/multi-user.target.wants/中的所有脚本;启动图形。 2.若系统故障,开机后自动关机 设置后会开机后自动关机。 3.重启时按上下键,停止在系统引导,按e进入设置手动引导,输入 5设置图形化界面开启,ctrl + x启动。 开启后,修改systemd初始化默认参数,进行修复。如不修改,下次开机后会自动关机。 systemctl set-default graphical.target 六.root用户修改密码 1.重启时按上下键,停止在系统引导,按e进入设置手动引导。 2.在内核引导时找到linux16这行,从最后UTF-8删到ro,把ro改为rw rd.break 按ctrl + x启动。 3.进入后切换到真实系统环境,修改密码: chroot /sysroot passwd (root) 4.建立文件/.autorelabel。 注意:当selinux关闭时,可不建立该文件;当selinux开启时,必须建立该文件。 5.输入exit两次即可,重新启动密码修改成功。