|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] pygrub patch to allow explicit offset to fs
On Wed, 2013-06-19 at 01:40 +0200, Kjetil Torgrim Homme wrote:
> I recently needed an old VM to work even though it was created on a SAN
> LUN with no partition table, just LVM straight onto the raw device.
>
> pygrub didn't like this, so I added a simple hack to allow the user to
> override pygrub's probing when necessary. please consider applying this
> patch. btw, I think most LVM will have first filesystem at offset 196608.
>
>
> commit 80a3f7b48da235695f8560deb41c19b23e7799e3
> Author: Kjetil Torgrim Homme <kjetil.homme@xxxxxxxxxxxxxxxxxx>
> Date: Wed Jun 19 00:54:43 2013 +0200
>
> allow user to specify offset parameter which overrides partition
> table parsing
>
> Signed-off-by: Kjetil Torgrim Homme <kjetil.homme@xxxxxxxxxxxxxxxxxx>
Looks good to me, thanks.
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
although I've suggested a possible simplification below.
I think with the freeze being in force this, as a new feature, will have
to wait for the 4.4 dev cycle to be applied, although I will defer to
George's judgement.
> diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub
> index eedfdb2..d46ee8c 100644
> --- a/tools/pygrub/src/pygrub
> +++ b/tools/pygrub/src/pygrub
> [...]
> @@ -765,6 +765,7 @@ if __name__ == "__main__":
> interactive = True
> list_entries = False
> isconfig = False
> + user_provided_offset = None
If you make this "part_offs = None"...
> debug = False
> not_really = False
> output_format = "sxp"
> @@ -797,6 +798,8 @@ if __name__ == "__main__":
> incfg["ramdisk"] = a
> elif o in ("--args",):
> incfg["args"] = a
> + elif o in ("--offset",):
> + user_provided_offset = a
... and this "part_offs = int(a)" ... (or [int(a)] if that's correct)
> elif o in ("--entry",):
> entry = a
> # specifying the entry to boot implies non-interactive
> @@ -840,7 +843,10 @@ if __name__ == "__main__":
> bootfsoptions = ""
>
> # get list of offsets into file which start partitions
> - part_offs = get_partition_offsets(file)
> + if user_provided_offset is None:
> + part_offs = get_partition_offsets(file)
> + else:
> + part_offs = [ int(user_provided_offset) ]
Then this can become just:
if part_offs = None:
part_offs = get_partition_offsets(file)
>
> Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |