All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@kernel.org>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Sasha Levin <levinsasha928@gmail.com>,
	kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com,
	gorcunov@gmail.com
Subject: Re: [PATCH v2 2/2] kvm tools: Add '--rootfs' and '--binsh'
Date: Wed, 03 Aug 2011 16:14:18 +0300	[thread overview]
Message-ID: <4E3949AA.6070602@kernel.org> (raw)
In-Reply-To: <874o1znr46.fsf@skywalker.in.ibm.com>

On 8/3/11 5:52 AM, Aneesh Kumar K.V wrote:
> On Tue,  2 Aug 2011 21:46:29 +0300, Sasha Levin<levinsasha928@gmail.com>  wrote:
>> This patch adds 2 new flags:
>>
>>   --rootfs [path] - Specifies a path to use as rootfs. The path will be mounted
>> using virtio-9p and booted from.
>> Easiest way to test it is to mount the sample image we recommend with kvm tool
>> (http://wiki.qemu.org/download/linux-0.2.img.bz2) and mounting it somewhere.
>> *PLEASE DO NOT TRY BOOTING FROM YOUR REAL ROOT AKA '/', EVEN WITH READ ONLY
>> SET* - Lets make sure the code is bulletproof before we delete your rootfs :)
>>
>>   --binsh - This flag will boot into simple /bin/sh shell instead of going
>> through /sbin/init. This is usefull for more complex distribution rootfs
>> where we have to deal with /etc/fstab and such.
>>
>> Signed-off-by: Sasha Levin<levinsasha928@gmail.com>
> Reviewed-by: Aneesh Kumar K.V<aneesh.kumar@linux.vnet.ibm.com>
>
>> ---
>>   tools/kvm/builtin-run.c |   18 +++++++++++++++++-
>>   1 files changed, 17 insertions(+), 1 deletions(-)
>>
>> diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c
>> index 2e04265..78680ec 100644
>> --- a/tools/kvm/builtin-run.c
>> +++ b/tools/kvm/builtin-run.c
>> @@ -76,11 +76,13 @@ static const char *guest_mac;
>>   static const char *host_mac;
>>   static const char *script;
>>   static const char *guest_name;
>> +static const char *rootfs;
>>   static bool single_step;
>>   static bool readonly_image[MAX_DISK_IMAGES];
>>   static bool vnc;
>>   static bool sdl;
>>   static bool balloon;
>> +static bool bin_sh;
>>   extern bool ioport_debug;
>>   extern int  active_console;
>>   extern int  debug_iodelay;
>> @@ -156,6 +158,8 @@ static const struct option options[] = {
>>   	OPT_BOOLEAN('\0', "balloon",&balloon, "Enable virtio balloon"),
>>   	OPT_BOOLEAN('\0', "vnc",&vnc, "Enable VNC framebuffer"),
>>   	OPT_BOOLEAN('\0', "sdl",&sdl, "Enable SDL framebuffer"),
>> +	OPT_STRING('\0', "rootfs",&rootfs, "path", "Use path as rootfs"),
>> +	OPT_BOOLEAN('\0', "binsh",&bin_sh, "Boot rootfs to /bin/sh instead of /sbin/init"),
>>
>>   	OPT_GROUP("Kernel options:"),
>>   	OPT_STRING('k', "kernel",&kernel_filename, "kernel",
>> @@ -615,7 +619,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix)
>>   		strlcat(real_cmdline, kernel_cmdline, sizeof(real_cmdline));
>>
>>   	hi = NULL;
>> -	if (!image_filename[0]) {
>> +	if (!rootfs&&  !image_filename[0]) {
>>   		hi = host_image(real_cmdline, sizeof(real_cmdline));
>>   		if (hi) {
>>   			image_filename[0] = hi;
>> @@ -627,6 +631,18 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix)
>>   	if (!strstr(real_cmdline, "root="))
>>   		strlcat(real_cmdline, " root=/dev/vda rw ", sizeof(real_cmdline));
>>
>> +	if (rootfs) {
>> +		char tmp[PATH_MAX];
>> +
>> +		if (realpath(rootfs, tmp) == 0 ||
>> +		    virtio_9p__init(kvm, tmp, "/dev/root")<  0)
>> +			die("Unable to initialize virtio 9p");
>> +		strcat(real_cmdline, " root=/dev/root rootflags=rw,trans=virtio,version=9p2000.u rootfstype=9p");
>> +
>> +		if (bin_sh)
>> +			strcat(real_cmdline, " init=/bin/sh");
>> +	}
>>

Why don't we use the "-d" command line option for this? We can
use fstat() and S_ISDIR to detect that the user specified a directory
as a disk image?

I'm also not completely convinced we should introduce the 'binsh'
command line option. Instead, I'd simply default to 'init=/bin/sh'
unless the user uses -p to specify init.

                         Pekka

  reply	other threads:[~2011-08-03 13:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-02 18:46 [PATCH v2 1/2] kvm tools: Add support for 9p2000.u Sasha Levin
2011-08-02 18:46 ` [PATCH v2 2/2] kvm tools: Add '--rootfs' and '--binsh' Sasha Levin
2011-08-03  2:52   ` Aneesh Kumar K.V
2011-08-03 13:14     ` Pekka Enberg [this message]
2011-08-03 16:18   ` Asias He
2011-08-03  2:51 ` [PATCH v2 1/2] kvm tools: Add support for 9p2000.u Aneesh Kumar K.V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E3949AA.6070602@kernel.org \
    --to=penberg@kernel.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=asias.hejun@gmail.com \
    --cc=gorcunov@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=levinsasha928@gmail.com \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.