summaryrefslogtreecommitdiffstats
path: root/lib/MGA/DrakISO/Mounts.pm
diff options
context:
space:
mode:
authorMartin Whitaker <mageia@martin-whitaker.me.uk>2017-12-18 10:54:01 +0000
committerMartin Whitaker <mageia@martin-whitaker.me.uk>2017-12-18 10:54:01 +0000
commit296dc5bb53c430c8842ab7327d8a76b5750c64b4 (patch)
tree5670e983d5d459466dac2b7a49b7ce14827c7e9d /lib/MGA/DrakISO/Mounts.pm
parent7e53518a7d8709998482eef1e9da21ee1a1886a9 (diff)
downloaddrakiso-296dc5bb53c430c8842ab7327d8a76b5750c64b4.tar
drakiso-296dc5bb53c430c8842ab7327d8a76b5750c64b4.tar.gz
drakiso-296dc5bb53c430c8842ab7327d8a76b5750c64b4.tar.bz2
drakiso-296dc5bb53c430c8842ab7327d8a76b5750c64b4.tar.xz
drakiso-296dc5bb53c430c8842ab7327d8a76b5750c64b4.zip
Start creating a new set of tools for generating Mageia ISO images.
The aim is to share as much code as possible between the tool used to generate the Live ISOs and the tool used to generate the classic installer ISOs. This is derived from the user/martinw/use-grub2 branch of draklive.
Diffstat (limited to 'lib/MGA/DrakISO/Mounts.pm')
-rw-r--r--lib/MGA/DrakISO/Mounts.pm93
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/MGA/DrakISO/Mounts.pm b/lib/MGA/DrakISO/Mounts.pm
new file mode 100644
index 0000000..07cd5b6
--- /dev/null
+++ b/lib/MGA/DrakISO/Mounts.pm
@@ -0,0 +1,93 @@
+package MGA::DrakISO::Mounts;
+
+use MDK::Common;
+
+my $dir_distrib_sqfs = {
+ mountpoint => '/distrib',
+ type => 'squashfs',
+ path => '/distrib',
+ # perl -MMDK::Common -e 'print map_index { (32767 - $::i) . " $_" } grep { !m,^/(?:dev|proc|sys|live/distrib), } uniq(<>)' < bootlog.list > config/distrib.sort
+ sort => "config/distrib.sort",
+ build_from => '/',
+};
+my $dir_memory = {
+ mountpoint => '/memory',
+ type => 'tmpfs',
+ mount_opts => 'mode=755',
+};
+
+my $dir_modules = {
+ mountpoint => '/modules',
+ type => 'modules',
+ path => '/modules',
+ list => 'modules.lst',
+};
+
+#- use distro default
+our $default = {
+ dirs => [],
+};
+
+our $simple_union = {
+ root => '/union',
+ overlay => 'overlay',
+ dirs => [
+ {
+ mountpoint => '/media',
+ type => 'plain',
+ },
+ $dir_memory,
+ ],
+ };
+
+our $squash_rw_union = {
+ root => '/union',
+ overlay => 'overlay',
+ dirs => [
+ $dir_distrib_sqfs,
+ {
+ mountpoint => '/media/system',
+ type => 'plain',
+ },
+ ],
+ };
+
+sub volatile_squash_union {
+ my ($o_modules) = @_;
+ {
+ root => '/union',
+ overlay => 'overlay',
+ dirs => [
+ $dir_distrib_sqfs,
+ if_($o_modules, $dir_modules),
+ $dir_memory,
+ ],
+ };
+}
+
+sub squash_union {
+ my ($default_size, $o_min_size, $o_modules) = @_;
+ {
+ root => '/union',
+ overlay => 'overlay',
+ dirs => [
+ $dir_distrib_sqfs,
+ if_($o_modules, $dir_modules),
+ {
+ mountpoint => '/system',
+ type => 'loopfs',
+ pre_allocate => $default_size,
+ if_(defined $o_min_size, min_size => $o_min_size),
+ fs => 'ext2',
+ path => '/system'
+ },
+ {
+ mountpoint => '/system',
+ type => 'tmpfs',
+ fallback => 1,
+ },
+ ],
+ };
+}
+
+1;