16.4. guestfish シェル
guestfish は、コマンドラインまたはシェルスクリプトから、ゲスト仮想マシンファイルシステムにアクセスするために使用できるインタラクティブなシェルです。libguestfs API の機能はすべて、シェルから利用できます。
仮想マシンのディスクイメージの表示または編集を開始するには、次のコマンドを実行して、目的のディスクイメージへのパスを置き換えます。
guestfish --ro -a /path/to/disk/image
guestfish --ro -a /path/to/disk/image
--ro は、ディスクイメージが読み取り専用で開かれていることを意味します。このモードは常に安全ですが、書き込みアクセスは許可しません。ゲスト仮想マシンが実行されていないことが確実な場合、またはディスクイメージがライブゲスト仮想マシンに接続されていない場合にのみ、このオプションを省略してください。libguestfs を使用してライブゲスト仮想マシンを編集することはできません。これを試みると、ディスクが破損し、元に戻せなくなります。
/path/to/disk/image は、ディスクへのパスです。これは、ファイル、ホスト物理マシン論理ボリューム (/dev/VG/LV など)、ホスト物理マシンデバイス (/dev/cdrom)、または SAN LUN(/dev/sdf3) の場合があります。
注記
libguestfs および guestfish には root 権限は必要ありません。アクセスされているディスクイメージが root から読み取りまたは書き込み、あるいは両方を必要とする場合にのみ、これらを root として実行する必要があります。
guestfish を対話的に起動すると、以下のプロンプトが表示されます。
プロンプトで 実行 と入力して、ライブラリーを開始し、ディスクイメージを割り当てます。これは、最初に実行するときに最大 30 秒かかることがあります。その後の起動は、非常に速く完了します。
注記
libguestfs は、KVM (利用可能な場合) などのハードウェア仮想化アクセラレーションを使用して、このプロセスを高速化します。
run コマンドを入力すると、以下のセクションで示すように、他のコマンドを使用できます。
16.4.1. guestfish を使用したファイルシステムの表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、guestfish でファイルを表示する方法について説明します。
16.4.1.1. 手動による一覧表示と表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
list-filesystems コマンドは、libguestfs が検出したファイルシステムの一覧を表示します。この出力は、Red Hat Enterprise Linux 4 ディスクイメージを示しています。
この出力は、Windows ディスクイメージを示しています。
><fs> run ><fs> list-filesystems /dev/vda1: ntfs /dev/vda2: ntfs
><fs> run
><fs> list-filesystems
/dev/vda1: ntfs
/dev/vda2: ntfs
その他の便利なコマンドは、list-devices、list-partitions、lvs、pvs、vfs-type、および file です。help command と入力すると、以下の出力のように、コマンドの詳細とヘルプを表示できます。
ファイルシステムの実際の内容を表示するには、最初にマウントする必要があります。この例では、前の出力 (
/dev/vda2
) に示されている Windows パーティションの 1 つを使用します。この場合、これは C:\ドライブに対応することがわかっています。
ls、ll、cat、そのmore、download、tar-out などの guestfish コマンドを使用して、ファイルおよびディレクトリーを表示およびダウンロードできます。
注記
このシェルには、現在の作業ディレクトリーの概念はありません。通常のシェルとは異なり、cd コマンドを使用してディレクトリーを変更することはできません。すべてのパスは、先頭のスラッシュ (/) 文字で始まる完全修飾する必要があります。Tab 鍵を使用して、パスを完成させます。
guestfish シェルを終了するには、exit と入力するか、Ctrl+d と入力します。
16.4.1.2. guestfish 検査の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ファイルシステムを手動で一覧表示してマウントする代わりに、guestfish 自体がイメージを検証して、ゲスト仮想マシンのようにファイルシステムをマウントできます。これを行うには、コマンドラインに -i を追加します。
インスペクションおよびマウントを実行するために、guestfish は libguestfs バックエンドを起動する必要があるため、-i オプションを使用する場合は run コマンドを使用する必要はありません。-i オプションは、多くの一般的な Linux および Windows ゲスト仮想マシンで機能します。
16.4.1.3. 名前によるゲスト仮想マシンのアクセス リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ゲスト仮想マシンは、libvirt として知られる名前 (つまり virsh list --all にあるように) を指定するとコマンドラインからアクセスできます。-d オプションを使用して、ゲスト仮想マシンに名前 (-i オプションの有無にかかわらず) でアクセスします。
guestfish --ro -d GuestName -i
guestfish --ro -d GuestName -i