启达软件-基于互联网,致力于企业信息化、ERP、CRM、互联网+的软件开发
启达软件
启达软件电话
技术文章你现的位置:首页>文章列表>技术文章
如何修复Linux无法正常启动故障
        如何修复Linux无法正常启动故障
        没有操作系统能够确保100%可靠。终有一天,即使Linux也会无法启动。本文为你提供一些在Linux工作站无法正常启动时所采用的策略。        
        不管你多么喜爱你的Linux机器,有时候你都必须恢复你的系统。是的,即使一台Linux机器也可能遭受系统崩溃:不管是由于视频配置错误、内核更新出错、或是由于init脚本配置错误,这种情况都是必然的。我看到过大量这种情况——即使在我自己的机器上,大多数是由于X配置出错——这确实令人沮丧。        
        在我看来,重新安装系统并不是最佳救援计划。有时候,最佳救援计划甚至不需要从救援磁盘启动。本文将为如何避免系统崩溃提供一些提示和诀窍,帮助你建立恢复崩溃的Linux机器所需的工具。        
        使用正确的运行级别                
        安装好一个新的Linux系统后,我立即采取措施以确保灾难不会轻易发生。其中一个措施就是编辑系统的运行级别。运行级别告诉系统离采用引导过程还有多远。运行级别分为六个等级:                
        0级:停止(不设置initdefault)                
        1级:单用户模式        
        2级:多用户模式,没有NFS(与3级相同,如果你没有建立网络)        
        3级:完整的多用户模式            
        4级:不使用        
        5级:X11        
        6级:重新启动(不设置initdefault)        
        新型的Linux系统几乎总是默认使用运行级5(X11),表示系统在引导完成后,将会在图形登录界面处停止。在某物(或某人)使用X配置前,系统一切正常。        
        然后你必须找到一个登录方法。你可以按下[Ctrl][Alt][F7]进入一个基于文本的虚拟窗口,但为什么要这么麻烦呢?相反,我总是在/etc/inittab文件中将运行级更改为3级。你更改的代码为:        
        id:5:initdefault:        
        它被更改为:        
        id:3:initdefault:        
        当X出错时,这是一个非常简单的系统恢复方法。        
        多内核        
        另一个明显的磁盘恢复方法是总是安装一个正常运转的内核。我通常在一个通过yum更新的内核上工作。有时候,内核会出现一些错误,使得我的一台或几台机器无法启动。        
        为避免这种情况,我一直保证在机器上使用至少一个正常运行的内核。要解决这个问题,首先应在/etc/yum.conf文件中添加plugins=1,然后应用这段脚本(由RedHat的Jeremy    Katz编写),并将它命名为n-installonly.py,保存在/usr/lib/yum-plugins文件中。你可以通过修改tookeep变量(默认为2)的方法更新系统所使用内核的数量。        
        知道系统上有一个正常运转的内核,你就可以进行安全升级。如果新内核出错,只需启动旧内核就可以解决新内核上的问题(不管是删除、重新编译还是升级)。        
        救援模式        
        如果你在使用Red    Hat和LILO引导加载器,你就可以插入产品光盘1,并在引导提示符下输入Linuxrescue进入救援模式。启动机器后,你就会看到bash#提示符。在这个模式下,你可以使用许多工具。        
        如你所见,有检查硬盘完整性、修复硬盘、检查内核模块、装配设备、以及创建文件系统等的工具。此时是进行救援尝试的最佳时机(如果你使用的是一个Red    Hat,或基于Red    Hat的系统)。            
        另一个救援方法是进入单用户模式,这里你的计算机引导进入运行级1。系统装配你的本地文件系统,但不激活网络。你得到一个可用的系统维护外壳。要进入单用户模式,在LILO提示符下输入:        
        Linuxsingle        
        或        
        Linuxemergency                
        建立一张救援CD        
        如果你正在使用LILO引入加载器,可以使用一个叫做mkrescue的强大工具。这个工具一般用于创建引导软盘,但也可用来创建ISO。其用法如下。        
        如果你使用Mandriva:        
        mkrescue    --iso    --initrd    /boot/initrd-KERNEL-NUMBER.img    --        
        kernel    /boot/vmlinuz-KERNEL-NUMBER        
        注意:这里的KERNEL-NUMBER指内核的版本号。        
        如果你不能确定内核的版本,可以用以下命令找到intrd和vmlinuz的号码:        
        uname    –r        
        运行这个命令后,你就会在运行mkrescue命令的目录中发现一个rescue.iso文件。现在你可以用以下命令建立镜像:        
        首先,检查建立CD的设备号码:        
        cdrecord    –scanbus        
        然后用以下命令建立镜像:        
        cdrecord    dev=0,0,0    rescue.iso        
        注意:这里的dev=0,0,0是用上面的scanbus命令查出的号码。        
        如果你使用Slackware,使用这些步骤建立一张引导CD:        
        mkrescue    –iso        
        注意:Slackware自动获知在ISO中放入何种内核。        
        然后,你可以用建立Mandriva镜像同样的方法建立镜像。        
        SystemRescueCD        
        SystemRescueCD是一个保存在可引导光盘上的Linux系统,用于在系统崩溃后修复系统和数据。它还可在计算机上方便地执行管理任务,如建立和编辑硬盘分区。它由许多系统实用工具(parted、partimage、fstools)和基本实用工具(编辑器、midnight    commander文件管理器和网络工具)构成。        
        它使用起来非常简单。只需要从光盘启动你就可以执行一切操作,就像从硬盘启动一样。系统内核支持大多数重要的文件系统(ext2/ext3,    reiserfs,    reiser4,    xfs,    jfs,    vfat,    ntfs,    iso9660)和网络(samba和nfs)。        
        SystemRescueCD可能是市面上最优秀的救援系统。你不仅可以从光盘上使用这种救援方法,还可以将这个救援系统放在U盘上使用。        
        要在一个U盘上建立一个SystemRescueCD,你需要大于256MB的磁盘空间。从Sourceforge下载iso镜像并把它烧制到光盘上。现在你必须在U盘上创建文件系统。使用dmesg命令找出U盘名称,然后用以下代码擦写U盘:        
        dd    if=/dev/zero    of=/dev/sda        
        这里的/dev/sda是U盘的名称。        
        现在在U盘上安装主引导记录:        
        install-mbr    /dev/sda        
        或        
        install-mbr    --force    /dev/sda(如果命令出错)                
        现在建立分散分区:                
        parted    /dev/sda        
        (parted)    mkpartfs    primary    fat32    0    100%    //    use    help    or    help    mkpartfs    command    to    see    help        
        (parted)    print    //    check    if    the    write    was    ok        
        (parted)    quit                
        现在已经建立好文件系统,然后将用SystemRescueCD镜像烧制的CD中的文件复制到U盘中。保证你复制的文件等级和CD上的相同。        
        现在,使得U盘可以用sysLinux命令启动:        
        sysLinux/dev/sda1                
        这里的/dev/sda1是磁盘的名称。                
        现在你已经建立了一个你可以整天随身携带的救援U盘。由于你使用Linux,你并不需要经常用到它。        
        最后总结        
        Linux是一个非常稳定的环境,但由于该系统中还有许多其它系统,它们可能会出现错误。虽然我们很容易会由于使用Linux而洋洋自得(因为它存在诸多优点),但了解如何拯救一个系统崩溃的机器也不失为一种明智的做法。        
        当然,不是世界上所有的救援系统都能100%地恢复你的系统,因此你可能希望考虑为你的Linux服务器和桌面系统实施一个灾难恢复计划。        
 
开发框架.pdf  生产行业案例.pdf

版权所有:合肥启达信息技术有限公司 备案号:皖ICP备12015909号-6 Copyright 2001-2012 All rights reserved

皖公网安备 34010402701105号