Suse 宕机解决方法.docx

上传人:b****6 文档编号:8464068 上传时间:2023-01-31 格式:DOCX 页数:55 大小:3.97MB
下载 相关 举报
Suse 宕机解决方法.docx_第1页
第1页 / 共55页
Suse 宕机解决方法.docx_第2页
第2页 / 共55页
Suse 宕机解决方法.docx_第3页
第3页 / 共55页
Suse 宕机解决方法.docx_第4页
第4页 / 共55页
Suse 宕机解决方法.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

Suse 宕机解决方法.docx

《Suse 宕机解决方法.docx》由会员分享,可在线阅读,更多相关《Suse 宕机解决方法.docx(55页珍藏版)》请在冰豆网上搜索。

Suse 宕机解决方法.docx

Suse宕机解决方法

SuseLinux宕机解决方法

一、Root密码破解

由于密码保存不当或忘记密码等原因,导致Root密码丢失,需要破解Root密码,以下提供SLES10SP4和SLES11SP1破解方法。

1.Suse10SP4破解root密码

思路:

i.重新启动机器,在出现grub引导界面后,在启动linux的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使得OS在运行login程序之前运行bash,出现命令行。

ii.稍等片刻出现(none)#:

命令行。

iii.这时输入mount-n/-oremount,rw表示将根文件系统重新mount为可读写,有了读写权限后就可以通过passwd命令修改密码了。

iv.这时输入passwd命令就可以重置密码了

v.修改完成后记得用mount-n/-oremount,ro将根文件系统置为原来的状态。

1)进入单用户模式:

确定,进入单用户模式:

2)将根(/)权限设置为“读写”

rw表示将根文件系统重新mount为可读写,有了读写权限后就可以通过passwd命令修改密码。

3)修改root密码:

passwdroot

连续输入两遍密码后,密码就更改好了。

4)将根(/)的权限改为只读:

mount-n/-oremount,ro

5)重启系统,以新密码进入系统

改好后,重启系统,就可以使用新密码进入系统了。

2.Suse11SP1破解root密码

Suse11SP1和Suse10SP4方法相同,具体如下:

1)进入单用户模式:

2)将根(/)权限设置为,读写,便于修改密码:

mount-n/-oremount,rw

3)修改root用户密码:

passwdroot

输入两遍密码后,root用户的密码就被改了。

4)将根(/)权限,设置为只读。

mount-n/-oremount,ro

5)重启系统,就可以使用新密码进入系统了。

二、

Grub问题

1.GRUB选项设置错误

将内核文件的“vmlinuz”打成了“vmlinux”,导致系统无法找到内核的可执行文件。

下图是一个系统管理员不希望看到的控制台信息,“Error15”显示系统无法找到menu.lst中指定的内核。

GRUB引导错误信息

将内核文件的“vmlinuz”打成了“vmlinux”,导致系统无法找到内核的可执行文件。

恢复思路:

进入Grub,修改menu.lst中错误配置,启动系统,修改menu.lst中错误,保存。

我们可以按任意键回到GRUB编辑界面,修改此错误,回车保存后按“b”键即可正常引导,进入系统后修改menu.lst文件中此处错误。

具体恢复步骤如下:

在此界面,按Esc键,进入字符界面

选中“SUSElinuxEnterpriseServer10SP4”,然后按键盘上的“e”

输入“e”编辑此项

通过向左的方向键,移动到vmlinux位置,做如下图更改

Enter确定,返回到字符启动界面

按“b”,启动系统。

启动后即可,正常进入系统。

进入系统后,修改/boot/grub/menu.lst文件,将vmlinux修改为vmlinuz,保存退出。

2.Grub/menu.lst文件中“title”段被误删除

可使用2种方式来恢复:

1)使用“Failsafe”模式,进入系统,在menu.lst文件中添加“title”段内容

当,系统启动后会自动进入“GRUB>”命令行,为排除故障我们可以依次做如下操作:

因为没有软驱,所以此处报错,磁盘读取错误。

选择“Failsafe”模式,进入系统

重启系统,完成修复。

2)可使用光盘启动系统,通过自动修复的方式修复此问题,具体操作步骤在此不再赘述。

3.系统GRUB损坏

类似得我们可以来写零Bootloader来实现GRUB被破坏的结果:

[root@FCoEgrub]#ddif=/dev/zeroof=/dev/sdabs=446count=1

1+0recordsin

1+0recordsout

446bytes(446B)copied,0.0017583s,254kB/s

重启后系统会因找不到GRUB而卡在“BootingfromHardDisk…”

挂载系统安装光盘然后选择进入Rescue模式,然后恢复GRUB:

bash-4.1#chroot/mnt/sysimage

sh-4.1#grub

grub>roothd(0,0)#指定boot分区所在位置

grub>setup(hd0)#安装grub所需文件

grub>quit

图5.恢复GRUB

 重启主机后,系统可正常引导。

4.grub被破坏(包括:

menu.lst,stage2...)

linux-02:

~#cd/boot/grub/

Youhavenewmailin/var/mail/root

linux-02:

/boot/grub#ls

device.mapiso9660_stage1_5reiserfs_stage1_5vstafs_stage1_5

e2fs_stage1_5jfs_stage1_5stage1xfs_stage1_5

fat_stage1_5menu.lststage2

ffs_stage1_5minix_stage1_5ufs2_stage1_5

linux-02:

/boot/grub#df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/sda19.9G3.6G5.8G39%/

udev1007M120K1007M1%/dev

/dev/sda3198M15M173M8%/boot

/dev/hdc3.1G3.1G0100%/media/SUSE-Linux-Enterprise-Server_001

破坏grub

rm-rf/boot/grub/*

linux-02:

/boot/grub#rm-rf/boot/grub/*

重启系统,Suse10SP4报错如下:

解决方法:

使用系统自动修复的方式来修复grub

1)Suse10SP4修复方法

设置系统从光盘启动,放入SUSE的cd1到光驱中

重启系统,开机出现以下画面,表明grub已经修复:

出现登陆界面:

输入系统的用户名和密码即可进入。

进入系统后,查看grub目录中的文件。

进入grub目录,确实是否存在menu.lst文件,该文件决定系统能否正常从硬盘引导。

至此为止,可确认grub已经修复。

2)Suse11SP1修复方法:

思路:

使用光盘进入系统救援模式,在救援模式中,新建menu.lst文件即可。

进行破坏性试验:

删除/boot/grub下的所有内容

linux-sun:

~#ls/boot/grub/

defaultffs_stage1_5minix_stage1_5vstafs_stage1_5

device.mapiso9660_stage1_5reiserfs_stage1_5xfs_stage1_5

device.map.oldjfs_stage1_5stage1

e2fs_stage1_5menu.lststage2

fat_stage1_5menu.lst.oldufs2_stage1_5

linux-sun:

~#rm-rf/boot/grub/*

linux-sun:

~#ls/boot/grub/

重启系统。

启动后,因为找不到grub里面的内容,提示如下:

挂载boot分区,所在的分区,便于进一步操作

重启系统

开机后出现此画面,说明grub已经被恢复出来

可正常进入系统。

3)Suse11SP2Grub破坏后解决方法:

Suse11SP2实现Grub被删除后,恢复的方法:

方法一:

1.使用系统盘的恢复模式里面的,专家工具模式来修复系统。

2.使用专家工具中的“bootloader”来重装bootloader

3.使用救援系统进入系统,挂载起来一起的boot分区,然后修改menu.lst文件。

4.重启系统,完成修复。

方法二:

1.使用系统盘的恢复模式里面的,专家工具模式来修复系统。

2.使用专家工具中的“bootinstalledsystem”来启动系统。

3.使用救援系统进入系统,挂载起来一起的boot分区,然后修改menu.lst文件。

4.重启系统,完成修复。

相比较而言,第二种方法更快。

在RepairTools中选择“BootinstalledSystem”

安装好后,就可以直接进入系统了。

输入用户名和密码进入系统。

进入系统后,先确认boot分区中是否有内核文件:

确认有内核文件后,编辑menu.lst文件

进入/boot/grub中新建menu.lst文件

编辑好后,重启系统,检验系统是否已经修复。

重启后,确认可以正常进入系统,表明Suse11SP1系统已经恢复。

三、MBR被破坏,不包括分区表

1.Suse10SP4

ddif=/etc/passwdof=/dev/sdabs=446count=1

reboot

放入cd1到光驱中

chooserescuesystem

entergrub

root(hd0,0)

setup(hd0)

quit

reboot

破坏系统的MBR:

linux-02:

~#if=/etc/passwdof=/dev/sdabs=446count=1

重启系统:

reboot

MBR被破坏后的情形:

开机后,如下图:

整个界面只有一个光标图标,而且不闪烁。

解决方法:

放入cd1到光驱中,开机选择“救援系统”

进入系统后,找到boot分区所在的分区:

fdisk–l

由上图可知,boot所在分区为/dev/sda3.

进入grub进行系统恢复:

输入grub

输入以下命令:

root(hd0,2)

setup(hd0)

quit

reboot

重启后,界面如下:

可以正常进入系统,表明系统已经恢复。

2.Suse11SP1

和Suse10SP4方法一样即可恢复系统,具体如下:

破坏MBR分区:

linux-sun:

~#ddif=/etc/passwdof=/dev/sdabs=446count=1

1+0recordsin

1+0recordsout

446bytes(446B)copied,4.8907e-05s,9.1MB/s

重启系统,看结果:

开就就一黑屏幕,光标不闪烁。

放CD1到光驱中,启动系统,选择救援模式:

进入系统后,确认boot所在分区:

fdisk–l

由此可知,boot所在分区为/dev/sda2,那么对应的grub中应该表示为:

root(hd0,1)

进入grub恢复MBR:

重启系统,reboot:

开机后,界面如下:

表明MBR已经恢复。

四、硬盘问题

1.硬盘扇区错乱

在启动过程中最容易遇到的问题就是硬盘可能有坏道或扇区错乱(数据损坏)的情况,这种情况多由于异常断电、不正常关机导致。

此种问题发生,在系统启动的时候,屏幕会显示:

Pressrootpasswordorctrl+D:

此时输入root密码系统自动进入单用户模式,

输入“fsck-y/dev/hda6”

(fsck为文件系统检测修复命令,“-y”设定检测到错误自动修复,/dev/hda6为发生错误的硬盘分区,请依据具体情况更改此参数),系统修复完成后,用命令“reboot”重新启动即可。

分区在挂载情况下使用fsck可能导致数据损坏,建议将分区卸载后进行fsck操作。

2.系统硬盘分区表破坏

经过测试Suse11SP1无法通过光盘中自带的修复模式来修复硬盘分区被破坏的情况。

生产环境中的Linux服务器可能会因为病毒或者意外断电而引起硬盘分区表被破坏,通常恢复硬盘分区表需要之前我们先备份其分区表的信息,一般我们使用USB外接设备来备份主机硬盘的分区表或将分区表信息备份到其他硬盘上。

查看当前分区表和备份硬盘信息:

挂在备份mgr硬盘:

通常我们通过备份硬盘的MBR来备份硬盘分区表:

ddif=/dev/sdaof=/mnt/sda.mbrbs=512count=1

现在我们来写零硬盘分区表来实现类似分区表被破坏的结果

ddif=/dev/zeroof=/dev/sdabs=1count=64skip=446seek=446

查询硬盘sda上的分区信息,发现其已不包含任何分区:

当主机硬盘分区表丢失了之后,再次启动后GRUB会因找不到配置文件而进入命令行模式:

重启机器,使用救援模式进入系统:

我们查询系统磁盘信息,发现硬盘设备sda没有包含任何分区。

挂载备份MBR的硬盘:

还原MBR:

ddif=/usb/sda.mbrof=/dev/sdabs=1count=64skip=446seek=446

再次查询系统磁盘信息:

重启系统,确认系统能否正确引导。

经过测试确定,系统可以正确引导,至此恢复MBR被破坏问题。

五、/boot分区中的内容被完全清空了包括:

(kernel,initrd,grub.....)

linux-02:

~#cd/boot/

linux-02:

/boot#ls

System.map-2.6.16.60-0.85.1-smpmessage

backup_mbrsymsets-2.6.16.60-0.85.1-smp.tar.gz

bootsymtypes-2.6.16.60-0.85.1-smp.gz

config-2.6.16.60-0.85.1-smpsymvers-2.6.16.60-0.85.1-smp.gz

grubvmlinux-2.6.16.60-0.85.1-smp.gz

initrdvmlinuz

initrd-2.6.16.60-0.85.1-smpvmlinuz-2.6.16.60-0.85.1-smp

lost+found

linux-02:

/boot#rm-rf*#清空boot分区内容

linux-02:

/boot#ls

重启reboot

linux-02:

/boot#reboot

重启之后,出现以下画面:

Suse10SP4解决方法:

解决思路:

使用光盘,自动修复模式,修复boot分区内容。

开机,从光盘启动,选择修复模式,自动修复模式是否可以直接修复boot分区内容,耗时大约10分钟。

接下来的语言选择,按照用户要求选择即可。

在此阶段,会安装系统kernel包,sysconfig包,yast2包和其他必备软件包。

选中“Finish”。

接下来,进入系统。

检测boot分区内容是否恢复:

由上图可见,boot分区内容已经恢复出来,至此问题解决。

选择“自定义修复”模式,所有选项全部选择,也可以修复boot分区内容被清空问题,但开机后还有部分选项需要配置,教为复杂,同时修复耗时较长。

因为修复过程和“自动修复”模式基本相同,在此就不在赘述。

Suse11SP1boot分区内容被清空,该如何恢复?

通过系统自带的修复模式,包括,自动修复,自定义修复,专家工具,无法修复系统。

通过升级的方式也无法修复root分区被清空。

截至目前,还没有方法能够恢复Suse11SP1boot分区内容被清空问题。

六、开机启动kernel可用的grub参数:

注意:

所有引导参数都是大小写敏感的!

绝大部分的内核引导参数的格式如下(每个参数的值列表中最多只能有十项):

name[=value_1][,value_2]...[,value_10]

如果"name"不能被识别并且满足"name=value"的格式,那么则被解译为一个环境变量(比如"TERM=linux"或"BOOT_IMAGE=vmlinuz.bak"),否则将被原封不动的传递给init程序(比如"single")。

标记说明

并不是所有的参数都是永远可用的,只有在特定的模块存在并且相应的硬件也存在的情况下才可用。

引导参数上面的方括号说明了其依赖关系,其中使用的标记解释如下:

参数

说明

ACPI

高级配置与电源接口

APIC

高级可编程中断控制器

HW

相应的硬件设备存在

IA-32

IA-32(i386)体系结构(安藤32位处理器)

X86-64

X86-64体系结构

IOSCHED

启用了多个IO调度器

LOOP

启用了Loopback设备

NET

启用了网络支持

PCI

PCI总线支持

PNP

即插即用支持

PS2

PS/2支持

SCSI

许多SCSI设备的参数在Documentation/scsi/中描述

SMP

对称多处理器

USB

USB支持

USBHID

USB人机界面设备

VT

虚拟终端(Virtualterminal)

BUGS=

用于在特定的体系结构上解决某些CPU的bug

KNL

是一个内核启动参数

BOOT

是一个引导程序参数

标记为"BOOT"的参数实际上由引导程序使用,对内核本身没有直接的意义。

没有特别的需求,请不要修改此类参数的语法,更多信息请阅读Documentation/i386/boot.txt文档。

控制台

这些参数控制着控制台或内核日志,在何处显示内核调试信息和错误信息。

参数

配置

说明

 

[KNL]

[IA-32,X86-64]earlyprintk=vga

 

在传统的控制台初始化之前,在VGA上显示内核日志信息。

如果系统有硬件问题或是严重的软件故障,可以初步查看故障信息,等系统起来后,看boot.msg进一步排查。

initcall_debug

跟踪所有内核初始化过程中调用的函数。

有助于诊断内核在启动过程中死在了那个函数上面。

loglevel

loglevel={0|1|2|3|4|5|6|7}

所有小于该数字的内核信息都将在控制台上显示出来。

这个级别可以使用klogd程序或者修改/proc/sys/kernel/printk文件进行调整。

取值范围是"0"(不显示任何信息)到"7"(显示所有级别的信息)。

建议至少设为"4"。

[提示]级别"7"要求编译时加入了调试支持。

[HW]

irqfixup

用于修复基本的中断问题:

当一个中断没有被处理时搜索所有可用的中断处理器。

用于解决某些firmware缺陷。

irqpoll

用于修复更进一步的中断问题:

当一个中断没有被处理时搜索所有可用的中断处理器,并且对每个时钟中断都进行搜索。

用于解决某些严重的firmware缺陷。

[SMP]

maxcpus=

明确指定一个SMP内核能够使用的最大CPU数量。

最好使用"maxcpus=0"而不是"maxcpus=1"来禁用SMP功能。

[KNL]

init=

指定内核启动后运行的第一个程序的绝对路径。

默认为"/sbin/init"。

S

以单用户模式运行init,默认是多用户模式。

[HW,ACPI,X86-64,i386]

acpi={force|off|ht|strict|noirq}

ACPI的总开关。

force表示强制启用;off表示强制禁用;noirq表示不要将ACPI用于IRQ路由;ht表示只运行足够的ACPI来支持超线程;strict表示降低对不严格遵循ACPI规格的平台的兼容性。

acpi_sleep={s3_bios,s3_mode}

ACPI休眠选项。

在从S3状态(挂起到内存)恢复的时候,硬件需要被正确的初始化。

这对大多数硬件都不成问题,除了显卡之外,因为显卡是由BIOS初始化的,内核无法获取必要的恢复信息(仅存在于BIOS中,内核无法读取)。

这个选项允许内核以两种方式尝试使用ACPI子系统来恢复显卡的状态。

[HW,ACPI]

acpi_use_timer_override

对于某些有毛病的NvidiaNF5主板需要使用此选项才能正常使用,不过此时HPET将失效。

[IA-32,X86-64]

acpi_pm_good

对于某些有毛病的NvidiaNF5主板需要使用此选项才能正常使用,不过此时HPET将失效。

[PCI]

pci=option[,option...]

off

不检测PCI总线,也就是关闭所有PCI设备。

(使用该参数可能导致硬盘不能使用,在Vmware中测试结果。

[i386,x86-64]

enable_timer_pin_1

disable_timer_pin_1

启用/禁用APIC定时器的PIN1,可以用于解决某些有bug的芯片组(特别是ATI芯片组)。

内核将尽可能自动探测正确的值。

Suse11SP1boot分区被清空后,不能使用安装光盘将boot目录拷贝到以前的boot分区所在目录,因为以前boot分区空间不够,不能容纳boot目录的内容,同时boot目录的内容并不是系统需要的内容。

七、Linux系统启动流程:

对系统的流程先有一个大概的了解:

开电源==>BIOS自检==>启动设备(磁盘orU盘or光驱)==>引导程序(lilo或grub)==>内核==>init程序(<==>rc.sysinit和rc)==>mingetty==>终端登录==>shell...

现在分为四个阶段来讲述:

第一阶段:

BIOS启动引导阶段

实现硬件的初始化以及查找启动介质;

从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理器.

第二阶段:

GRUB启动引导管理器

装载stage1;

装载stage2;

读取/boot/grub/menu.lst文件并显示启动菜单;

装载所选的kernel和initrd文件到内存中.

第三阶段:

内核启动阶段

运行内核启动参数;

解压并挂载initrd文件系统,装载所需的驱动;

挂载根文件系统.

第四阶段:

init初始化阶段

启动/sbin/init进程;

运行rc.sysinit脚本,设置系统环境,启动swap分区,检查和挂载文件系统;

读取/etc/inittab文件,运行在/etc/rc.d/rc.d中定义的不同的运行级别服务初始化运行脚本;

打开字符终端1--6号控制台or图形管理的7号控制台.

第一阶段:

系统开机上电后

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1