Linux 常见紧急情况处理方法

使用急救盘组进行维护

急救盘组(也称为 boot/root 盘组),是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的 Linux 系统。实际上,急救盘组中的第 2 张盘上就有一个完整的 Linux 系统,包括 root 文件系统;而第 1 张盘则存放了可启动的内核。  
使用急救盘组维护系统很简单。只需用这两张盘启动系统后,进入急救模式,这时使用的是 root 账户。为了能访问硬盘上的文件,需要手工安装硬盘文件系统。例如,用下面的命令可在 / mnt 目录中安装 /dev/hda2 盘上的 ext2fs 类型的 Linux 文件系统:  
  # monut -t ext2/dev/hda2/mnt   注:现在根目录是急救盘上的根目录。为了访问硬盘文件系统中的文件,必须先把它安装到某个目录下。这样,如果将硬盘上文件系统安装在 / mmt 目录下,则硬盘上原来的 / etc/passwd 文件的路径就是 /mnt/etc/passwd。文件系统被破坏时的处理方法

当文件系统被破坏时,如果使用的是 ext2fs 类型的文件系统,就可从软盘运 e2fsck 命令来修正文件系统中被损坏的数据。对于其他类型的文件系统,可以使用相应的 fsck 命令。

当从软盘上检查文件系统时,最好不要 mount 安装。注:文件系统被破坏的常见原因是超级块被损坏,超级块是文件系统的 “头部”。它包含文件系统的状态、尺寸和空闲磁盘块等信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使采用 e2fsck 命令也不能处理这个问题。  不过,ext2fs 类型的文件系统将超级块的内容进行了备份,并存放于驱动程序的块组(block group)边界。可以用如下的命令通知 e2fsck 使用超级块的备份  # e2fsck -b 8193   
是指文件系统所在的分区,-b 8193 选项用于显示使用存放在文件系统中的 8193 块的超级块的备份数据。
恢复丢失的文件

如果不小心删除了重要的文件,那么没有办法直接恢复。但是还可以将相应的文件从急救盘复制到硬盘上。例如,如果删除了文件 / bin/login,此时系统无法正常进到登录界面,可以用急救盘组启动系统,将硬盘文件系统安装到 / mnt 目录下,然后使用下述命令:

#cp -a /bin/login /mnt/bin  
“-a” 选项用于告诉 cp 在拷贝时保持文件的访问权限。当然如果被删除的基本文件不在 “急救盘组” 中, 也就不能用这种方法了。如果以前做过系统备份的话,那么也可以用以前的备份来恢复。
函数库破坏时的处理方法如果不小心将系统函数库文件破坏了,或者破坏了 / lib 目录下符号链接,那么将导致依赖这些库的命令无法执行。最简单的解决办法是用急救盘组启动系统, 在 / mnt 目录中安装硬盘文件系统,然后修复 / mnt/lib 目录下的库。
无法用 root 账号登录系统由于系统管理员的疏忽,或者由于系统受到黑客的入侵, 系统管理员可能无法用 root 帐号登录系统。   对于第 1 种情况,可能是系统管理员忘记了 root 密码,用急救盘组就可以解决问题。
对于第 2 种情况,由于很可能是密码被黑客修改了,因此系统管理员无法进入系统,也就是说,Linux 系统完全失去了控制,因此应尽快重新获得系统的控制权。在取得 root 权限后,还应检查系统被破坏的情况,以防被黑客再次入侵。  需要做的最主要的工作就是重新设置 root 的密码,获得 Linux 操作系统的控制权。首先用急救盘组启动系统,然后将硬盘的文件系统安装到 / mnt 目录下,编辑 / mnt/etc/passwd 文件,将其对应于 root 账户的一行加密口令域置空,如下所示: 
 root::0:0:root:/root:bin/bash  注:如果系统使用 shadow 工具,就需要对文件 / etc/shadow 进行上述的操作,使 root 登录系统不需要口令。  这样,root 账户就没有口令了。当重新从硬盘启动 Linux 系统时,就可以用 root 账户登录(系统不会要求输入密码)。进入系统后,再用命令 passwd 设置新的口令。
Linux 系统不能启动

一般来说,如果系统管理员不能正常进入系统,就需要考虑使用急救盘组进入急救模式排除系统的故障。但在没有制作急救盘组的情况下,Linux 系统不能启动,该怎么办?

在个人计算机使用 Linux 系统时,通常都是 Linux 和 MS Windows 9x 或 MS Windows NT 并存的。
由于重新安装其他的操作系统,经常会导致原有的 Linux 不能启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了 Linux 的 LILO 系统引导程序。  如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的 Linux 系统,重新运行 LILO 命令,就可以将 LILO 系统引导程序写回硬盘的主引导记录。再次开机即可。  
如果没有系统启动盘,怎样恢复硬盘上的 Linux 呢?在这种情况下,如果知道 Linux 在硬盘上的确切安装分区,且有 loadlin 程序,就可以重新返回 Linux。loadlin 程序是 DOS 下的程序,运行它可以从 DOS 下直接启动 Linux,快速进入 Linux 环境。在 Red Hat Linux 6.0 光盘的 dosutil / 目录下就有这个程序。除此之外,还需要一个 Linux 启动内核的映像文件。在 Red H at linux 6.0 光盘的 images / 目录下有这个文件——vmlinuz。  
例如,在 Windows 98 系统下面,进入 DOS 的单用户模式,然后运行下述的 loadlin 命令,即可重新进入 Linux 系统:
 loadlin vmlinuz root=/dev/hda8  
/dev/hda8 是 Linux 的 root 文件系统所在的硬盘分区位置。命令执行后,就引导 Linux 系统。用 root 登录后,运行 LILO 命令,则重新将 LILO 装入 MBR,回到以前多操作系统并存使用的状态。

阅读原文

时间: 2024-10-19 07:50:07

Linux 常见紧急情况处理方法的相关文章

熟知Linux操作系统紧急情况处理方法

急救盘组(也称为boot/root盘组),是系统管理员必不可少的工具.用它可以独立地启动和运行一个完整的Linux系统.实际上,急救盘组中的第2张盘上就有一个完整的Linux系统,包括root文件系统:而第1张盘则存放了可启动的内核. 使用急救盘组维护系统很简单.只需用这两张盘启动系统后,进入急救模式,这时使用的是root账户. 为了能访问硬盘上的文件,需要手工安装硬盘文件系统.例如,用下面的命令可在/mnt目录中安装/dev/hda2盘上的ext2fs类型的Linux文件系: #monut-t

Linux常见故障及修复方法

一:MBR扇区故障修复 [[email protected]~]#mkdir  /backup [[email protected]~]#mount  /dev/sdb1  /backup /    ##新建个硬盘分区,并挂载到新建文件夹内 [[email protected]~]#dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1  ##备份MBR扇区512字节 [[email protected]~]#dd if=/dev/zero of

linux 下查看系统内存使用情况的方法

在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux 下查看内存使用情况的free命令: [[email protected] tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276

自学Linux命令的四种方法

自学Linux命令的四种方法 导读 童鞋们刚接触linux时,在学习过程中中会遇到不少问题,学习linux摸不着头脑,那么下面介绍四种linux的学习方法,特别适合新手. 方法一:终端"每日提示" 在.bashrc中(/home/.bashrc)增加如下一行: echo "Did you know that:"; whatis$(ls /bin | shuf -n 1) 你只需要增加这行就够了!如果你想让它更娱乐化一些,你可以安装cowsay.Ubuntu/Debi

紧急情况下测试周期被压缩该如何测试?

紧急情况下测试周期被压缩在国内大多数公司都会出现这种情况,那出现这种情况该如何去面对并展开测试呢? 首先我们需要弄清楚是什么原因导致出现这种情况.到底是内部原因导致还是外部原因导致,说到底如果是外部原因导致基本都是由于需求变更引起的,内部原因通常为开发延期导致. 在下面我会列举常见的处理方法: 1.如果是需求变更导致的测试周期被压缩,那我们测试的时候必须先跟项目经理.测试经理说明该情况并得到统一的意识,并与客户沟通争取更长的软件周期. 2.如果是内部原因引起的测试周期被压缩,那我们可以通过以下方

Linux 常见的trouble shooting故障排错

Linux 常见的trouble shooting故障排错 备份开机所必须运行的程序对一个运维人员来说是非常有必要的.在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据,系统崩溃了,最坏的方法就是重新安装系统,但是数据丢失了,那会直接给企业带来损失,如果系统和数据都放在同一个硬盘上面,那系统都进不去了,何谈数据.解决常见的trouble shooting,不要在系统出现故障的时候,想到的第一个就是重装系统.为解决常见的trouble shooting,首先必须先了

【转】linux shell实现随机数多种方法(date,random,uuid)

在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了.好了,废话我就不说了.呵呵. shell脚本程序我们有那些获得随机数方法呢? 一.通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间

linux shell实现随机数多种方法(date,random,uuid)

在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了.好了,废话我就不说了.呵呵. shell脚本程序我们有那些获得随机数方法呢? 一.通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间

linux常见服务器端口

 linux 常见服务端口 2008-01-21 16:24:52 分类: LINUX 转            Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由 运行在后台的守护进程(daemons) 来执行的.守护进程是生存期长的一种进程.它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.他们常常在系统引导装入时启动,在系统 关闭时终止.linux系统有很多守护进程,大多数服务器