[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > Linux > 正文
備份和修復Linux LILO指南
本文出自:http://www.yesky.com/ 作者: Jephe Wu (2002-01-08 08:10:00)
一. 本文目的

本文旨在如何給工作的系統做LILO和內核的軟盤備份,因為大多數Linux服務器使用
LILO進行引導,同時也給出緊急修復辦法。

二. 測試環境

Redhat Linux ,IDE和SCSI啟動硬盤。

三. 備份措施

當我們設置完新的服務器,除了常規的服務器重要配置文件和系統備份之外,最好
也要做LILO和內核的軟盤備份,萬一由某種原因導致LILO不能引導系統。

1. 第一種方法

適用范圍: 自己編譯的內核,所有的支持模塊已經編譯進內核,如果有SCSI硬盤,必
須編譯進SCSI支持進內 核,也就是說內核已經包含了所有引導需要的東西。

步驟:

格式化一張空白軟盤,不要生成文件系統,直接寫內核到軟盤,然改變內核文件中
的根文件系統分區定義

fdformat /dev/fd0h1440
  dd if=/boot/vmlinuz of=/dev/fd0 (用你自己的內核文件名替代vmlinuz)

rdev /dev/fd0 /dev/sda3 (用你的根分區設備名稱替代/dev/sda3)
  rdev -R /dev/fd0 1 (安裝根文件系統成只讀模式)

作用: 這樣當系統LILO失敗時,可用該軟盤引導系統且安裝硬盤根文件系統。

2. 第二種方法

適用范圍: 內核需要一系列模塊幫助引導,如SCSI硬盤驅動程序,則需要用下面的方
法生成帶LILO的引導軟盤

步驟: 放一張新的軟盤,不要格式化和分區,直接用mkbootdisk創建引導盤

mkbootdisk --device /dev/fd0 2.2.12-20 (用你的內核版本代替2.2.12-20,可用
uname -a查看) 

3. 第三種方法

適用范圍: mkbootdisk命令不可用,或者無論什理由你想手動創建一張帶LILO的
引導軟盤。

步驟:

fdformat /dev/fd0h1440 (低級格式化軟盤)
  /sbin/mkfs.minix /dev/fd0 1440 (在軟盤上創建minix文件系統)
  /bin/mount /dev/fd0 /mnt/floppy (安裝軟盤到/mnt/floppy目錄)
  cd /mnt/floppy
  mkdir boot etc dev
  cp -a /boot/vmlinuz /boot/initrd.img /boot/boot.b boot/
  注:用你的內核文件名代替vmlinuz 用你的initrd映像文件名代替initrd.img
  cp -a /dev/fd0 /dev/null /dev/zero /dev/hd[abcd]* /dev/sd[abcd]* dev/
  注: 如果你沒有SCSI設備,可不用拷貝/dev/sd[abcd]*
  創建/mnt/floppy/etc/lilo.conf如下
  boot=/dev/fd0
  read-only
  prompt
  image = /boot/vmlinuz
  initrd=/boot/initrd.img
  root = /dev/sda1 # 把/dev/sda1換成你的根文件系統設備名稱
  label = linux

最運行 lilo -r /mnt/floppy 在軟盤上安裝LILO (將自動生成/boot/map文件包括內
核的物理映像位置) 。

4. 剖析initrd.img

如果你是用SCSI硬盤啟動,內核必須能裝入SCSI驅動程序才能轉入你的硬盤根文件系統
引導系統。

如果你的內核沒有編譯進SCSI驅動程序,則需要用mkinitrd創建RAM驅動映像想知道你的
initrd.img中包含了哪些驅動程序嗎?

cat initrd.img | gunzip > /tmp/myinitrdfs
  mkdir /mnt/tmp
  mount -o loop -t ext2 /tmp/myinitrdfs /mnt/tmp

然查看/mnt/tmp中的文件linuxrc中的內容即可知道啟動時會裝入哪些驅動程序。你
也可以更改其中的內容,假設我們想加另一種SCSI驅動aic7xxx.o進入你的initrd.img

cd /mnt/tmp
  vi linuxrc 加上一行 insmod /lib/aic7xxx.o 
  cp /lib/modules/`uname -r`/scsi/aic7xxx.o lib/
  cd /
  umount /mnt/tmp
  dd if=/tmp/myinitrdfs | gzip > /boot/initrd2.img

至此,新的initrd文件initrd2.img就包含了aic7xxx的驅動程序了。

四. 緊急修復

許多情況能導致LILO引導失敗,象升級內核,忘記運行lilo更新MBR,克隆硬盤,缺少
SCSI驅動程序引導根文件系統等等,當我們遇到這些情況而手邊又沒有備份的引導軟盤
時,你仍然有許多其它途徑去修復。

1. 查看周圍有沒有類似的其它機器和系統在運行,如另一台服務器上有相同版本或同系
列的內核在運行。則在另一台系統上生成引導軟盤(帶LILO或者不帶LILO),如果需要添
加initrd.img中的SCSI驅動文件。

2. 用CDROM安裝盤啟動,CDROM會載入SCSI驅動,到分區界面時用ALT+F2轉入字符界面,
可mount硬盤根分區,運行lilo 和做相關的修復。

3. 下載包含boot/root文件系統在一張軟盤上的文件,如www.toms.net/rb/ 可完全從一
張軟盤啟動系統,完全不需要硬盤,然再安裝硬盤,修復系統(例如萬一你的/etc/fstab
中的根文件分區指定錯誤 ,可用此方法修復)。

4. 最如果都不可行,你可以下載與你的服務器相同版本或者同系列中最新版本的內核,
在另一台機器上編 譯需要的SCSI和網卡等相關驅動程序直接進入內核,不需要任何模塊,
然用本文的方法拷貝至軟盤,去引導系統。


(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
備份和修復Linux LILO指南 (2002-01-08 08:10:00)
深入解剖 LILO (2001-08-27 10:00:00)
實例講解 LILO 的配置和使用 (2001-08-27 09:00:00)
LILO的安全配置 (2001-08-01 07:00:00)
Linux 網管 123 --- 第4章. 安裝及硬體組態 - 7.從 LILO 啟動 (2001-06-30 07:05:00)
Linux命令Man解釋:lilo :安裝引導裝載程序 (2001-06-11 18:08:00)
LILO, Linux Crash Rescue HOWTO LILO 毀損,無法開機 (2001-05-02 10:42:23)
使用LILO做為Win95+WinNT+Linux多重開機 mini-HOWTO (2001-04-27 16:13:50)
解讀LILO錯誤提示信息 (2001-04-19 17:09:50)
深 入Linux 的LILO (2001-04-16 12:24:13)

===更多相關===
 

★  樊強制作 歡迎分享  ★