快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

LILO, Linux Crash Rescue HOW-TO 中译版(一)


  作者:Al Dev (Alavoor Vasudevan) [1][email protected]
  译者:黄国伟 [2][email protected]
  
  这份文件探讨从 Linux 系统失灵中回复的方法。造成 Linux 系统失灵的各种原
  因可能是 - LILO 毁损、 linux 无法开机、 硬碟主开机记录 (Master Boot
  Record, MBR) 损坏、或是安装其他作业系统例如 Windows NT 而将 LILO 或
  MBR 盖写掉所造成 linux 无法开机。
  _________________________________________________________________
  
  1. 简介
  
  * 1.1 回复系统的快速步骤
  * 1.2 预防性措施
  * 1.3 移除 LILO
  * 1.4 常犯错误
  
  2. 相关连结
  
  3. 此份文件的其他格式
  
  4. 版权 Copyright
  _________________________________________________________________
  
  1. 简介
  
  您无法避免意外的发生;如果意外发生在 linux 系统, 这可能会损害到硬碟主
  开机记录 (MBR) 或是 LILO (Linux boot Loader)。 当 linux 由於硬碟故障而
  导致无法开机时,意外就会发生。 假如您不小心重新划分磁碟,或是在 linux
  系统的电脑上安装其他作业系统, 例如:Windows 98/NT,LILO 也可能会失效。
  
  这份文件给您一些点子、秘诀、和快速的指引来快速回复系统, 而不必费心地研
  读上百页有关 LILO 或 Linux 的文件。
  
  1.1 回复系统的快速步骤
  
  循著这些步骤执行,以便从 LILO 或系统失灵中回复。
  
  1. 状况 1: 假如系统无法开机 -
  取得并建立 tomsrtbt 开机磁片 [3]http://www.toms.net/rb, 并使用
  tomsrtbt 开机磁片开机。 使用 fdisk 指令找出分割区 (partitions)。 试
  著用以下指令辨识出 root 分割区 -
  _____________________________________________________________
  
  bash# fdisk /dev/hda
  bash# mkdir /test
  bash# mount /dev/hda1 /test
  bash# ls /test
  您应该会看到 root 分割区显示如下 -
  bin fd lib mnt proc sbin usr
  boot dev etc home lost+found opt root tmp var
  _____________________________________________________________
  
  如果此分割区并非 root 分割区,试试下个分割区 /dev/hda2 。 再继续尝
  试 hda3 、 hda4 、 hda5 等,直到您找出 root 分割区为止。 如在 hda
  仍无法找到,请重复以上的步骤在其他装置上, 例如 hdb, hdc, hdd 等..
  在建立新的 lilo 设定时, /usr、/var、与 /boot 分割区也是需要的。
  以我的系统为例,root 分割区是在 /dev/hda4:
  _____________________________________________________________
  
  bash# mkdir /hda4
  bash# mount /dev/hda4 /hda4
  bash# cat /hda4/etc/fstab
  阅读 fstab 的内容,并且按照 fstab 档案挂上 (mount) 分割区。像下面这样 -
  bash# mount /dev/hda5 /hda4/boot
  bash# mount /dev/hda6 /hda4/usr
  bash# mount /dev/hda7 /hda4/var
  bash# mount /dev/hda8 /hda4/opt
  bash# mount /dev/hda9 /hda4/root
  bash# mount /dev/hda10 /hda4/home
  _____________________________________________________________
  
  以我的系统为例,按照 fstab 所显示,hda5 是 boot、hda6 是 usr ,
  hda7 是 var、hda8 是 opt、hda9 是 root、hda10 是 home、 而 hda11 是
  windows95 的目录
  编辑 /etc/fstab (不是 /hda4/etc/fstab)并且加入(以下简单的程式码)
  _____________________________________________________________
  
  /dev/hda4 /hda4 ext2 defaults 1 1
  /dev/hda5 /hda4/boot ext2 defaults 1 1
  /dev/hda6 /hda4/usr ext2 defaults 1 1
  /dev/hda7 /hda4/var ext2 defaults 1 1
  /dev/hda8 /hda4/opt ext2 defaults 1 1
  /dev/hda9 /hda4/root ext2 defaults 1 1
  /dev/hda10 /hda4/home ext2 defaults 1 1
  /dev/hda11 /hda4/win95part vfat defaults 1 1
  
  在我的电脑中,hda4 含有 linux 的 root 分割区、hda5 有 boot 分割区、
  hda11 则有 windows 95 的 vfat 系统。
  
  bash# mkdir /hda4/win95part
  bash# mount /hda4/win95part
  使用 fsck 或 e2fsck 指令来修复系统。
  bash# man fsck
  bash# man e2fsck
  _____________________________________________________________
  
  2. 状况 2: 如果 LILO 是无效的..
  依照状况 1 的步骤来排除问题。如果无法解决,则参照以下步骤。 现在您
  应该已经挂上 /hda4 且已经编辑好 /etc/fstab 档案了。
  _____________________________________________________________
  
  bash# mount -a
  bash# chroot /hda4 /sbin/lilo -q
  bash# man chroot
  bash# chroot /hda4 /sbin/lilo
  _____________________________________________________________
  
  您也可以选择使用 /sbin/lilo 以代替 chroot。 lilo 加选项 -r 实际上就
  和 chroot 的指令是一样的。 强烈建议您使用 chroot,而不要使用 lilo
  -r, 因为使用 chroot 比较方便,且较容易找出错误。
  _____________________________________________________________
  
  bash# man lilo
  bash# /sbin/lilo -r /hda4
  _____________________________________________________________
  
  3. 状况 3: 如果 LILO 是无效的..
  如果使用状况 1 和状况 2 的步骤均无法解决, 假如您有使用
  'mkbootdisk' 制作过开机片(於安装时或参考 'man mkbootdisk'自行建立)
  ,则使用您的开机磁片来开机并修复分割区。 mkbootdisk 存在於
  mkbootdisk*.rpm 的套件,您必须安装它。 (译注:随不同发行套件而有所
  差异;请洽询您的发行套件厂商或组织)
  4. 状况 4: 如果以上状况 1、2、3 的步骤皆无法解决问题,且您也没有开机
  磁片
  假如您有其他 linux 系统的电脑,以 root 身份登入并且执行 -
  _____________________________________________________________
  
  bash$ man mkbootdisk
  bash# cp /etc/lilo.conf /etc/lilo-original.conf
  _____________________________________________________________
  
  编辑 /etc/lilo.conf 并将您在 '状况 1' 所获得的 root 分割区格式填入
  ;之後插入空白磁碟片并执行 -
  _____________________________________________________________
  
  bash# mkbootdisk /dev/fd0
  _____________________________________________________________
  
  mkbootdisk 存在於 mkbootdisk*.rpm 的套件,您必须安装它。 (译注:随
  不同发行套件而有所差异;请洽询您的发行套件厂商或组织) 您必须确保将
  /etc/lilo-original.conf 更改回原来的档名 /etc/lilo.conf!! 再以此开
  机磁片进行状况 3 的步骤。
  5. 状况 5: 这是最坏的情况,希望您不会走到这个地步。 状况 1 到 4 已包含
  了绝大多数的案例,但是如果连状况 1、2、3、和 4 的步骤都无法解决 -
  第一步: 使用 tomsrtbt 开机磁片开机,挂上分割区, 并且使用以下指令
  备份 root 分割区至其他还有磁碟空间的分割区 -
  _____________________________________________________________
  
  编辑 /etc/fstab 并且写入 (以下简单的程式码,
  您可能必须按照您的磁碟机实际状况作改变) -
  /dev/hda4 /hda4 ext2 defaults 1 1
  /dev/hda11 /b1 vfat defaults 1 1
  bash$ mkdir /hda4; mount /hda4
  bash$ mkdir /b1; mount /b1
  bash$ cd /
  bash$ df
  查看 /b1 是否有足够的磁碟空间,以便使用 tar 来备份 root 分割区。
  bash$ tar cvf /b1/root-hda4.tar /hda4
  _____________________________________________________________
  
  第二步: 放入 Linux 光碟片,重开机并安装 redhat linux (译注:或其他
  linux 发行套件) 在 /dev/hda4 (但千万不要安装任何多馀的套件, 您只需
  要安装 root、boot 系统,和 LILO 管理者。 也就是说,选择最小安装即
  可)。 安装程式也将会安装 LILO 在您的硬碟里。 现在重新启动 linux,以
  root 身份登入,并且执行 -
  _____________________________________________________________
  
  bash$ man mkbootdisk
  bash# cp /etc/lilo.conf /etc/lilo-original.conf
  _____________________________________________________________
  
  注意:您必须记得将 lilo-original.conf 复制回 lilo.conf!! 编辑
  /etc/lilo.conf 并将您在 '状况 1' 所获得的 root 分割区格式填入;之後
  插入空白磁碟片并执行 -
  _____________________________________________________________
  
  bash# mkbootdisk /dev/fd0
  bash# cp /etc/lilo-original.conf /etc/lilo.conf
  __________
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论