Including udev binaries in initramfs manually for squeeze and newer (Closes: #547149).
[live-boot-grml.git] / hooks / live
1 #!/bin/sh
2
3 # initramfs hook for live-initramfs (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-initramfs hook
26
27 # Handling live-initramfs
28
29 # Configuration
30 if [ -r /etc/live.conf ]
31 then
32         . /etc/live.conf
33
34         mkdir -p "${DESTDIR}"/etc
35         cp /etc/live.conf "${DESTDIR}"/etc
36 fi
37
38 mkdir -p "${DESTDIR}"/usr/share/live-initramfs
39 cp /usr/share/live-initramfs/languagelist "${DESTDIR}"/usr/share/live-initramfs
40
41 # Directories
42 mkdir -p "${DESTDIR}"/lib/live-initramfs
43
44 # Executables
45 copy_exec /usr/share/live-initramfs/live-reconfigure /bin
46 copy_exec /usr/share/live-initramfs/live-preseed /bin
47
48 # Scripts
49 cp /usr/share/initramfs-tools/scripts/live-functions "${DESTDIR}"/scripts
50 cp /usr/share/initramfs-tools/scripts/live-helpers "${DESTDIR}"/scripts
51
52 # klibc dependencies
53 for FILE in /lib/libacl* /lib/libblkid* /lib/libuuid* /lib/libdevmapper* /lib/libattr*
54 do
55         if [ ! -e "${DESTDIR}"/"${FILE}" ]
56         then
57                 cp -a "${FILE}" "${DESTDIR}"/"${FILE}"
58         fi
59 done
60
61 # udev dependencies (squeeze and newer)
62 for FILE in /lib/udev/*_id
63 do
64         if [ ! -e "${DESTDIR}"/"${FILE}" ]
65         then
66                 copy_exec "${FILE}" /lib/udev/
67         fi
68 done
69
70 # Handling other stuff
71
72 # Configuration: keymap (usefull when using encryption)
73 if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
74 then
75         copy_exec /bin/loadkeys /bin
76
77         mkdir -p "${DESTDIR}"/etc
78         cp /etc/console/boottime.kmap.gz "${DESTDIR}"/etc
79 fi
80
81 # Configuration: Unique ID
82 if [ -n "${LIVE_GENERATE_UUID}" ]
83 then
84         mkdir -p "${DESTDIR}"/conf
85         uuidgen -r > "${DESTDIR}"/conf/uuid.conf
86 fi
87
88 # Filesystem: cifs
89 if [ -x /sbin/mount.cifs ]
90 then
91         copy_exec /sbin/mount.cifs /sbin
92         manual_add_modules cifs
93 fi
94
95 # Filesystem: ext3/ext4
96 manual_add_modules ext3
97 manual_add_modules ext4
98
99 # Filesystem: jffs2
100 manual_add_modules jffs2
101
102 # Filesystem: squashfs
103 copy_exec /sbin/losetup /sbin
104 manual_add_modules loop
105 manual_add_modules squashfs
106 manual_add_modules sqlzma
107 manual_add_modules unlzma
108
109 # Filesystem: aufs/unionfs
110 manual_add_modules aufs
111 manual_add_modules unionfs
112
113 # Filesystem: vfat
114 manual_add_modules nls_cp437
115 manual_add_modules nls_iso8859-1
116 manual_add_modules nls_utf8
117 manual_add_modules vfat
118
119 # Filesystem: ntfs
120 manual_add_modules ntfs
121
122 # Hardware: cdrom
123 manual_add_modules ide-cd
124 manual_add_modules ide-generic
125 manual_add_modules ohci1394
126 manual_add_modules sbp2
127 manual_add_modules sr_mod
128
129 # Hardware: usb
130 manual_add_modules sd_mod
131
132 # Hardware: network
133 auto_add_modules net
134
135 # Program: eject
136 if [ -x /usr/bin/eject ]
137 then
138         copy_exec /usr/bin/eject /bin
139 fi
140
141 # Program: md5sum
142 copy_exec /usr/bin/md5sum /bin
143
144 # Program: cpio
145 # busybox and klibc lacks --no-absolute-filenames and --sparse, needed for snapshots
146 if [ -e "${DESTDIR}/bin/cpio" ]
147 then
148         # Override already present cpio's, mostly klibc's
149         rm "${DESTDIR}/bin/cpio"
150 fi
151 copy_exec /bin/cpio /bin
152
153 # Program: udev
154 if [ -x /sbin/udevadm ]
155 then
156         # lenny
157         copy_exec /sbin/udevadm /sbin
158 else
159         # etch
160         copy_exec /sbin/udevtrigger /sbin
161         copy_exec /sbin/udevsettle /sbin
162 fi
163 if [ -x /usr/bin/udevinfo ]
164 then
165         copy_exec /usr/bin/udevinfo /bin
166 fi
167
168 # Program: wget
169 if [ -x /usr/bin/wget ]
170 then
171         copy_exec /usr/bin/wget /bin
172 fi
173
174 # FUSE kernel module
175 manual_add_modules fuse
176
177 # FUSE filesystem: httpfs2
178 if [ -x /usr/bin/httpfs2_ssl ]
179 then
180         copy_exec /usr/bin/httpfs2_ssl /bin/httpfs
181 elif [ -x /usr/bin/httpfs2 ]
182 then
183         copy_exec /usr/bin/httpfs2 /bin/httpfs
184 fi
185
186 # FUSE filesystem: curlftpfs
187 if [ -x /usr/bin/curlftpfs ]
188 then
189         copy_exec /usr/bin/curlftpfs /bin
190 fi