summaryrefslogtreecommitdiff
path: root/morphlib/exts/initramfs.write.help
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2014-06-02 10:53:29 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2014-06-02 12:10:18 +0000
commit23e08ef984ba784d9d74332ffe2d70125ce756e0 (patch)
treecbbc1bfa940e7e1569585ddf34ab5ecd72157ad6 /morphlib/exts/initramfs.write.help
parent64263de0123f9e513a300fd179e5b84384fa5343 (diff)
downloadmorph-23e08ef984ba784d9d74332ffe2d70125ce756e0.tar.gz
Add initramfs write extension
This creates a gzipped cpio archive that may be used as an initramfs. It is hard-coded to use gzip to compress the initramfs, since it's the most common way to do it. This is unfortunate, since the busybox gzip utility only allows maximum compression, which is rather slow and doesn't give progress reporting, so you can easily think it's gotten stuck. It's possible to use other compression formats, but they need the kernel to be built with them supported, and in the case of lz4, unusual userland tools to create it, since the version of lz4 supported in the kernel is not what the standard lz4 tools produce.
Diffstat (limited to 'morphlib/exts/initramfs.write.help')
-rw-r--r--morphlib/exts/initramfs.write.help35
1 files changed, 35 insertions, 0 deletions
diff --git a/morphlib/exts/initramfs.write.help b/morphlib/exts/initramfs.write.help
new file mode 100644
index 00000000..29a9d266
--- /dev/null
+++ b/morphlib/exts/initramfs.write.help
@@ -0,0 +1,35 @@
+help: |
+ Create an initramfs for a system by taking an existing system and
+ converting it to the appropriate format.
+
+ The system must have a `/init` executable as the userland entry-point.
+ This can have a different path, if `rdinit=$path` is added to
+ the kernel command line. This can be added to the `rawdisk`,
+ `virtualbox-ssh` and `kvm` write extensions with the `KERNEL_CMDLINE`
+ option.
+
+ It is possible to use a ramfs as the final rootfs without a `/init`
+ executable, by setting `root=/dev/mem`, or `rdinit=/sbin/init`,
+ but this is beyond the scope for the `initramfs.write` extension.
+
+ The intended use of initramfs.write is to be part of a nested
+ deployment, so the parent system has an initramfs stored as
+ `/boot/initramfs.gz`. See the following example:
+
+ name: initramfs-test
+ kind: cluster
+ systems:
+ - morph: minimal-system-x86_64-generic
+ deploy:
+ system:
+ type: rawdisk
+ location: initramfs-system-x86_64.img
+ DISK_SIZE: 1G
+ HOSTNAME: initramfs-system
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: initramfs-x86_64
+ deploy:
+ initramfs:
+ type: initramfs
+ location: boot/initramfs.gz