レスキューモード

障害が発生した場合や、ブートしない場合などには修正するための方法がいくつかあります。ただし、修正するためには、システムを十分に理解することが必要です。ここでは、システムのレスキューを行うことのできる、レスキューモードでブートする方法を示します。

レスキューモードとは?

レスキューモードとは、コンパクトな Linux 環境のすべてをディスケット、CD、またはその他の手段によってブートする手段を表すために使われる言葉です。

このセクションで説明することは、いくつかの点において問題から回復する上で参考になります。

名前が示すように、レスキューモードは何かからレスキューするためのものです。通常の運用では、Red Hat Linuxは何をする(プログラムの実行、ファイルの格納など)にしてもハードドライブ上に格納されたファイルを使用します。

ただし、時には Linux が完全には動作しないために、システムのハードドライブ上のファイルにアクセスできないこともあります。レスキューモードを使用すれば、実際にはハードドライブから Linux を起動できない場合であっても、ハードドライブ上に格納されたファイルにアクセスすることができます。

通常は、レスキューモードが必要になる理由が一つまたは二つあります。

これらのシナリオについて詳しく見てみましょう。

Linux をブートできない

多くの場合、その原因は Red Hat Linux をインストールした後で別のオペレーティングシステムをインストールしたことです。他のオペレーティングシステムの中には、コンピュータ上に自分以外のオペレーティングシステムは存在しないと決めてかかり、本来は LILO ブートローダが含まれていたマスターブートレコード (MBR) を上書きするものがあります。そのようにして LILO が上書きされた場合は、運が悪かったと諦めるしかありません - ただし、それはレスキューモードが利用できない場合のことです。

ハードウェア/ソフトウェアの問題

このシナリオの場合は、Linux を稼働させるシステムの種類と同じ数の、異なる状況が存在します。ハードドライブが壊れた、または新しいカーネルを構築した後で LILO の実行を忘れたなどが、Red Hat Linux をブートできなくなる可能性のある例です。レスキューモードを利用できるならば、問題を解決できる可能性があります。あるいは少なくとも最重要ファイルのコピーをとることができます。

レスキューモードでシステムをブートするには、インストールブートプロンプトに対して以下のパラメータを入力します。

boot:linux rescue

以下のいずれかの方法でインストールブートプロンプトに到達することができます。

  • Red Hat Linux ボックスセットに同梱されるディスケットまたは CD-ROM からシステムをブートする。

  • ネットワークまたは PCMCIA ブートディスケットからブートする。これらの方法の場合は、ネットワーク接続が機能することが前提であり、ネットワークホストと転送タイプを識別することが要求されます。その情報を指定する方法については、Chapter 10 の「Installing over the Network」を参照してください。

レスキューモードでシステムがブートすると、次のプロンプトが表示されます。

bash#

このプロンプトから、以下にリストするコマンドを実行することができます。

anaconda          gzip        mkfs.ext2   ps
badblocks         head        mknod       python
bash              hwclock     mkraid      python1.5
cat               ifconfig    mkswap      raidstart
chatter           init        mlabel      raidstop
chmod             insmod      mmd         rcp
chroot            less        mmount      rlogin
clock             ln          mmove       rm
collage           loader      modprobe    rmmod
cp                ls          mount       route
cpio              lsattr      mpartition  rpm
dd                lsmod       mrd         rsh
ddcprobe          mattrib     mread       sed
depmode           mbadblocks  mren        sh
df                mcd         mshowfat    sync 
e2fsck            mcopy       mt          tac
fdisk             mdel        mtools      tail
fsck              mdeltree    mtype       tar
fsck.ext2         mdir        mv          touch
ftp               mdu         mzip        traceroute
genhdlist         mformat     open        umount
gnome-pty-helper  minfo       pico        uncpio
grep              mkdir       ping        uniq
gunzip            mke2fs      probe       zcat
	  

ただし、ダメージを受けていないのであればルートファイルシステムをマウントしてから標準的な Linux のユーティリティを実行することができます。たとえば、ルートファイルシステムが /dev/hda5 の中にあるとします。以下にこのパーティションのマウント方法を示します。

mount -t ext2 /dev/hda5 /foo

ここで /foo はすでに作成してあるディレクトリです。

これで chrootfsckman、およびその他のユーティリティを実行できるようになります。この時点で、Linux はシングルユーザモードで動作しています。

Linux パーティションの名前が分からない場合は、推測してもかまいません。つまり、存在しないパーティションをマウントしても害はありません。

直接シングルユーザモードでブートする

直接シングルユーザモードでブートできる可能性があります。システムがブートするものの、ブート完了後にログインすることができない場合は、リブートしてから LILO のブートプロンプトに対して以下のいずれかのオプションを指定してみてください。

LILO boot:linux single
LILO boot:linux emergency

シングルユーザモードでは、コンピュータはランレベル 1 でブートします。つまりローカルファイルシステムはマウントされますが、ネットワークは有効になりません。システム保守用のシェルが利用可能になります。

緊急モードでは、可能な限り最も小さな環境でブートします。ルートファイルシステムは読み込み専用でマウントされ、ほとんど何もセットアップされません。このモードの linux single に対する主な長所は、init ファイルがロードされないことです。init が壊れたか機能しない場合であっても、ファイルシステムをマウントすることによって、再インストール中に失われた可能性のあるデータを復元することができます。

便利な小技

カーネルを再構築し、その新しい作品を試してみようと思った時に、LILO を実行する前にリブートしてしまったことはありますか ?その時に古いカーネルに対するエントリが lilo.conf の中になかったのでありませんか?… を読んでください。

多くの場合は、Red Hat Linux ブートディスクから Red Hat Linux/Intel システムをブートし、ルートファイルシステムをマウントして作業を進めることができます。以下にその方法を示します。

ブートディスクの boot: プロンプトに対して以下のコマンドを入力します。

linux single root=/dev/hdXX initrd=

(/dev/hdXXXX を、ルートパーティションを表す適当な文字と数字で置き換えます。)

これで何が起こるのでしょう?まず、システムがシングルユーザモードでブートし、指定したルートパーティションがルートパーティションとして設定されます。空の initrd を指定するとブートディスク上のインストール関連イメージがバイパスされるので、即座にシングルユーザモードに入ります。

欠点はあるのでしょうか?残念ですが、あります。Red Hat Linux ブートディスク上のカーネルはビルトインの IDE しかサポートしていないため、SCSI ベースのシステムを使用しているユーザはこの技を使用することができません。その場合は、上記のブートディスクとレスキューディスクを組み合わせて使用する必要があります。