X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2Fguestfish.pod;h=c92953b6bbc626ec5327231b1af42d4ca4023dd9;hp=285d901b18f24bba8c7dd9c0bf7ec94d9304e6eb;hb=14490c3e1aac61c6ac90f28828896683f64f0dc9;hpb=d72a617a262e000ce7bc97838ad1f0d640dc66ec diff --git a/fish/guestfish.pod b/fish/guestfish.pod index 285d901..c92953b 100644 --- a/fish/guestfish.pod +++ b/fish/guestfish.pod @@ -27,6 +27,17 @@ dangerous, potentially causing disk corruption. Use the I<--ro> (read-only) option to use guestfish safely if the disk image or virtual machine might be live. +=head1 DESCRIPTION + +Guestfish is a shell and command-line tool for examining and modifying +virtual machine filesystems. It uses libguestfs and exposes all of +the functionality of the guestfs API, see L. + +Guestfish gives you structured access to the libguestfs API, from +shell scripts or the command line or interactively. If you want to +rescue a broken virtual machine image, you should look at the +L command. + =head1 EXAMPLES =head2 As an interactive shell @@ -40,11 +51,22 @@ virtual machine might be live. 'man' to read the manual 'quit' to quit the shell - > man + > add-ro disk.img + > run + > list-filesystems + /dev/sda1: ext4 + /dev/vg_guest/lv_root: ext4 + /dev/vg_guest/lv_swap: swap + > mount /dev/vg_guest/lv_root / + > cat /etc/fstab + # /etc/fstab + # Created by anaconda + [...] + > exit =head2 From shell scripts -Create a new C file in a guest: +Create a new C file in a guest or disk image: guestfish <<_EOF_ add disk.img @@ -53,13 +75,20 @@ Create a new C file in a guest: write /etc/motd "Welcome, new users" _EOF_ -List the LVM logical volumes in a guest: +List the LVM logical volumes in a disk image: guestfish -a disk.img --ro <<_EOF_ run lvs _EOF_ +List all the filesystems in a disk image: + + guestfish -a disk.img --ro <<_EOF_ + run + list-filesystems + _EOF_ + =head2 On one command line Update C in a guest: @@ -84,6 +113,10 @@ disks from a virtual machine: guestfish --ro -d libvirt-domain -i cat /etc/group +Another way to edit C interactively is: + + guestfish -a disk.img -i edit /boot/grub/grub.conf + =head2 As a script interpreter Create a 100MB disk containing an ext2-formatted partition: @@ -107,22 +140,11 @@ To list what is available do: =head2 Remote control - eval `guestfish --listen --ro` - guestfish --remote add disk.img + eval `guestfish --listen` + guestfish --remote add-ro disk.img guestfish --remote run guestfish --remote lvs -=head1 DESCRIPTION - -Guestfish is a shell and command-line tool for examining and modifying -virtual machine filesystems. It uses libguestfs and exposes all of -the functionality of the guestfs API, see L. - -Guestfish gives you structured access to the libguestfs API, from -shell scripts or the command line or interactively. If you want to -rescue a broken virtual machine image, you should look at the -L command. - =head1 OPTIONS =over 4 @@ -334,9 +356,10 @@ any other commands C is a synonym for C. You must C (or C) your guest before mounting or performing any other commands. -The only exception is that if the I<-m> or I<--mount> option was -given, the guest is automatically run for you (simply because -guestfish can't mount the disks you asked for without doing this). +The only exception is that if any of the I<-i>, I<-m>, I<--mount>, +I<-N> or I<--new> options were given then C is done +automatically, simply because guestfish can't perform the action you +asked for without doing this. =head1 QUOTING @@ -358,6 +381,21 @@ must be escaped with a backslash. command "/bin/echo 'foo bar'" command "/bin/echo \'foo\'" +=head1 OPTIONAL ARGUMENTS + +Some commands take optional arguments. These arguments appear in this +documentation as C<[argname:..]>. You can use them as in these +examples: + + add-drive-opts filename + + add-drive-opts filename readonly:true + + add-drive-opts filename format:qcow2 readonly:false + +Each optional argument can appear at most once. All optional +arguments must appear after the required ones. + =head1 NUMBERS This section applies to all commands which can take integers @@ -475,7 +513,7 @@ following will not do what you expect: rm-rf /home/* -Assuming you don't have a directory literally called C +Assuming you don't have a directory called literally C then the above command will return an error. To perform wildcard expansion, use the C command. @@ -492,7 +530,7 @@ the command many times), equivalent to: C only works on simple guest paths and not on device names. If you have several parameters, each containing a wildcard, then glob -will perform a cartesian product. +will perform a Cartesian product. =head1 COMMENTS @@ -584,8 +622,8 @@ device-mapper device called C. Finally you have to tell LVM to scan for volume groups on the newly created mapper device: - > vgscan - > vg-activate-all true + vgscan + vg-activate-all true The logical volume(s) can now be mounted in the usual way. @@ -593,8 +631,8 @@ Before closing a LUKS device you must unmount any logical volumes on it and deactivate the volume groups by calling C on each one. Then you can close the mapper device: - > vg-activate false /dev/VG - > luks-close /dev/mapper/luksdev + vg-activate false /dev/VG + luks-close /dev/mapper/luksdev =head1 WINDOWS PATHS