Red Hat Training

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

16.12. virt-sysprep: 仮想マシン設定のリセット

virt-sysprep コマンドラインツールを使用すると、ゲスト仮想マシンをリセットまたは設定解除して、クローンを作成できます。このプロセスには、SSH ホストキー、永続的なネットワーク MAC 設定、およびユーザーアカウントの削除が含まれます。virt-sysprep は、SSH キー、ユーザー、ロゴなどを追加して、仮想マシンをカスタマイズすることもできます。各手順は、必要に応じて有効または無効にできます。
sysprep という用語は、Microsoft Windows システムで使用されるシステム準備ツール (sysprep.exe) に由来します。それにもかかわらず、このツールは現在 Windows ゲストでは機能しません。
注記
libguestfsguestfish ルート権限は必要ありません。アクセスされているディスクイメージが root アクセスから読み取りまたは書き込み、あるいは両方を必要とする場合にのみ、これらを root として実行する必要があります。
virt-sysprep ツールは、libguestfs-tools-c パッケージの一部で、以下のコマンドでインストールされます。
$ yum install libguestfs-tools-c
または、次のコマンドを使用して、virt-sysprep ツールのみをインストールすることもできます。
$ yum install /usr/bin/virt-sysprep
重要
virt-sysprep は、ゲストまたはディスクイメージを所定の位置に変更します。virt-sysprep を使用するには、ゲスト仮想マシンがオフラインである必要があるため、シャットダウンしてからコマンドを実行してください。ゲスト仮想マシンの既存のコンテンツを保持するには、最初にディスクのスナップショット、コピー、またはクローンを作成する必要があります。ディスクのコピーとクローン作成の詳細については、libguestfs.org を参照してください。
次のコマンドは、virt-sysprep で使用できます。

表16.1 virt-sysprepコマンド

コマンド 説明
--help 特定のコマンドまたはパッケージ全体に関する簡単なヘルプエントリーを表示します。詳細なヘルプは、man ページの virt-sysprep を参照してください。 $ virt-sysprep --help
-a [file] or --add [file] 指定されたfileを追加します。これは、ゲスト仮想マシンからのディスクイメージである必要があります。ディスクイメージの形式は自動検出されます。これを上書きして、特定の形式に強制する場合は、--format オプションを使用します。 $ virt-sysprep --add /dev/vms/disk.img
-c [URI] or --connect [URI] libvirt を使用している場合は、指定の URI に接続します。省略した場合、KVM ハイパーバイザーを介して接続します。ゲストブロックデバイスを直接指定 (virt-sysprep -a) すると、libvirt はまったく使用されません。 $ virt-sysprep -c qemu:///system
-d [guest] or --domain [guest] 指定したゲスト仮想マシンのすべてのディスクを追加します。ドメイン名の代わりにドメイン UUID を使用できます。 $ virt-sysprep --domain 90df2f3f-8857-5ba9-2714-7d95907b1c9e
-n または --dry-run または --dryrun ゲスト仮想マシンで、読み取り専用の "dry run" sysprep 操作を実行します。これにより sysprep 操作が実行されますが、末尾のディスクに対する変更はすべて破棄されます。 $ virt-sysprep -n
--enable [operations] 指定したoperationsを有効にします。可能な操作の一覧を表示するには、--list コマンドを使用します。 $ virt-sysprep --enable ssh-hotkeys,udev-persistent-net
--format [raw|qcow2|auto] -a オプションのデフォルトは、ディスクイメージの形式を自動検出することです。これを使用すると、コマンドラインに続く -a オプションのディスク形式が強制されます。--format auto を使用すると、後続の -a オプションの自動検出に戻ります (上述の -a コマンドを参照)。 $ virt-sysprep --format raw -a disk.img は、disk.img に対して raw 形式 (自動検出なし) を強制しますが、virt-sysprep --format raw -a disk.img --format auto -a another.img は、disk.img に対して raw 形式 (自動検出なし) を強制し、another.img では自動検出に戻ります。信頼できない raw 形式のゲストディスクイメージがある場合は、このオプションを使用してディスク形式を指定する必要があります。これにより、悪意のあるゲストで発生する可能性のあるセキュリティーの問題を回避できます。
--list-operations virt-sysprep プログラムでサポートされている操作を一覧表示します。これらは、1 行に 1 つずつ表示され、1 つ以上の空白で区切られたフィールドがあります。出力の最初のフィールドは操作名であり、--enable フラグに指定できます。2 番目のフィールドは、操作がデフォルトで有効になっている場合は * 文字で、そうでない場合は空白になります。同じ行のその他のフィールドには、操作の説明が記載されています。 $ virt-sysprep --list-operations
--mount-options ゲスト仮想マシンの各マウントポイントにマウントオプションを設定します。mountpoint:options のペアのセミコロンで区切られたリストを使用します。この一覧をシェルから保護するために、この一覧の周囲に引用符を付ける必要がある場合があります。 $ virt-sysprep --mount-options "/:notime" は、notime 操作で root ディレクトリーをマウントします。
--selinux-relabel および --no-selinux-relabel virt-sysprep は、ゲストの最初の起動時に SELinux の再ラベル付けを常にスケジュールするわけではありません。場合によっては、再ラベル付けが実行されます (たとえば、virt-sysprep がファイルを変更した場合)。ただし、すべての操作でファイルのみを削除する場合 (たとえば、--enable delete --delete /some/file を使用する場合)、再ラベル付けはスケジュールされません。--selinux-relabel オプションを使用すると、常に SELinux の再ラベル付けが強制されますが、--no-selinux-relabel が設定されている場合、再ラベル付けはスケジュールされません。--selinux-relabel を使用して、ファイルに正しい SELinux ラベルが付いていることを確認することをお勧めします。 $ virt-sysprep --selinux-relabel
-q or --quiet ログメッセージを出力しないようにします。 $ virt-sysprep -q
-v or --verbose デバッグ目的で詳細なメッセージを有効にします。 $ virt-sysprep -v
-V または --version virt-sysprep のバージョン番号を表示し、終了します。 $ virt-sysprep -V
--root-password root パスワードを設定します。新しいパスワードを明示的に指定する場合や、選択したファイルの最初の行の文字列を使用する場合に使用できます。これにより、安全性が高まります。
$ virt-sysprep --root-password password:123456 -a guest.img
または
$ virt-sysprep --root-password file:SOURCE_FILE_PATH -a guest.img
詳細については、libguestfs のドキュメント を参照してください。