轻松解决 Linux操作系统故障恢复技巧

所属分类: 操作系统 / unix linux 阅读数: 134
收藏 0 赞 0 分享
不论你在运行什么操作系统,在很多情况下,你会面对灾难恢复操作。你的主引导区被覆盖,你的硬盘不能启动,或者一个重要的文件被删除,或者你的显示卡启动时闪烁一下就黑屏了。本文会就这些问题作一些技巧性的讨论,帮助你在遇到这些问题时,不致于手足无措。

  首先需要的是一张应急启动软盘,在安装 Linux 时,一般会要求建立一张的,所以,你应该有这张磁盘的,如果还没有建立的话,赶紧去建立一张吧,什么?不知道怎么做?很简单的,一般的 Linux 系统下使用 mkbootdisk 命令就可以了。后面的那些参数,只要看看帮助,应该就明白了。

  首先使用

  # uname -a

  系统提示:

  Linux albertxu 2.2.16-2.0 #1 Sun May 20 16:53:41 EST 2001 i586 unknown

  来看看系统的内核版本。我们就知道系统的内核版本是 2.2.16-2.0。

  然后使用

  # mkbootdisk --device /dev/fd0 2.2.16-2.0

  系统提示:

  Insert a disk in /dev/fd0. Any information on the disk will be lost.
  Press to continue or ^C to abort:

  插入磁盘,等待一会,直到磁盘建立。这样,紧急启动软盘就这样建立了。

  除了采用以上的办法以外,另外一个办法就是使用 tomsrtbt来建立启动软盘。先介绍 这个程序的安装步骤:

  # gunzip tomsrtbt-1.7.218.tar.gz
  # tar -xvf tomsrtbt-1.7.218.tar
  # rm tomsrtbt-1.7.218.tar
  # cd tomsrtbt-1.7.218/
  # ./install.s

  按照屏幕的说明,这个软件采用高密度的压缩方法把多种 Linux 工具压缩到单张 1.7 Mb 的软盘上。

  缺省的磁盘包含下面的程序,驱动和内核:

  2.0.37 3c589_cs BusLogic DEC_ELCP EEXPRESS EEXPRESS_PRO EL2 EL3 EXT2 FAT FAT32 FD IDE IDECD IDEFLOPPY IDEPCMCIA IDETAPE ISO9660 JOLIET LOOP MATH_EMULATION MINIX MSDOS NE2000 NFS PROC RAM SD SERIAL SLIP SMC SR ST TR ULTRA VFAT VORTEX WD80x3 ah152x_cs aha152x aha1542 aic7xxx ash awk badblocks bdflush bzip2 cardbus cardmgr cat ce ce.help chattr chgrp chmod chown chroot clear cmp cp cpio cut date dd ddate debugfs df dirname dmesg ds du dumpe2fs e2fsck eata echo egrep elvis emacs extend false fdflush fdformat fdisk fdomain filesize find findsuper fmt fsck.ext2 fsck.msdos fstab grep gzip halt head hexedit hostname i82365 ifconfig ifport ile init inittab insmod kill killall5 ksyms length less libc.so.5.4.13 lilo lilo.conf ln loadkeys login losetup ls lsattr mawk md5sum memtest mingetty miterm mkdir mkdosfs mke2fs mkfifo mkfs.minix mklost+found mknod mkswap mnsed more mount mt mv nc ncr53c8xx nmclan_cs ntfs pax pcmcia pcmcia_core pcnet_cs ping plip ppa printf ps pwd qlogic_cs qlogicfas reboot rescuept reset rm rmdir rmmod route rsh rshd script scsi_info seagate sed serial_cs setserial sh slattach sleep slip snarf sort split stty swapoff swapon sync tail tar tcic tee telnet test touch tune2fs umount undeb update vi vi.help wc

  最让人放心的是,tomsrtbt 是一个和发行版本无关的程序,甚至你可以把它用来恢复 Windows 9x 。

  丢失了主引导记录后, Linux 就不能启动了。使用 Red Hat 的启动软盘十分简单,只要在启动以后,用 root 登录,然后运行 lilo 就可以了。

  使用 tomsrtbt 的方法是,启动后用 root 登录,然后拿走软盘。

  # mount -t ext2 /dev/hda4 /mnt
  # chroot /mnt
  # /sbin/lilo
  Added linux *
  Added dos
  # exit
  # cd /
  # umount mnt

  在 Red Hat 6.2 之前的版本提供了一个 rescue.img 文件,能用来建立一个单独的紧急磁盘,和启动软盘一起使用。在 LILO: 提示符下,键入 linux rescue 然后按照提示操作,在 6.2 版本以后,Red Hat 把紧急恢复功能做到了安装 CD 上,使用 CD 启动后,键入 "rescue" 就可以了。

  现在假设你的 /etc/fstab 存在一个输入错误,你把启动磁盘 /dev/hda4 写成了 /dev/hda44 ,这样你的系统就不能启动了。

  用 tomsrtbt 软盘启动,按照以下的办法修改 /etc/fstab 就可以了。

  # mount -t ext2 /dev/hda4 /mnt
  # vi /mnt/etc/fstab
  # umount /mnt

  另外一个常见的问题就是没有正常关机,可以采用 tomsrtbt 来修复一个损坏的磁盘分区。

  # e2fsk -f /dev/hda2

  对于一个严重损坏的分区,这个命令需要重复好几次。

  如果一个分区不能完整修复,你可以把重要的文件写到磁盘上,当 tomsrtbt 启动时,把这些文件加载到内存,能把磁盘空间用于其他应用。

  # fdformat /dev/fd0H1440
  # mke2fs /dev/fd0
  # mkdir /mnt/image
  # mkdir /mnt/floppy
  # mount -t ext2 /dev/hda4 /mnt/image
  # mount -t ext2 /dev/fd0 /mnt/floppy
  # cd /mnt/floppy
  # cp /mnt/image/etc/*.conf .
  # cp /mnt/image/etc/conf.modules .
  # cp /mnt/image/var/named/* .
  # cp /mnt/image/home/gwilburn/docs/myrecipes.txt .
  # cd /mnt
  # umount floppy
  # umount image

  以上步骤用到了 fdformat, mke2fs, mount, cd 和 cp 命令,这些命令都包含在 tomsrtbt 之中,在这个情形中,我们把 /etc 目录的配置文件和 DNS 文件作了备份。

  下面的例子是使用 tomsrtbt 来恢复 Windows 的例子。

  # mkdir /mnt/win
  # mkdir /mnt/floppy
  # mount -t vfat /dev/hda1 /mnt/win
  # mount -t vfat /dev/fd0 /mnt/floppy
  # vi /mnt/win/autoexec.bat
  # cd /mnt/floppy
  # cp /mnt/win/autoexec.bat .
  # cp /mnt/win/config.sys .
  # cp "/mnt/win/program files/netscape/bookmarks.htm" .
  # cd /mnt
  # umount floppy
  # umount win

  灾难并不会频繁发生,但是做好灾难准备的最重要事情就是备份数据。我们讨论的所有技巧只是对数据可以恢复的情况下所能采取的一些措施。作为一名专业的系统管理人员,如果没有做好数据备份,那么这个所谓的“专业”是名不副实的。
更多精彩内容其他人还在看

Linux通过命令仅获取IP地址的方法

这篇文章主要介绍了Linux通过命令仅获取IP地址的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 下VSFTP服务搭建过程

这篇文章主要介绍了Linux 下VSFTP服务搭建,需要的朋友可以参考下
收藏 0 赞 0 分享

CentOS 7.0关闭默认防火墙启用iptables防火墙的设置方法

这篇文章主要介绍了CentOS 7.0关闭默认防火墙启用iptables防火墙的设置方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux系统下解决getch()输入数值不回显示问题

这篇文章主要介绍了Linux系统下解决getch()输入数值不回显示问题,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

监控Linux系统节点和服务性能的方法

这篇文章主要介绍了监控Linux系统节点和服务性能的方法,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下scp无密码上传 下载 文件 目录的方法

这篇文章主要介绍了Linux下scp无密码上传 下载 文件 目录的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

简述Linux文本处理命令“sed”

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。下面通过本文给大家简单介绍Linux文本处理命令“sed”,需要的朋友参考下吧
收藏 0 赞 0 分享

Linux简易彩色进度条的实例代码

#进度条:顾名思义就是看计算机处理任务时的速度,完成度。下面通过本文给大家分享Linux简易彩色进度条的实例代码,需要的朋友参考下吧
收藏 0 赞 0 分享

详解shell中source、sh、bash、./执行脚本的区别

这篇文章主要介绍了shell中source、sh、bash、./执行脚本的区别,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Linux实现U盘自动挂载(图文教程)

这篇文章主要介绍了Linux实现U盘自动挂载功能,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多