1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
This ReadMe explains the additions and non-standard modifications this live-build tree has.
Author: Andreas Loibl <andreas@andreas-loibl.de>
http://kanotix.acritox.com
live-build: KANOTIX
===================
The purpose of this live-build tree is to build "KANOTIX" (http://kanotix.com) live-images.
Full Example:
lb config -a amd64 -p kanotix-master --bootloader grub2 --gfxoverlays true
lb build
isohybrid-bg2 kanotix32.iso
./mkefipart-hfsplus
./isohybrid-acritox kanotix32.iso
will create a 64bit multi-hybrid-ISO with GRUB2 and embedded gfxoverlays.
Compat
======
Compatibility functions to be able to build this tree with live-build version 2 and 3.
live-build 3 introduced various changes, e.g. some live-config parameters
have been renamed or removed, also the directory-structure of config/ has changed.
These compatibility functions allow to use the old format even if you use live-build 3.
If you do not want to use this compatibility feature just remove the following files:
auto/compat auto/functions/compat
Sorting the files on the ISO
============================
You can create a sortfile for genisoimage where you can specify the order in which
the files will be put in the ISO9660-filesystem:
config/binary_iso/isoimage.sort
See the option "-sort" in the manual of genisoimage for details on the sortfile-format.
Debpool
=======
All packages listed in
config/chroot_debpool/packages
will be downloaded and a repository will be created on the ISO:
binary/debian/
This repository will be signed using the keys defined in
config/chroot_debpool/live-media-keyring.pub
config/chroot_debpool/live-media-keyring.sec
If you did not create these key-files they will be autogenerated.
If you want to keep the autogenerated key-files just
touch /config/chroot_debpool/keep
then you will find the generated keys in
debpool/
The debpool-feature is implemented using a function-hack and a chroot-hook:
auto/functions/debpool-hook
config/chroot_local-hooks/XX_debpool
Gfxoverlays
===========
Gfxoverlays are a way to embedd binary-graphics-drivers (nvidia, fglrx) into the ISO.
It uses the Kanotix-scripts to download and build the drivers in the chroot and create
an aufs overlay of each built driver that will be put onto the ISO. The live-boot-initrd
will then load one of these overlays on top of the rootfs.
Each version of the drivers defined in config/gfxoverlays/versions will be built by
config/binary_local-hooks/gfxoverlays
using build_gfxoverlay.sh if you enable if with
lb config --gfxoverlays true
and they will be stored in
cache/gfxoverlays
Isohybrid with GRUB2 and isohybrid-acritox
==========================================
There are various hooks in this config tree that intend to prepare and configure the
image to become a multi-hybrid-ISO (if you are using GRUB2 as bootloader):
1. Multiple config-files for GRUB2, not only one grub.cfg:
all of the following files will be copied to binary/boot/grub:
config/binary_grub/grub*.cfg
2. Kanotix-GRUB2-theme will be copied to the ISO:
binary/boot/grub/
3. A GRUB2 x86 image will be built in the chroot and placed on the ISO - there it
will be used by isohybrid-bg2 to make the MBR of the Hybrid-ISO boot into GRUB2.
config/binary_local-hooks/isohybrid-acritox
it will be stored in
binary/boot.isohybrid
4. EFI for x64:
- an image with GRUB2 will be built (including modules)
- an EFI-Shell will be downloaded
config/binary_local-hooks/grub2-efi
they will be stored in
binary/efi/boot/
5. FAT-filesystem that contains GRUB2EFI and will be used as a fake-partition
in the MBR-partition-table by isohybrid-acritox
config/binary_local-hooks/mkefipart-fat
it will be stored in
binary/boot.efi.img
6. HFS+-filesystem that contains GRUB2EFI and will be used as a fake-partition
in the Apple-Partition-Map by isohybrid-acritox
mkefipart-hfsplus
7. An empty space for the fake-ISO9660-partition that will be filled and added
to the MBR-partition-table by isohybrid-acritox
config/binary_local-hooks/mkembeddediso
it will be stored in:
binary/boot.iso.img
Numbering of kernels on the binary
==================================
This config tree has a hack included that mimics the kernel-numbering of
lb_binary_syslinux for lb_binary_grub2, meaning that if you use GRUB2 as bootloader
the kernels will be named vmlinuz/initrd.img, vmlinuz2/initrd2.img, ... instead of their
full kernel versions (vmlinuz-3.x.y-z, ...)
This is done by some function-overloading in auto/functions/livebuild-hacks
Build using tmpfs
=================
use "lb config --tmpfs true" to enable.
you may specify mount-options with --tmpfs-options, e.g.
lb config --tmpfs-options "size=6G"
to set the maximum size of the ramdisk to 6GB.
"lb build" will then mount a tmpfs into the "tmpfs" directory and the build process
will take place there.
after the build the result and the cache will reside on the tmpfs, so if you
want to keep them you should move or copy them to somewhere else.
everything inside the "tmpfs" directory will be lost when umounting it, so if
you want to save the cache for later builds you have to move (or copy) it:
mv tmpfs/cache .
live-build will not umount the "tmpfs" unless you run "lb clean --tmpfs"
or "lb clean --all", so if you are going to do multiple builds without
umounting the "tmpfs" you do not need to backup the cache, it will stay there
and will be used for the next build.
Including Kanotix-scripts
=========================
All urls listed in
scripts.urls
will be fetched to config/chroot_local-includes/usr/local/bin/ when "lb config"
is called. They will be removed on "lb clean".
|