Red Hat Training

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

21.4. guestfish シェル

guestfish は、コマンドラインまたはシェルスクリプトからゲストの仮想マシンファイルシステムにアクセスできるインタラクティブなシェルです。シェルから、libguestfs API のすべての機能を利用できます。
仮想マシンディスクイメージの表示または編集を開始するには、以下のコマンドを入力します。次のコマンドで、目的のディスクイメージへのパスを変更します。
$ guestfish --ro -a /path/to/disk/image
--ro は、ディスクイメージが読み取り専用を開くことを意味します。このモードは常に安全ですが、書き込みアクセスを許可しません。ゲスト仮想マシンが実行中でない 、ディスクイメージがライブゲスト仮想マシンに割り当てられていない場合にのみ、このオプションを省略します。libguestfs を使用してライブゲスト仮想マシンを編集し、これによりディスクが破損する可能性があります。
/path/to/disk/image は、ディスクへのパスです。これは、ファイル、ホストマシンの論理ボリューム(/dev/VG/LV など)、または SAN LUN(/dev/sdf3)になります。
注記
libguestfs および guestfish には root 権限は必要ありません。アクセスされているディスクイメージが root で読み書きを必要とする場合にのみ、これを root として実行する必要があります。
guestfish を対話的に開始すると、このプロンプトが表示されます。
$ guestfish --ro -a /path/to/disk/image

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

 Type: 'help' for help on commands
       'man' to read the manual
       'quit' to quit the shell

><fs>
プロンプトが表示されたら、run と入力してライブラリーを開始し、ディスクイメージを割り当てます。これには、最長で 30 秒かかることがあります。その後、開始時間が短縮されます。
注記
libguestfs は、KVM(利用可能な場合)などのハードウェアの仮想化アクセラレーションを使用して、このプロセスを迅速化します。
run コマンドを入力すると、以降のセクションでその他のコマンドを使用できます。

21.4.1. guestfish を含むファイルシステムの表示

本セクションは、guestfish を使用してファイルシステムを表示する方法を説明します。

21.4.1.1. 手動の一覧表示と表示

list-filesystems コマンドは、libguestfs で見つかったファイルシステムを一覧表示します。この出力には、Red Hat Enterprise Linux 4 のディスクイメージが表示されます。
><fs> run
><fs> list-filesystems
/dev/vda1: ext3
/dev/VolGroup00/LogVol00: ext3
/dev/VolGroup00/LogVol01: swap
その他の便利なコマンドは、list-deviceslist-partitionslvspvsvfs-type、および file です。以下の出力にあるように、help コマンドを入力すると、さらに情報や コマンド のヘルプを表示できます。
><fs> help vfs-type
 NAME
    vfs-type - get the Linux VFS type corresponding to a mounted device

 SYNOPSIS
     vfs-type mountable

 DESCRIPTION
    This command gets the filesystem type corresponding to the filesystem on
    "device".

    For most filesystems, the result is the name of the Linux VFS module
    which would be used to mount this filesystem if you mounted it without
    specifying the filesystem type. For example a string such as "ext3" or
    "ntfs".
ファイルシステムの実際のコンテンツを表示するには、まずマウントする必要があります。
lsllcatmoredownloadtar-out などの guestfish コマンドを使用して、ファイルとディレクトリーを表示およびダウンロードできます。
注記
このシェルでは、現在の作業ディレクトリーの概念はありません。通常のシェルとは異なり、cd コマンドを使用してディレクトリーを変更することはできません。すべてのパスは、スラッシュ(/)文字で始まる完全修飾である必要があります。Tab キーを使用してパスを完了します。
guestfish シェルから終了するには、exit を入力するか、Ctrl+d を入力します。

21.4.1.2. guestfish の検査

手動でファイルシステムの一覧を表示してマウントする代わりに、guestfish 自体がイメージを検査し、そのファイルシステムをゲスト仮想マシンの中にマウントすることができます。これには、コマンドラインで -i オプションを追加します。
$ guestfish --ro -a /path/to/disk/image -i

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

 Type: 'help' for help on commands
       'man' to read the manual
       'quit' to quit the shell

 Operating system: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
 /dev/VolGroup00/LogVol00 mounted on /
 /dev/vda1 mounted on /boot

 ><fs> ll /
 total 210
 drwxr-xr-x. 24 root root  4096 Oct 28 09:09 .
 drwxr-xr-x  21 root root  4096 Nov 17 15:10 ..
 drwxr-xr-x.  2 root root  4096 Oct 27 22:37 bin
 drwxr-xr-x.  4 root root  1024 Oct 27 21:52 boot
 drwxr-xr-x.  4 root root  4096 Oct 27 21:21 dev
 drwxr-xr-x. 86 root root 12288 Oct 28 09:09 etc
 ...
検査およびマウントを実行するために guestfish バックエンドを起動する必要があるため、-i オプションを使用する際に run コマンドは必要ありません。この -i オプションは、多数の一般的な Linux ゲスト仮想マシンで機能します。

21.4.1.3. 名前によるゲスト仮想マシンへのアクセス

libvirt(つまり、virsh list --allに表示されるように)libvirt として知られる名前を指定すると、ゲスト仮想マシンはコマンドラインからアクセスできます。-i オプションの有無にかかわらず、-d オプションを使用して、その名前でゲスト仮想マシンにアクセスします。
$ guestfish --ro -d GuestName -i

このページには機械翻訳が使用されている場合があります (詳細はこちら)。