d87bfe7c68d1e597eb98550d723da173c5921281
[live-boot-grml.git] / hooks / live
1 #!/bin/sh
2
3 # initramfs hook for live-boot (Debian Live)
4
5 set -e
6
7 # initramfs-tools header
8
9 PREREQ=""
10
11 prereqs()
12 {
13         echo "${PREREQ}"
14 }
15
16 case "${1}" in
17         prereqs)
18                 prereqs
19                 exit 0
20                 ;;
21 esac
22
23 . /usr/share/initramfs-tools/hook-functions
24
25 # live-boot hook
26
27 # Handling live-boot
28
29 # Configuration
30 if [ -e /usr/share/live-boot/languagelist ]
31 then
32         mkdir -p "${DESTDIR}"/usr/share/live-boot
33         cp /usr/share/live-boot/languagelist "${DESTDIR}"/usr/share/live-boot
34 fi
35
36 # Directories
37 mkdir -p "${DESTDIR}"/lib/live-boot
38
39 # Executables
40 copy_exec /usr/share/live-boot/live-reconfigure /bin
41 copy_exec /usr/share/live-boot/live-preseed /bin
42
43 # Scripts
44 cp /usr/share/initramfs-tools/scripts/live-functions "${DESTDIR}"/scripts
45 cp /usr/share/initramfs-tools/scripts/live-helpers "${DESTDIR}"/scripts
46
47 # klibc dependencies
48 for FILE in /lib/libacl* /lib/libblkid* /lib/libuuid* /lib/libdevmapper* /lib/libattr*
49 do
50         if [ ! -e "${DESTDIR}"/"${FILE}" ]
51         then
52                 cp -a "${FILE}" "${DESTDIR}"/"${FILE}"
53         fi
54 done
55
56 # udev dependencies (squeeze and newer)
57 for FILE in /lib/udev/*_id
58 do
59         if [ ! -e "${DESTDIR}/${FILE}" ]
60         then
61                 mkdir -p "${DESTDIR}/lib/udev"
62                 copy_exec "${FILE}" /lib/udev
63         fi
64 done
65
66 if [ -e /lib/udev/rules.d/60-cdrom_id.rules ]
67 then
68         mkdir -p ${DESTDIR}/lib/udev/rules.d
69         cp -p /lib/udev/rules.d/60-cdrom_id.rules ${DESTDIR}/lib/udev/rules.d
70 fi
71
72 # Handling other stuff
73
74 # Configuration: keymap (usefull when using encryption)
75 if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
76 then
77         copy_exec /bin/loadkeys /bin
78
79         mkdir -p "${DESTDIR}"/etc
80         cp /etc/console/boottime.kmap.gz "${DESTDIR}"/etc
81 fi
82
83 # Configuration: Unique ID
84 if [ -n "${LIVE_GENERATE_UUID}" ]
85 then
86         mkdir -p "${DESTDIR}"/conf
87         uuidgen -r > "${DESTDIR}"/conf/uuid.conf
88 fi
89
90 # Filesystem: btrfs
91 manual_add_modules btrfs
92
93 # Filesystem: cifs
94 if [ -x /sbin/mount.cifs ]
95 then
96         copy_exec /sbin/mount.cifs /sbin
97         manual_add_modules cifs
98 fi
99
100 # Filesystem: ext3/ext4
101 manual_add_modules ext3
102 manual_add_modules ext4
103
104 # Filesystem: jffs2
105 manual_add_modules jffs2
106
107 if [ -x /usr/bin/rsync ]
108 then
109         copy_exec /usr/bin/rsync /bin
110 fi
111
112 # Filesystem: squashfs
113 copy_exec /sbin/losetup /sbin
114 manual_add_modules loop
115 manual_add_modules squashfs
116 manual_add_modules sqlzma
117 manual_add_modules unlzma
118
119 # Filesystem: aufs/unionfs
120 manual_add_modules aufs
121 manual_add_modules unionfs
122
123 # Filesystem: unionfs-fuse
124 if [ -x /usr/bin/unionfs-fuse ]
125 then
126         copy_exec /usr/bin/unionfs-fuse /bin
127 fi
128
129 # Filesystem: vfat
130 manual_add_modules nls_cp437
131 manual_add_modules nls_iso8859-1
132 manual_add_modules nls_utf8
133 manual_add_modules vfat
134
135 # Filesystem: ntfs
136 manual_add_modules ntfs
137
138 # Hardware: cdrom
139 manual_add_modules ide-cd
140 manual_add_modules ide-generic
141 manual_add_modules ohci1394
142 manual_add_modules sbp2
143 manual_add_modules sr_mod
144
145 # Hardware: usb
146 manual_add_modules sd_mod
147
148 # Hardware: network
149 auto_add_modules net
150
151 # Program: eject
152 if [ -x /usr/bin/eject ]
153 then
154         copy_exec /usr/bin/eject /bin
155 fi
156
157 # Program: md5sum
158 copy_exec /usr/bin/md5sum /bin
159
160 # Program: memdisk
161 if [ -x /usr/bin/memdiskfind ]
162 then
163         copy_exec /usr/bin/memdiskfind
164         manual_add_modules phram mtdblock
165 fi
166
167 # Program: cpio
168 # busybox and klibc lacks --no-absolute-filenames and --sparse, needed for snapshots
169 if [ -e "${DESTDIR}/bin/cpio" ]
170 then
171         # Override already present cpio's, mostly klibc's
172         rm "${DESTDIR}/bin/cpio"
173 fi
174 copy_exec /bin/cpio /bin
175
176 # Program: udev
177 if [ -x /sbin/udevadm ]
178 then
179         # lenny
180         copy_exec /sbin/udevadm /sbin
181 else
182         # etch
183         copy_exec /sbin/udevtrigger /sbin
184         copy_exec /sbin/udevsettle /sbin
185 fi
186 if [ -x /usr/bin/udevinfo ]
187 then
188         copy_exec /usr/bin/udevinfo /bin
189 fi
190
191 # Program: wget
192 if [ -x /usr/bin/wget ]
193 then
194         copy_exec /usr/bin/wget /bin
195 fi
196
197 # Program: blockdev
198 if [ -x /sbin/blockdev ]
199 then
200         copy_exec /sbin/blockdev /sbin
201 fi
202
203 # FUSE kernel module
204 manual_add_modules fuse
205
206 # FUSE filesystem: httpfs2
207 if [ -x /usr/bin/httpfs2_ssl ]
208 then
209         copy_exec /usr/bin/httpfs2_ssl /bin/httpfs
210 elif [ -x /usr/bin/httpfs2 ]
211 then
212         copy_exec /usr/bin/httpfs2 /bin/httpfs
213 fi
214
215 # FUSE filesystem: curlftpfs
216 if [ -x /usr/bin/curlftpfs ]
217 then
218         copy_exec /usr/bin/curlftpfs /bin
219 fi
220
221 # iSCSI
222 if [ -x /usr/sbin/iscsistart ]
223 then
224     copy_exec /usr/sbin/iscsistart /bin
225     #manual_add_modules ib_iser
226     manual_add_modules iscsi_tcp
227     manual_add_modules crc32c
228 fi