輕松解決 Linux操作系統(tǒng)故障恢復(fù)技巧
更新時(shí)間:2006年10月24日 00:00:00 作者:
不論你在運(yùn)行什么操作系統(tǒng),在很多情況下,你會(huì)面對(duì)災(zāi)難恢復(fù)操作。你的主引導(dǎo)區(qū)被覆蓋,你的硬盤不能啟動(dòng),或者一個(gè)重要的文件被刪除,或者你的顯示卡啟動(dòng)時(shí)閃爍一下就黑屏了。本文會(huì)就這些問(wèn)題作一些技巧性的討論,幫助你在遇到這些問(wèn)題時(shí),不致于手足無(wú)措。
首先需要的是一張應(yīng)急啟動(dòng)軟盤,在安裝 Linux 時(shí),一般會(huì)要求建立一張的,所以,你應(yīng)該有這張磁盤的,如果還沒(méi)有建立的話,趕緊去建立一張吧,什么?不知道怎么做?很簡(jiǎn)單的,一般的 Linux 系統(tǒng)下使用 mkbootdisk 命令就可以了。后面的那些參數(shù),只要看看幫助,應(yīng)該就明白了。
首先使用
# uname -a
系統(tǒng)提示:
Linux albertxu 2.2.16-2.0 #1 Sun May 20 16:53:41 EST 2001 i586 unknown
來(lái)看看系統(tǒng)的內(nèi)核版本。我們就知道系統(tǒng)的內(nèi)核版本是 2.2.16-2.0。
然后使用
# mkbootdisk --device /dev/fd0 2.2.16-2.0
系統(tǒng)提示:
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press to continue or ^C to abort:
插入磁盤,等待一會(huì),直到磁盤建立。這樣,緊急啟動(dòng)軟盤就這樣建立了。
除了采用以上的辦法以外,另外一個(gè)辦法就是使用 tomsrtbt來(lái)建立啟動(dòng)軟盤。先介紹 這個(gè)程序的安裝步驟:
# 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
按照屏幕的說(shuō)明,這個(gè)軟件采用高密度的壓縮方法把多種 Linux 工具壓縮到單張 1.7 Mb 的軟盤上。
缺省的磁盤包含下面的程序,驅(qū)動(dòng)和內(nèi)核:
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 是一個(gè)和發(fā)行版本無(wú)關(guān)的程序,甚至你可以把它用來(lái)恢復(fù) Windows 9x 。
丟失了主引導(dǎo)記錄后, Linux 就不能啟動(dòng)了。使用 Red Hat 的啟動(dòng)軟盤十分簡(jiǎn)單,只要在啟動(dòng)以后,用 root 登錄,然后運(yùn)行 lilo 就可以了。
使用 tomsrtbt 的方法是,啟動(dòng)后用 root 登錄,然后拿走軟盤。
# mount -t ext2 /dev/hda4 /mnt
# chroot /mnt
# /sbin/lilo
Added linux *
Added dos
# exit
# cd /
# umount mnt
在 Red Hat 6.2 之前的版本提供了一個(gè) rescue.img 文件,能用來(lái)建立一個(gè)單獨(dú)的緊急磁盤,和啟動(dòng)軟盤一起使用。在 LILO: 提示符下,鍵入 linux rescue 然后按照提示操作,在 6.2 版本以后,Red Hat 把緊急恢復(fù)功能做到了安裝 CD 上,使用 CD 啟動(dòng)后,鍵入 "rescue" 就可以了。
現(xiàn)在假設(shè)你的 /etc/fstab 存在一個(gè)輸入錯(cuò)誤,你把啟動(dòng)磁盤 /dev/hda4 寫(xiě)成了 /dev/hda44 ,這樣你的系統(tǒng)就不能啟動(dòng)了。
用 tomsrtbt 軟盤啟動(dòng),按照以下的辦法修改 /etc/fstab 就可以了。
# mount -t ext2 /dev/hda4 /mnt
# vi /mnt/etc/fstab
# umount /mnt
另外一個(gè)常見(jiàn)的問(wèn)題就是沒(méi)有正常關(guān)機(jī),可以采用 tomsrtbt 來(lái)修復(fù)一個(gè)損壞的磁盤分區(qū)。
# e2fsk -f /dev/hda2
對(duì)于一個(gè)嚴(yán)重?fù)p壞的分區(qū),這個(gè)命令需要重復(fù)好幾次。
如果一個(gè)分區(qū)不能完整修復(fù),你可以把重要的文件寫(xiě)到磁盤上,當(dāng) tomsrtbt 啟動(dòng)時(shí),把這些文件加載到內(nèi)存,能把磁盤空間用于其他應(yīng)用。
# 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 之中,在這個(gè)情形中,我們把 /etc 目錄的配置文件和 DNS 文件作了備份。
下面的例子是使用 tomsrtbt 來(lái)恢復(fù) 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
災(zāi)難并不會(huì)頻繁發(fā)生,但是做好災(zāi)難準(zhǔn)備的最重要事情就是備份數(shù)據(jù)。我們討論的所有技巧只是對(duì)數(shù)據(jù)可以恢復(fù)的情況下所能采取的一些措施。作為一名專業(yè)的系統(tǒng)管理人員,如果沒(méi)有做好數(shù)據(jù)備份,那么這個(gè)所謂的“專業(yè)”是名不副實(shí)的。
首先需要的是一張應(yīng)急啟動(dòng)軟盤,在安裝 Linux 時(shí),一般會(huì)要求建立一張的,所以,你應(yīng)該有這張磁盤的,如果還沒(méi)有建立的話,趕緊去建立一張吧,什么?不知道怎么做?很簡(jiǎn)單的,一般的 Linux 系統(tǒng)下使用 mkbootdisk 命令就可以了。后面的那些參數(shù),只要看看幫助,應(yīng)該就明白了。
首先使用
# uname -a
系統(tǒng)提示:
Linux albertxu 2.2.16-2.0 #1 Sun May 20 16:53:41 EST 2001 i586 unknown
來(lái)看看系統(tǒng)的內(nèi)核版本。我們就知道系統(tǒng)的內(nèi)核版本是 2.2.16-2.0。
然后使用
# mkbootdisk --device /dev/fd0 2.2.16-2.0
系統(tǒng)提示:
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press to continue or ^C to abort:
插入磁盤,等待一會(huì),直到磁盤建立。這樣,緊急啟動(dòng)軟盤就這樣建立了。
除了采用以上的辦法以外,另外一個(gè)辦法就是使用 tomsrtbt來(lái)建立啟動(dòng)軟盤。先介紹 這個(gè)程序的安裝步驟:
# 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
按照屏幕的說(shuō)明,這個(gè)軟件采用高密度的壓縮方法把多種 Linux 工具壓縮到單張 1.7 Mb 的軟盤上。
缺省的磁盤包含下面的程序,驅(qū)動(dòng)和內(nèi)核:
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 是一個(gè)和發(fā)行版本無(wú)關(guān)的程序,甚至你可以把它用來(lái)恢復(fù) Windows 9x 。
丟失了主引導(dǎo)記錄后, Linux 就不能啟動(dòng)了。使用 Red Hat 的啟動(dòng)軟盤十分簡(jiǎn)單,只要在啟動(dòng)以后,用 root 登錄,然后運(yùn)行 lilo 就可以了。
使用 tomsrtbt 的方法是,啟動(dòng)后用 root 登錄,然后拿走軟盤。
# mount -t ext2 /dev/hda4 /mnt
# chroot /mnt
# /sbin/lilo
Added linux *
Added dos
# exit
# cd /
# umount mnt
在 Red Hat 6.2 之前的版本提供了一個(gè) rescue.img 文件,能用來(lái)建立一個(gè)單獨(dú)的緊急磁盤,和啟動(dòng)軟盤一起使用。在 LILO: 提示符下,鍵入 linux rescue 然后按照提示操作,在 6.2 版本以后,Red Hat 把緊急恢復(fù)功能做到了安裝 CD 上,使用 CD 啟動(dòng)后,鍵入 "rescue" 就可以了。
現(xiàn)在假設(shè)你的 /etc/fstab 存在一個(gè)輸入錯(cuò)誤,你把啟動(dòng)磁盤 /dev/hda4 寫(xiě)成了 /dev/hda44 ,這樣你的系統(tǒng)就不能啟動(dòng)了。
用 tomsrtbt 軟盤啟動(dòng),按照以下的辦法修改 /etc/fstab 就可以了。
# mount -t ext2 /dev/hda4 /mnt
# vi /mnt/etc/fstab
# umount /mnt
另外一個(gè)常見(jiàn)的問(wèn)題就是沒(méi)有正常關(guān)機(jī),可以采用 tomsrtbt 來(lái)修復(fù)一個(gè)損壞的磁盤分區(qū)。
# e2fsk -f /dev/hda2
對(duì)于一個(gè)嚴(yán)重?fù)p壞的分區(qū),這個(gè)命令需要重復(fù)好幾次。
如果一個(gè)分區(qū)不能完整修復(fù),你可以把重要的文件寫(xiě)到磁盤上,當(dāng) tomsrtbt 啟動(dòng)時(shí),把這些文件加載到內(nèi)存,能把磁盤空間用于其他應(yīng)用。
# 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 之中,在這個(gè)情形中,我們把 /etc 目錄的配置文件和 DNS 文件作了備份。
下面的例子是使用 tomsrtbt 來(lái)恢復(fù) 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
災(zāi)難并不會(huì)頻繁發(fā)生,但是做好災(zāi)難準(zhǔn)備的最重要事情就是備份數(shù)據(jù)。我們討論的所有技巧只是對(duì)數(shù)據(jù)可以恢復(fù)的情況下所能采取的一些措施。作為一名專業(yè)的系統(tǒng)管理人員,如果沒(méi)有做好數(shù)據(jù)備份,那么這個(gè)所謂的“專業(yè)”是名不副實(shí)的。
您可能感興趣的文章:
- Linux下實(shí)現(xiàn)MySQL數(shù)據(jù)備份和恢復(fù)的命令使用全攻略
- linux備份與恢復(fù)基礎(chǔ)知識(shí)
- linux VPS之間網(wǎng)站數(shù)據(jù)的備份與恢復(fù)(網(wǎng)站遷移教程)
- Windows或Linux系統(tǒng)中備份和恢復(fù)MongoDB數(shù)據(jù)的教程
- Linux上通過(guò)binlog文件恢復(fù)mysql數(shù)據(jù)庫(kù)詳細(xì)步驟
- linux grub的啟動(dòng)加密及刪除恢復(fù)方法
- linux中誤刪除程序包恢復(fù)實(shí)例
- Linux命令替換rm命令防止誤刪除
- Linux恢復(fù)刪除文件的lsof命令詳解
相關(guān)文章
國(guó)產(chǎn)中文操作系統(tǒng)OpenDesktop
國(guó)產(chǎn)中文操作系統(tǒng)OpenDesktop...2006-10-10
Linux環(huán)境下的高級(jí)隱藏技術(shù)
Linux環(huán)境下的高級(jí)隱藏技術(shù)...2006-10-10
Linux系統(tǒng)環(huán)境下如何獲得U盤拔插的信息
獲得U盤的插入或者拔取得信息的傳統(tǒng)方法是在內(nèi)核級(jí)運(yùn)行hotplug程序,相關(guān)參數(shù)通過(guò)環(huán)境變量傳遞過(guò)來(lái),再由hotplug通知其他關(guān)注hotplug的應(yīng)用程序。這樣的做法效率有些低,現(xiàn)在通過(guò)一種特殊類型的socket netlink實(shí)現(xiàn)獲取U盤拔插的信息。netlink專門用于內(nèi)核空間和用戶空間的異步通信。2008-04-04

