From: "Ludovic Courtès" <ludo@gnu.org>
To: Mathieu Othacehe <m.othacehe@gmail.com>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Use genimage for disk-image creation.
Date: Thu, 26 Mar 2020 15:19:04 +0100 [thread overview]
Message-ID: <874kub9p2f.fsf@gnu.org> (raw)
In-Reply-To: <87eetgo9o6.fsf@gmail.com> (Mathieu Othacehe's message of "Wed, 25 Mar 2020 14:18:01 +0100")
Hi Mathieu!
Mathieu Othacehe <m.othacehe@gmail.com> skribis:
> Let say I want to create a disk-image with one ext4 partition starting
> at offset 10M. I can write the following genimage config file:
>
> image system {
> hdimage {}
>
> partition rootfs {
> partition-type = 0x83
> image = "rootfs.ext4"
> size = 8G
> offset = 10M
> }
> }
>
> image rootfs.ext4 {
> name = "rootfs"
> ext4 {
> label = "rootfs"
> use-mke2fs = true
> }
> size = 8G
> mountpoint = "/"
> }
>
>
> and run the command:
>
> fakeroot genimage --config ~/tmp/genimage.cfg --rootpath=/home/mathieu/image-root/
>
> where image-root is a directory containing the result of a `guix system
> init`. The directory size is about 6GiB.
>
> It takes 8 minutes to generate this disk-image, versus 2h30 using `guix
> system disk-image`.
>
> I'm aware that this might not be a fair comparison but, I think its
> already significant.
>
> Danny, Ludo, WDYT? Could we modify "system-disk-image" to use genimage
> as a backend instead of spawning a VM?
I’m completely sold to the idea. :-)
Apparently ‘genimage’ supports many file systems, including ext[234] and
ISO9660, which are the two formats we support via ‘--file-system-type’.
It does not support Btrfs, but ‘guix system disk-image’ doesn’t support
it either so far.
Looking at ‘image-ext2.c’ reveals that genimage actually just shells out
to mke2fs. Indeed, I discovered that ‘mke2fs -d /my/root’ copies
/my/root as the image’s root directory. Likewise, for ISO, it just
shells out to ‘genisoimage’.
So I think that we could avoid ‘genimage’ altogether and implement
similar functionality for ext4/ISO in (gnu build disk-image).
WDYT?
Thanks,
Ludo’.
next prev parent reply other threads:[~2020-03-26 14:19 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-25 13:18 Use genimage for disk-image creation Mathieu Othacehe
2020-03-26 9:55 ` Vincent Legoll
2020-03-26 10:18 ` Efraim Flashner
2020-03-28 20:47 ` Mathieu Othacehe
2020-03-28 21:25 ` Vincent Legoll
2020-03-26 14:19 ` Ludovic Courtès [this message]
2020-03-26 15:01 ` Vincent Legoll
2020-03-29 18:13 ` Mathieu Othacehe
2020-03-26 23:24 ` Danny Milosavljevic
2020-03-29 14:44 ` Ludovic Courtès
2020-03-29 15:07 ` Danny Milosavljevic
2020-03-29 19:06 ` Vagrant Cascadian
2020-03-31 15:24 ` Ludovic Courtès
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874kub9p2f.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=guix-devel@gnu.org \
--cc=m.othacehe@gmail.com \
/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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).