linux系统排错
系统排错
一、MBR主导分区损坏
1.可覆盖掉虚拟机的主导分区
dd if=/dev/zero of=/dev/vda bs=446 count=1
此时系统将无法正常开机
2.根据虚拟机版本添加光驱(如7.0的系统光驱为7.0版本的镜像)
3.开机模式中选择修复选项 ##注意:光驱启动
进入系统后,打开shell chroot /mnt/sysimage
查看boot程序所在分区 df
安装主导分区的程序 grub2-install /dev/xda
安装完成后,以虚拟硬盘驱动开机即
二、文件引导损坏
1.boot分区的引导文件 /boot/grub2/grub.cfg
引导文件指定了boor分区的位置;加载内核;启动系统初始化进程
set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
若不小心删除,可通过命令自动创建
grub2-mkconfig > /boot/grub2/grub.cfg
[[email protected] grub2]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
Found initrd image: /boot/initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
done
3.若系统没有该文件,启动时须手动引导
grub > set root='hd0,msdos1'
grub > linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
grub > initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
grub > boot
三、内核引导软件损坏 vmlinuz
1.内核引导文件vmlinuz
检测硬件设备;设备驱动初始化;将/只读挂载;载入初始进程 systemd
2.内核文件损坏,则无法正常开机,须重新安装内核软件
3.开机模式中选择修复选项 ##注意:光驱启动
进入系统后,打开shell chroot /mnt/sysimage
挂载光驱 mount /dev/sr0 /mnt
将光驱中内核软件拷贝至指定目录下
mkdir /kernel
cp /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm /kernel
解开kernel,得到所需的内核引导软件
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
cp ./boot/vmlinuz-3.10.0-123.el7.x86_64 /boot
查看/boot分区文件是否完整,ok后以虚拟硬盘驱动开机即可
四、img文件损坏
1.若不小心删除,可通过命令自动创建
2.img文件损坏后,无法正常开机,须重新建立img文件
3.开机模式中选择修复选项 ##注意:光驱启动
进入系统后,打开shell chroot /mnt/sysimage
在/boot目录下自动建立文件
mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
##uname -r 系统内核版本:3.10.0-123.el7.x86_64
查看/boot分区文件是否完整,ok后以虚拟硬盘驱动开机即可
五、systemd初始化
1.systemd初始化目录 /etc/systemd/system/multi-user.target.wants/
开启selinux和systemd-tools;加载内核参数;加载系统时钟,键盘,主机名称
读写挂载/文件系统;**raid,lvm设备;**系统配额;
启动/etc/systemd/system/multi-user.target.wants/中所有脚本
启用虚拟控台;启动图形;
2.若系统故障,开机自动关机
重启时按上下键,停止系统引导
开机时按e,在内核引导时设置图形化界面开启
正常开启后,修改systemd初始化默认参数,即可修复
systemctl set-default graphical.target
六、root用户密码修改
###root用户密码被更改或忘记
1.重启时按上下键,停止系统引导
2.按e,在内核引导时找到指定行linux16,从最后往前删除至ro
修改ro=rw rd.break
3.ctrl + x 启动修改设定后的系统引导
4.进入系统后切换到真实系统环境,修改root密码
chroot /sysroot
passwd
5.建立文件 /.autorelabel
##当selinux关闭时,可不建立该文件;但当selinux开启时,必须建立该文件
建议:重启时默认执行此命令
6.输入2次exit退出、重新启动