名 前
guestfs-testing - libguestfs の 手 動 テ ス ト 、 手 助 け に な り ま す !
説 明
This page has manual tests you can try on libguestfs. Everyone has a slightly different combination of platform, hardware and guests, so this testing is very valuable. Thanks for helping out!
Tests marked with a * (asterisk) can destroy data if you’re not careful. The others are safe and won’t modify anything.
These tests require libguestfs ≥ 1.22. こ の リ ン ク を 使 用 し て 見 つ け た バ グ を 報 告 で き ま す :
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
or post on the mailing list (registration is not required, but if you’re not registered then you’ll have to wait for a moderator to manually approve your message):
テ ス ト
libguestfs-test-tool の 実 行 次 を 実 行 し ま す :
libguestfs-test-tool こ の コ マ ン ド は 、 基 本 的 な libguestfs が 機 能 し て い る か 、 非 常 に 簡 単 か つ 非 破 壊 的 な テ ス ト を 実 行 し ま す 。 root と し て 実 行 す る 必 要 が あ り ま せ ん 。
If it doesn’t print "===== TEST FINISHED OK =====", report it as a bug. It is very important that you include the complete, unedited output of "libguestfs-test-tool" in your bug report. See the "BUGS" section at the end of this page.
KVM ア
ク セ ラ レ ー シ
ョ ン が 使 用 さ
れ て い る こ と
を 確 認 し ま す
。
If your host has hardware virt acceleration, then with a hot
cache libguestfs should be able to start up in a few
seconds. Run the following command a few times:
time guestfish -a /dev/null run
After a few runs, the time should settle down to a few seconds (under 3 seconds on fast 64 bit hardware). 上 の コ マ ン ド が ま っ た く 機 能 し な け れ ば 、 libguestfs-test-tool(1) を 使 用 し ま す 。
Check which
version of libguestfs, qemu, libvirt, etc is being used.
Look at the output of "libguestfs-test-tool" and
check:
• |
Which version of libguestfs is being used? Near the beginning of the output you’ll see a line like: |
library version: 1.22.0fedora=19,release=1.fc19,libvirt
• |
Is libvirt being used? You can tell the difference by looking for the backend: |
guestfs_get_backend: direct ま た は :
guestfs_get_backend: libvirt
• |
Which version of qemu is being used? It may be printed out: |
libguestfs: qemu version 1.5
• |
Which kernel is being used? supermin(1) will try to pick the latest kernel installed on your machine. You can see the version in the appliance output, eg: |
[ 0.000000] Linux version 3.9.2-200.fc18.x86_64 [...]
Try to open
a local guest image with guestfish.
You can use any guest disk image for this test. Make sure
you use the "--ro" flag so that
guestfish(1) will open the disk image read-only.
guestfish --ro -a /path/to/disk.img -i
If the command is successful, it should print out the guest operating system name and put you at the guestfish "><fs>" prompt. You can use guestfish commands like "ll /" to look inside the disk image. To exit, type "exit".
If you get an error, try enabling debugging (add "-v" to the command line). Also make sure that libguestfs-test-tool(1) succeeds.
Try to open
a remote guest image with guestfish.
You may also have to disable libvirt by setting this:
export LIBGUESTFS_BACKEND=direct
If you have a disk image available over HTTP/FTP, try to open it.
guestfish --ro -i --format=raw -a http://www.example.com/disk.img
For SSH you will need to make sure that ssh-agent is set up so you don’t need a password to log in to the remote machine. Then a command similar to this should work:
guestfish --ro
-i --format=raw \
-a ssh://remote.example.com/path/to/disk.img
If you get an error, try enabling debugging (add "-v" to the command line). Also make sure that libguestfs-test-tool(1) succeeds. す べ て の 仮 想 マ シ ン に お い て virt-alignment-scan を 実 行 し ま す 。 仮 想 マ シ ン ま た は デ ィ ス ク イ メ ー ジ に お い て virt-alignment-scan(1) を 実 行 し ま す :
virt-alignment-scan -a /path/to/disk.img ま た は :
virt-alignment-scan -d Guest
Does the
alignment report match how the guest partitions are aligned?
仮 想 マ シ ン に
あ る い く つ か
の フ ァ イ ル に
お い て virt-cat を 実
行 し ま す 。
virt-cat(1) は 仮 想 マ シ
ン か ら フ ァ イ
ル を 表 示 で き
ま す 。 Linux 仮 想 マ
シ ン に 対 し て
は 、 次 を 試 し
ま す :
virt-cat LinuxGuest /etc/passwd 最 近 の 機 能 は Windows の パ ス を サ ポ ー ト し ま す 、 た と え ば :
virt-cat WindowsGuest 'c:\windows\win.ini'
An even better test is if you have a Windows guest with multiple drives. Do "D:", "E:" etc paths work correctly?
* Copy some
files into a shut off guest.
virt-copy-in(1) は 仮 想 マ
シ ン ま た は デ
ィ ス ク イ メ ー
ジ の 中 に あ る
フ ァ イ ル お よ
び デ ィ レ ク ト
リ ー を 再 帰 的
に コ ピ ー で き
ま す 。
virt-copy-in -d Guest /etc /tmp
This should copy local directory /etc to /tmp/etc in the guest (recursively). If you boot the guest, can you see all of the copied files and directories?
Shut the guest down and try copying multiple files and directories:
virt-copy-in -d
Guest /home /etc/issue /tmp 仮 想 マ
シ ン か ら い く
つ か の フ ァ イ
ル を コ ピ ー し
ま す
virt-copy-out(1) can recursively copy files and
directories out of a guest or disk image.
virt-copy-out -d Guest /home .
Note the final space and period in the command is not a typo.
This should copy /home from the guest into the current directory.
virt-df
を 実 行 し ま す
。
virt-df(1) は デ ィ ス ク
領 域 を 一 覧 表
示 し ま す 。 次
を 実 行 し ま す :
virt-df
You can try comparing this to the results from df(1) inside the guest, but there are some provisos:
• 仮 想 マ シ ン は ア イ ド ル 状 態 に あ る 必 要 が あ り ま す 。 |
||
• 仮 想 マ シ ン の デ ィ ス ク は |
sync(1) を 使 用 し て 同 期 す る 必 要 が あ り ま す 。
• |
Any action such as booting the guest will write log files causing the numbers to change. |
We don’t guarantee that the numbers will be identical even under these circumstances. They should be similar. It would indicate a bug if you saw greatly differing numbers.
Try importing virt-df CSV output into a spreadsheet or database. 次 を 実 行 し ま す :
virt-df --csv > /tmp/report.csv
Now try to load this into your favorite spreadsheet or database. Are the results reproduced faithfully in the spreadsheet/database?
http://www.postgresql.org/docs/8.1/static/sql-copy.html http://dev.mysql.com/doc/refman/5.1/en/load-data.html
* シ
ャ ッ ト オ フ し
て い る 仮 想 マ
シ ン に あ る フ
ァ イ ル を 編 集
し ま す 。
virt-edit(1) は 仮 想 マ
シ ン に あ る フ
ァ イ ル を 編 集
で き ま す 。 RHEL ま
た は Fedora 仮 想 マ シ
ン に お い て こ
の コ マ ン ド を
試 し ま す :
virt-edit LinuxGuest /etc/sysconfig/network 他 の Linux 仮 想 マ シ ン に お い て 、 次 の よ う に 他 の フ ァ イ ル の 編 集 を 試 し ま す :
virt-edit LinuxGuest /etc/motd
Are the changes
seen inside the guest when it is booted? 仮
想 マ シ ン に あ
る フ ァ イ ル シ
ス テ ム / パ ー テ
ィ シ ョ ン / 論 理
ボ リ ュ ー ム を
表 示 し ま す 。
virt-filesystems(1) can be used to display filesystems
in a guest. Try this command on any disk image or guest:
virt-filesystems -a /path/to/disk.img --all --long -h ま た は :
virt-filesystems -d Guest --all --long -h
Do the results
match what is seen in the guest? す べ
て の 仮 想 マ シ
ン に お い て virt-inspector
を 実 行 し ま す
。
Use virt-inspector(1) to get a report on all of your
guests or disk images:
virt-inspector -a /path/to/disk.img | less ま た は :
virt-inspector -d Guest | less
Do the results match what is actually in the guest?
If you have an
unusual guest (a rare Linux distro, a very new version of
Windows), does virt-inspector recognize it? If not, then
it’s probably a bug. す べ て
の 仮 想 マ シ ン
に お い て virt-ls の
監 査 機 能 を 試
し ま す 。
Linux 仮 想 マ シ ン に
あ る setuid ま た は setgid
プ ロ グ ラ ム を
一 覧 表 示 し ま
す :
virt-ls -lR -d Guest / | grep '^- [42]'
Linux 仮 想 マ シ ン に あ る す べ て の 全 体 書 き 込 み 可 能 な デ ィ レ ク ト リ ー を 一 覧 表 示 し ま す :
virt-ls -lR -d Guest / | grep '^d ...7'
Linux 仮 想 マ シ ン に あ る す べ て の Unix ド メ イ ン ソ ケ ッ ト を 一 覧 表 示 し ま す :
virt-ls -lR -d Guest / | grep '^s'
List all regular files with filenames ending in ’.png’:
virt-ls -lR -d Guest / | grep -i '^-.*\.png$' ホ ー ム デ ィ レ ク ト リ ー に あ る 10MB よ り 大 き な フ ァ イ ル を 表 示 し ま す :
virt-ls -lR -d Guest /home | awk '$3 > 10*1024*1024'
7日 以 内 に 変 更 さ れ た も の を す べ て 検 索 し ま す :
virt-ls -lR -d Guest --time-days / | awk '$6 <= 7'
24時 間 以 内 に 変 更 さ れ た 通 常 の フ ァ イ ル を 検 索 し ま す :
virt-ls -lR -d Guest --time-days / | grep '^-' | awk '$6 < 1'
Do the results match what is in the guest?
tar フ
ァ イ ル か ら デ
ィ ス ク イ メ ー
ジ を 作 成 し ま
す 。
Use virt-make-fs(1) to create a disk image from any
tarball that you happen to have:
virt-make-fs --partition=mbr --type=vfat /any/tarball.tar.gz output.img
Add ’output.img’ as a raw disk to an existing guest. Check the guest can see the files. This test is particularly useful if you try it with a Windows guest. 他 の パ ー テ ィ シ ョ ン ス キ ー マ を 試 し て く だ さ い 。 例 : --partition=gpt 他 の フ ァ イ ル シ ス テ ム 形 式 を 試 し て く だ さ い 。 例 : --type=ntfs, --type=ext2
* 停 止 状 態 の デ ィ ス ク イ メ ー ジ ま た は 仮 想 マ シ ン に お い て virt-rescue を 実 行 し ま す 。 停 止 状 態 の 仮 想 マ シ ン ま た は デ ィ ス ク イ メ ー ジ を 検 査 、 復 旧 、 ま た は 修 復 す る に は virt-rescue(1) を 使 用 し ま す :
virt-rescue -a /path/to/disk.img ま た は :
virt-rescue -d Guest 仮 想 マ シ ン を 検 査 す る た め に 通 常 の シ ェ ル コ マ ン ド を 使 用 で き ま す か ?
* 仮 想 マ シ ン の 容 量 を 変 更 し ま す 。 仮 想 マ シ ン の デ ィ ス ク 容 量 を 大 き く す る た め に virt-resize(1) を 使 用 し ま す 。 た と え ば 、 デ ィ ス ク イ メ ー ジ が 30G よ り 小 さ け れ ば 、 次 を 実 行 し て 30G に 増 や し ま す :
truncate -s 30G
newdisk.img
virt-filesystems -a /path/to/olddisk.img --all --long -h
virt-resize /path/to/olddisk.img newdisk.img --expand
/dev/sda1
qemu-kvm -m 1024 -hda newdisk.img 仮 想 マ
シ ン が ま だ 起
動 し ま す か ?
他 の パ ー テ ィ
シ ョ ン の 拡 張
を 試 し ま す 。
* 仮
想 マ シ ン の デ
ィ ス ク を ス パ
ー ス に し ま す
。
virt-sparsify(1) を 使 用 し
て 、 デ ィ ス ク
イ メ ー ジ を よ
り ス パ ー ス に
し ま す :
virt-sparsify /path/to/olddisk.img newdisk.img
Is newdisk.img still bootable after sparsifying? Is the resulting disk image smaller (use "du" to check)?
Build and
boot a guest
Using virt-builder(1), choose a guest from the
list:
virt-builder -l
build it:
virt-builder -o disk.img [os-version from list above]
and boot it:
qemu-kvm -cpu host -m 2048 -drive file=disk.img,format=raw
Does it boot?
*
"Sysprep" a shut off Linux guest.
Note that this really will mess up an existing guest, so
it’s better to clone the guest before trying this.
virt-sysprep --hostname newhost.example.com -a /path/to/disk.img
sysprep が 成 功 し ま し た か ? 起 動 後 、 何 を 変 更 し ま し た か 、 そ の 変 更 は 成 功 し ま し た か ?
Windows
ゲ ス ト か ら Windows
レ ジ ス ト リ を
ダ ン プ し ま す
。
Windows 仮 想 マ シ ン
か ら Windows レ ジ ス
ト リ を ダ ン プ
出 力 す る に は
virt-win-reg(1) を 使 用 し
ま す 。
virt-win-reg
--unsafe-printable-strings WindowsGuest 'HKLM\Software' |
less
virt-win-reg --unsafe-printable-strings WindowsGuest
'HKLM\System' |
less
Does the output match running "regedit" inside the guest?
A recent feature is the ability to dump user registries, so try this, replacing username with the name of a local user in the guest:
virt-win-reg
--unsafe-printable-strings WindowsGuest
'HKEY_USERS\username' |
less
関 連 項 目
guestfs(3), guestfish(1), guestfs-examples(3), http://libguestfs.org/.
著 者
Richard W.M. Jones ("rjones at redhat dot com")
COPYRIGHT
Copyright (C) 2011-2023 Red Hat Inc.
LICENSE
BUGS
To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
When reporting a bug, please supply:
• |
The version of libguestfs. | ||
• |
Where you got libguestfs (eg. which Linux distro, compiled from source, etc) | ||
• |
Describe the bug accurately and give a way to reproduce it. | ||
• |
Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report. |