From 3771f0723ad6cfc52d370b8e71d7c6995a645f4e Mon Sep 17 00:00:00 2001 From: Christopher Spinrath Date: Wed, 9 Mar 2016 23:09:46 +0100 Subject: [PATCH 1/4] README: rework current content --- README | 68 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 15 deletions(-) diff --git a/README b/README index 685eff8..c872ad3 100644 --- a/README +++ b/README @@ -1,15 +1,53 @@ -This is lipck - the "linux install party customization kit". - -This package of scripts is intended for remastering Ubuntu based -distributions. -This collection of scripts was created by members of the -Open-Source working group of the Fachschaft 1/1 Mathematik, Physik, -Informatik of the RWTH Aachen University for remastering images for their -Linux Install Parties. -Existing solutions such as UCK could not do some things we wanted to do like -updating the initramfs kernel, saving space by deduplicating files between -multiple architectures (e.g. x86,x64). We release this collection of scripts -in hope that they will be useful for someone else as well. - -This project is licensed under the terms of the GPLv3 license which you can -find in the COPYING file. +Linux Install Party Customization Kit (lipck) +============================================= + +Content +------- + +0. License +1. About +2. Requirements +3. HowTo + +License +------- + +lipck is licensed under the GPLv3. See the COPYING file for further +details. + + +About +----- + +lipck is an helper tool for remastering Ubuntu based distributions. Amongst +others it can +- apply patches to rootfs/isofs/initramfs, +- update the initramfs kernel, +- preinstall packages into the rootfs, +- provide a custom package archive on the install media; this allows a user + to install extra packages without internet access, +- merge i386 and amd64 install media (including file deduplication and + automated architecture recognition in grub), +- autogenerate grub configuration from templates. + +In difference to other tools, like UCK, the host system is independent of the +system remastered. Furthermore, the host is kept clean w.r.t. resources (like +mount points). This is achieved by using linux namespaces/lxc. + +However, in its current state each version (git tag/commit) is designed for +a single Ubuntu version. While the version/source image can be configured +freely, patches and static files (i.e. those in the contrib directory) are +not versionized and do only apply to a single Ubuntu image. + +Originally, lipck was (or still is) created to remaster install images for +linux install fests organized by members of the Open-Source working group of +the Fachschaft 1/1 Mathematik, Physik, Informatik of the RWTH Aachen University. +It is published in hope that it will be useful for someone else as well. + + +Requirements +------------ + + +HowTo +----- -- GitLab From 6267b88af5cd3de343b92562cbfb7e1a05e0428c Mon Sep 17 00:00:00 2001 From: Christopher Spinrath Date: Wed, 9 Mar 2016 23:26:34 +0100 Subject: [PATCH 2/4] README: some improvements --- README | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README b/README index c872ad3..a808110 100644 --- a/README +++ b/README @@ -19,7 +19,7 @@ details. About ----- -lipck is an helper tool for remastering Ubuntu based distributions. Amongst +lipck is a helper tool for remastering Ubuntu based distributions. Amongst others it can - apply patches to rootfs/isofs/initramfs, - update the initramfs kernel, @@ -30,17 +30,17 @@ others it can automated architecture recognition in grub), - autogenerate grub configuration from templates. -In difference to other tools, like UCK, the host system is independent of the -system remastered. Furthermore, the host is kept clean w.r.t. resources (like -mount points). This is achieved by using linux namespaces/lxc. +In comparison to other tools, like UCK, the host system is independent of the +system remastered. Furthermore, the host is kept clean with respect to resources +(like mount points). This is achieved by using linux namespaces/lxc. -However, in its current state each version (git tag/commit) is designed for -a single Ubuntu version. While the version/source image can be configured +However, in its current state each version of lipck (git tag/commit) is designed +for a specific Ubuntu version. While the version/source image can be configured freely, patches and static files (i.e. those in the contrib directory) are not versionized and do only apply to a single Ubuntu image. Originally, lipck was (or still is) created to remaster install images for -linux install fests organized by members of the Open-Source working group of +linux install fests organized by members of the Open Source Arbeitskreis of the Fachschaft 1/1 Mathematik, Physik, Informatik of the RWTH Aachen University. It is published in hope that it will be useful for someone else as well. -- GitLab From ea65e1d07a28ab68746617f3437d50da8feffbc4 Mon Sep 17 00:00:00 2001 From: Christopher Spinrath Date: Wed, 11 May 2016 21:35:22 +0200 Subject: [PATCH 3/4] README: add requirments/tools --- README | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README b/README index a808110..f845920 100644 --- a/README +++ b/README @@ -48,6 +48,28 @@ It is published in hope that it will be useful for someone else as well. Requirements ------------ +lipck makes use of the following tools (make sure they are installed): + +- 7z +- bzip2 +- cpio +- diff +- git +- (GNU) ddrescue +- (GNU) make +- grub (i386-pc, i386-efi, x86_64-efi) +- lxc +- patch +- rsync +- squashfs-tools (mksquashfs, unsquashfs) +- tar +- util-linux +- wget +- xz/lzma + +And, optionally, + +- VirtualBox tools (vboxmanage) to create a vmdk image. HowTo ----- -- GitLab From eef7c3f3e26b7b889972e287068c80d302bb4c97 Mon Sep 17 00:00:00 2001 From: Christopher Spinrath Date: Wed, 11 May 2016 22:31:16 +0200 Subject: [PATCH 4/4] README: HowTo & Tips --- README | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/README b/README index f845920..f354619 100644 --- a/README +++ b/README @@ -8,6 +8,7 @@ Content 1. About 2. Requirements 3. HowTo +4. Tips License ------- @@ -73,3 +74,60 @@ And, optionally, HowTo ----- + +In short: run + $ make WORKSPACE=/media/drivewithspace config + # make image + # make repo #build offline repository (optionally) + # make IMAGE_FILE=/somewhere/myfinalimage.img image_deploy + # make IMAGE_FILE=/somewhere/myfinalimage.img image_deploy_vmdk + +where the first command should be executed as user (the owner of the lipck git) +and all others as root. /media/drivewhitspace should provide enough disk space +to store the basic isos, the extracted rootfs/initramfs, etc. (~40G should +suffice). image_deploy will assemble the final (raw) image. The last command +is optional again (note that IMAGE_FILE should have the same value as in the +previous line). + +In practise, you may want to edit some configuration files/patches prior to +invoking make as described above: + +- the most important config file is config/Makefile.conf where, among others, + the base iso can be configured. See config/examples for more details. + +- contrib/rootfs/{hold_packages,pre_installed_packages*} lets you control the + packages that will be installed preinstalled in the rootfs. + +- contrib/rootfs/offline_repo.json defines all packages available in the + offline repository. + +- Files in contrib/rootfs/{modprobe.d,skel,sysctl.d} will be copied as is + to the corresponding folders in the rootfs. + +- patches/{initrd,iso,rootfs} contains patches for the initramfs, + iso/images root, and the rootfs. Probably they have to be adapted for + new iso base images. Unfortunaly, version/iso specific patches are not + supported yet. + +Lastly, you may want to spawn a shell in the rootfs being remastered with + + # make rootfs_console + +to debug stuff. + + +Tips +----- + +- If the rootfs_remaster target failed, it may the neccessary to execute the + next make command two times (the first time a dirty state will be discovered + and fixed). + +- code executed in the rootfs is located in scripts/, you may need to execute + + # make rootfs_finalize + + to trigger a reload of this code. + + +Happy hacking! -- GitLab