Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.6. virt-rescue: レスキューシェル

このセクションは、レスキューシェルに関する情報を提供します。

21.6.1. 導入部分

本セクションでは、仮想マシンのレスキュー CD と似ていると思われる virt-rescue を説明します。ゲスト仮想マシンをレスキューシェルで起動して、メンテナンスを実行してエラーを修正し、ゲスト仮想マシンを修復できるようにします。
virt-rescue と guestfish には、重複する部分があります。virt-rescue は、通常の Linux ファイルシステムツールを使用して対話型のアドホックな変更を行うために使用されます。これは、障害が発生したゲスト仮想マシンのレスキューにとりわけ適しています。virt-rescue はスクリプトを使用できません。
一方、guestfish は対話的に使用することもできますが、正式なコマンドセット (libguestfs API) を使用して、スクリプトを使用し、構造化した変更を行う場合にとりわけ役立ちます。

21.6.2. virt-rescue の実行

ゲスト仮想マシンで virt-rescue を使用する前に、ゲスト仮想マシンが実行していないことを確認してください。そうでないと、ディスクが破損します。ゲスト仮想マシンが稼働していないことを確認したら、次のコマンドを実行します。
$ virt-rescue -d GuestName
(GuestName は、libvirt が認識しているゲスト名です。) または、以下のコマンドを実行します。
$ virt-rescue -a /path/to/disk/image
(パスは、ゲスト仮想マシンのディスクを含むファイル、論理ボリューム、LUN などを指定できます)。
virt-rescue がレスキュー仮想マシンを起動すると、最初に出力がスクロールして過去のものが表示されます。最後に、以下が表示されます。
Welcome to virt-rescue, the libguestfs rescue shell.

 Note: The contents of / are the rescue appliance.
 You have to mount the guest virtual machine's partitions under /sysroot
 before you can examine them.

 bash: cannot set terminal process group (-1): Inappropriate ioctl for device
 bash: no job control in this shell
 ><rescue>
シェルプロンプトは通常の bash シェルで、通常の Red Hat Enterprise Linux コマンドを減らしたものが利用できます。たとえば、次のように入力します。
><rescue> fdisk -l /dev/vda
上記のコマンドは、ディスクパーティションのリストを表示します。ファイルシステムをマウントするには、/sysroot にマウントすることが推奨されます。これは、ユーザーが好きなものをマウントするためのレスキューマシンの空のディレクトリーです。/ のファイルは、レスキュー仮想マシン自体のファイルであることに注意してください。
><rescue> mount /dev/vda1 /sysroot/
EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null)
><rescue> ls -l /sysroot/grub/
 total 324
 -rw-r--r--. 1 root root     63 Sep 16 18:14 device.map
 -rw-r--r--. 1 root root  13200 Sep 16 18:14 e2fs_stage1_5
 -rw-r--r--. 1 root root  12512 Sep 16 18:14 fat_stage1_5
 -rw-r--r--. 1 root root  11744 Sep 16 18:14 ffs_stage1_5
 -rw-------. 1 root root   1503 Oct 15 11:19 grub.conf
 [...]
ゲスト仮想マシンのレスキューが終了したら、exit または Ctrl+d を入力してシェルを終了します。
virt-rescue には多くのコマンドラインオプションがあります。最もよく使用されるオプションは以下のとおりです。
  • --ro: ゲスト仮想マシンで読み取り専用モードで操作します。変更は保存されません。これを使用して、ゲスト仮想マシンを実験できます。シェルを終了すると、変更はすべて破棄されます。
  • --network: レスキューシェルからのネットワークアクセスを有効にします。RPM またはその他のファイルをゲスト仮想マシンにダウンロードする必要がある場合などに使用します。