本文由本站特约技术员:小小的天使 提供
今天有机会和大家一起讨论 Linux操作系统故障恢复技巧,可能不是很到位,仅供参考!
不论你在运行什么操作系统,在很多情况下,你会面对恢复操作。你的主引导区被覆盖,你的硬盘不能启动,或者一个重要的文件被删除,或者你的显示卡启动时闪一下就黑屏了。本文会就这些问题作一些技巧性的讨论,帮助你在遇到这些问题时,不致于手足无措。
首先需要的是一张应急启动软盘,在安装 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
灾难并不会频繁发生,但是做好灾难准备的最重要事情就是备份数据。我们讨论的所有技巧只是对数据可以恢复的情况下所能采取的一些措施。作为一名专业的系统管理人员,如果没有做好数据备份,那么这个所谓的“专业”是名不副实的。