summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-05-08 19:57:52 +0100
committerRichard Jones <rjones@redhat.com>2010-05-08 19:57:52 +0100
commitf35365ecbf348f1030581e59795435987b8adf0f (patch)
treed63ce672710f434fa313d234188553b60c1b7a6d /tools
parentd0afef23e54f75a521eed8c7261a533776242cfc (diff)
downloadlibguestfs-f35365ecbf348f1030581e59795435987b8adf0f.tar.gz
libguestfs-f35365ecbf348f1030581e59795435987b8adf0f.tar.xz
libguestfs-f35365ecbf348f1030581e59795435987b8adf0f.zip
virt-rescue: Add extra options.
This commit adds the extra options '--append', '--memsize' and '--selinux'.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/virt-rescue45
1 files changed, 44 insertions, 1 deletions
diff --git a/tools/virt-rescue b/tools/virt-rescue
index dadb2a2f..1f292f60 100755
--- a/tools/virt-rescue
+++ b/tools/virt-rescue
@@ -121,6 +121,14 @@ Display version number and exit.
=cut
+my $append;
+
+=item B<--append kernelopts>
+
+Pass additional options to the rescue kernel.
+
+=cut
+
my $uri;
=item B<--connect URI> | B<-c URI>
@@ -133,6 +141,17 @@ at all.
=cut
+my $memsize;
+
+=item B<--memsize MB> | B<-m MB>
+
+Change the amount of memory allocated to the rescue system. The
+default is set by libguestfs and is small but adequate for running
+system tools. The occasional program might need more memory. The
+parameter is specified in megabytes.
+
+=cut
+
my $readonly;
=item B<--ro> | B<-r>
@@ -143,14 +162,26 @@ The option must always be used if the disk image or virtual machine
might be running, and is generally recommended in cases where you
don't need write access to the disk.
+=cut
+
+my $selinux;
+
+=item B<--selinux>
+
+Enable SELinux in the rescue appliance. You should read
+L<guestfs(3)/SELINUX> before using this option.
+
=back
=cut
GetOptions ("help|?" => \$help,
"version" => \$version,
+ "append=s" => \$append,
"connect|c=s" => \$uri,
+ "memsize|m=i" => \$memsize,
"ro|r" => \$readonly,
+ "selinux" => \$selinux,
) or pod2usage (2);
pod2usage (1) if $help;
if ($version) {
@@ -168,9 +199,21 @@ push @args, address => $uri if $uri;
push @args, rw => 1 unless $readonly;
my $g = open_guest (@args);
+# Setting "direct mode" is required for the rescue appliance.
$g->set_direct (1);
-$g->set_append ("guestfs_rescue=1");
+# Set other features.
+$g->set_selinux (1) if $selinux;
+$g->set_memsize ($memsize) if defined $memsize;
+
+# Set the kernel command line, which must include guestfs_rescue=1
+# (see appliance/init).
+my $str = "guestfs_rescue=1";
+$str .= " $append" if defined $append;
+$g->set_append ($str);
+
+# Run the appliance. This won't return until the user quite the
+# appliance.
$g->launch ();
exit 0;