linux之系统排错

系统排错

一,更改root用户密码

1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
--touch /.autorelabel
9.exit两次使系统自动重新启动

1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
--touch /.autorelabel
9.exit两次使系统自动重新启动

二,主引导记录的恢复

首先查看boot分区(带*号的在哪个磁盘)
--fdisk -l
制造错误:
1,截取开机启动文件的446个字节,reboot系统启动不了
--dd if=/dev/zero of=/dev/vda bs=446 count=1


恢复主引导记录:
光盘启动,添加光盘驱动,从光盘启动虚拟机

关闭虚拟机force off 
3.导入镜像后(hostnamectl查询虚拟机的版本,导入对应的镜像,此处为7.0版本),继续
4.Boot Options中将光盘启动放在第一个,点击运行
5.选择troubleshooting中的第二个
6.出现对话框选择继续,ok,ok直到出现文本对话框
7.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功
8.启动分区所在硬盘
--grub2-install /dev/vda
两次exit
9.关闭虚拟机,将Boot Options中将硬盘启动放在第一个
10.启动虚拟机


首先查看boot分区(带*号的在哪个磁盘)
--fdisk -l


制造错误:
1,截取开机启动文件的446个字节,reboot系统启动不了
--dd if=/dev/zero of=/dev/vda bs=446 count=1


恢复主引导记录:
光盘启动,添加光盘驱动,从光盘启动虚拟机

关闭虚拟机force off
3.导入镜像后(hostnamectl查询虚拟机的版本,导入对应的镜像,此处为7.0版本),继续


4.Boot Options中将光盘启动放在第一个,点击运行
5.选择troubleshooting中的第二个


6.出现对话框选择继续,ok,ok直到出现文本对话框


7.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功


8.启动分区所在硬盘
--grub2-install /dev/vda
两次exit


9.关闭虚拟机,将Boot Options中将硬盘启动放在第一个


10.启动虚拟机


三,引导文件的丢失(grub2,引导文件)

第一种,没有重启
1,进入此目录
--cd /boot/grub2
2,查看目录路文件
--ls
3,删除grub.cfg
--rm -rf /boot/grub2/grub.cfg
4,没有重启时,恢复此文件 
--grub2-mkconfig > /boot/grub2/grub.cfg
5,查看文件是否恢复

第二种,重启
1,首先查看boot是否是独立的
--df
没有看到单独boot的挂载,说明是在根下挂载的
2,重启有问题
输入:
grub > set root='hd0,msdos1'  ##此位置不固定,位置指定/boot所在分区
注:
看boot分区所在的设备,根据设备来写此命令内容
比如:
设备为:/dev/vda1  此命令为:set root='hd0,msdos1'  ##vda1,因为只有vda和vdb,所以a就是hd0,b就是hd1;因为vda1,所以写msdos1
设备为:/dev/vda3  此命令为:set root='hd0,msdos3'  ##vda1,因为只有vda和vdb,所以a就是hd0,b就是hd1;因为vda3,所以写msdos3

grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x82_64 ro root=/dev/vda1  ##引导内核文件,这里的root指向的永远是根分区

注:此时如果 boot分区是在根下挂载的,写/boot/vmlinuz-3.10.0-123.e17.x82_64  
           boot分区单独挂载写/vmlinuz-3.10.0-123.e17.x82_64

grub > initrd16 /boot/initranfs-3.10.0-123.e17.x86_64.img  ##引导系统初始化镜像
grub > boot

经过以上操作可以使系统正常启动,但是临时的,所以进入系统后还是需要执行:
--grub2-mkconfig > /boot/grub2/grub.cfg  ##永久恢复grub.cfg


第一种,没有重启
1,进入此目录
--cd /boot/grub2
2,查看目录路文件
--ls
3,删除grub.cfg
--rm -rf /boot/grub2/grub.cfg
4,没有重启时,恢复此文件
--grub2-mkconfig > /boot/grub2/grub.cfg
5,查看文件是否恢复

第二种,重启
1,首先查看boot是否是独立的
--df
没有看到单独boot的挂载,说明是在根下挂载的
2,重启有问题
输入:
grub > set root='hd0,msdos1'  ##此位置不固定,位置指定/boot所在分区
注:
看boot分区所在的设备,根据设备来写此命令内容
比如:
设备为:/dev/vda1  此命令为:set root='hd0,msdos1'  ##vda1,因为只有vda和vdb,所以a就是hd0,b就是hd1;因为vda1,所以写msdos1
设备为:/dev/vda3  此命令为:set root='hd0,msdos3'  ##vda1,因为只有vda和vdb,所以a就是hd0,b就是hd1;因为vda3,所以写msdos3

grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x82_64 ro root=/dev/vda1  ##引导内核文件,这里的root指向的永远是根分区

注:此时如果 boot分区是在根下挂载的,写/boot/vmlinuz-3.10.0-123.e17.x82_64  
           boot分区单独挂载写/vmlinuz-3.10.0-123.e17.x82_64

grub > initrd16 /boot/initranfs-3.10.0-123.e17.x86_64.img  ##引导系统初始化镜像
grub > boot

经过以上操作可以使系统正常启动,但是临时的,所以进入系统后还是需要执行:
--grub2-mkconfig > /boot/grub2/grub.cfg  ##永久恢复grub.cfg

四,删除内核文件的恢复方法(这个文件是系统安装过程中生成的,所以通过找光盘里的文件,可以找到)

制造问题
1,进入boot
--cd /boot
--ls
--rm -rf vmlinuz-3.10.0-123.el7.x86_64 ##删除内核文件

解决问题

1.关闭虚拟机force off 
2.导入镜像后,继续
3.Boot Options中将光盘启动放在第一个,点击运行
4.选择troubleshooting中的第二个
5.出现对话框选择继续,ok,ok直到出现文本对话框
6.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功
7.创建westos目录挂载点
--mkdir /westos  
8.挂载光盘
--mount /dev/sr0 /westos  ##挂载光盘
9.查看光盘文件
--cd /westos  
--ls
--cd Packages/   ##此处不要ls,因为安装包太多了
--cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/
--cd /mnt
--ls  ##查看文件
10,拆包
--rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
--ls
--pwd
--cd boot/
--ls
--cp vmlimuz-3.10.0-123.e17.x86_64 /boot/
--两次exit
11.关闭虚拟机,将Boot Options中将硬盘启动放在第一个
12.启动虚拟机


制造问题
1,进入boot
--cd /boot
--ls
--rm -rf vmlinuz-3.10.0-123.el7.x86_64 ##删除内核文件

解决问题

1.关闭虚拟机force off
2.导入镜像后,继续
3.Boot Options中将光盘启动放在第一个,点击运行


4.选择troubleshooting中的第二个
5.出现对话框选择继续,ok,ok直到出现文本对话框


6.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功


7.创建westos目录挂载点
--mkdir /westos 
8.挂载光盘
--mount /dev/sr0 /westos  ##挂载光盘


9.查看光盘文件
--cd /westos  
--ls


--cd Packages/   ##此处不要ls,因为安装包太多了
--cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/
--cd /mnt
--ls  ##查看文件


10,拆包
--rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
--ls
--pwd
--cd boot/
--ls
--cp vmlimuz-3.10.0-123.e17.x86_64 /boot/
--两次exit


11.关闭虚拟机,将Boot Options中将硬盘启动放在第一个


12.启动虚拟机

五,系统初始化镜像文件丢失(镜像文件是命令生成的,没有用到光盘里的东西)

模拟问题
--cd /boot
--ls 
--rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img ##删除系统初始化镜像文件

解决方法
第一种:删除镜像初始化文件系统没有重启
--uname -r  ##查看系统内核版本号
--mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##恢复系统文件,因为可能不知道本机的系统内核版本号,用$(uname -r)代替系统内核版本号,也可以直接查到版本号后写版本号,但是容易写错
--ls  ##查看是否生成成功

第二种:删除镜像初始化文件系统重启后
1.关闭虚拟机force off
2.Boot Options中将光盘放在第一个,点击运行,光盘启动
3.选择troubleshooting中的第二个 ##进入挽救模式
4.出现对话框选择继续,ok,ok直到出现文本对话框
5.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功
6.恢复系统文件
--mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##恢复系统文件,因为可能不知道本机的系统内核版本号,用$(uname -r)代替系统内核版本号,也可以直接查到版本号后写版本号,但是容易写错
--cd /boot/
注:此处显示报错,原因是系统管道没有开启,这个只有在完全启动虚拟机时才会打开,所以并不影响
--ls  ##查看镜像文件是否生成成功
-两次exit
7.关闭虚拟机,将Boot Options中将硬盘启动放在第一个
8.启动虚拟机


模拟问题
--cd /boot
--ls
--rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img ##删除系统初始化镜像文件

解决方法
第一种:删除镜像初始化文件系统没有重启
--uname -r  ##查看系统内核版本号
--mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##恢复系统文件,因为可能不知道本机的系统内核版本号,用$(uname -r)代替系统内核版本号,也可以直接查到版本号后写版本号,但是容易写错
--ls  ##查看是否生成成功

第二种:删除镜像初始化文件系统重启后
1.关闭虚拟机force off
2.Boot Options中将光盘放在第一个,点击运行,光盘启动
3.选择troubleshooting中的第二个 ##进入挽救模式
4.出现对话框选择继续,ok,ok直到出现文本对话框
5.更该启动文件的挂载目录
--df  ##查看启动文件所在磁盘挂载点
--chroot /mnt/sysimage  ##更改挂载目录为根目录
--df  ##查看是否更改成功


6.恢复系统文件
--mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##恢复系统文件,因为可能不知道本机的系统内核版本号,用$(uname -r)代替系统内核版本号,也可以直接查到版本号后写版本号,但是容易写错
--cd /boot/
注:此处显示报错,原因是系统管道没有开启,这个只有在完全启动虚拟机时才会打开,所以并不影响
--ls  ##查看镜像文件是否生成成功
-两次exit


7.关闭虚拟机,将Boot Options中将硬盘启动放在第一个


8.启动虚拟机

六,当/boot分区被删除掉后的解决办法

生成错误
1,/boot分区被删除
rm -rf /boot

解决办法
重复之前的所有步骤
1,进入到挽救模式
2,chroot /mnt/sysimage
3,grub2-install /dev/vda
4,mount /dev/cdrom /mnt
5,rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
6,grub2-mkconifg > /boot/grub2/grub.cfg
7,两次exit

 


生成错误
1,/boot分区被删除
rm -rf /boot

解决办法
重复之前的所有步骤
1,进入到挽救模式
2,chroot /mnt/sysimage
3,grub2-install /dev/vda
4,mount /dev/cdrom /mnt
5,rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
6,grub2-mkconifg > /boot/grub2/grub.cfg
7,两次exit

七,当开机启动级别被篡改

生成错误
systemctl set-default reboot.target

解决错误
1,开机按上下键停止读秒
2,按“E”进入编辑模式
3.选择内核启动行
linux16 /vmlinuxz—xxxxxxx ro xxxxxxxxxxxxx    改为:
linux16 /vmlinuxz—xxxxxxx ro xxxxxxxxxxxxx    5
4,启动系统
ctrl + x
5,重新设定启动
systemctl set—default graphical.target


生成错误
systemctl set-default reboot.target

解决错误
1,开机按上下键停止读秒
2,按“E”进入编辑模式
3.选择内核启动行
linux16 /vmlinuxz—xxxxxxx ro xxxxxxxxxxxxx    改为:
linux16 /vmlinuxz—xxxxxxx ro xxxxxxxxxxxxx    5


4,启动系统
ctrl + x
5,重新设定启动
systemctl set—default graphical.target

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值