1 |
commit: 5d4766cd1b811a525f5b624fc1e8daf1207acac0 |
2 |
Author: Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com> |
3 |
AuthorDate: Mon Jun 23 17:58:33 2014 +0000 |
4 |
Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jun 23 23:11:15 2014 +0000 |
6 |
URL: http://sources.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=5d4766cd |
7 |
|
8 |
Coding style changes throughout all the AUFS related code. |
9 |
|
10 |
--- |
11 |
defaults/initrd.defaults | 4 +- |
12 |
defaults/initrd.scripts | 179 ++++++++++++++++++------------------- |
13 |
defaults/linuxrc | 227 +++++++++++++++++++++-------------------------- |
14 |
3 files changed, 188 insertions(+), 222 deletions(-) |
15 |
|
16 |
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults |
17 |
index d0efa28..67b0d28 100755 |
18 |
--- a/defaults/initrd.defaults |
19 |
+++ b/defaults/initrd.defaults |
20 |
@@ -58,7 +58,7 @@ KSUFF='.ko' |
21 |
REAL_ROOT='' |
22 |
CONSOLE='/dev/console' |
23 |
NEW_ROOT='/newroot' |
24 |
-RC_NO_UMOUNTS="/newroot|/newroot/mnt/changesdev|/mnt/overlay|/mnt/livecd|/mnt/cdrom|/.unions/memory|/.unions/memory/xino" |
25 |
+RC_NO_UMOUNTS="/newroot|/newroot/mnt/changesdev|/mnt/rw_branch|/mnt/livecd|/mnt/cdrom|/.unions/memory|/.unions/memory/xino" |
26 |
CDROOT='0' |
27 |
CDROOT_DEV='' |
28 |
CDROOT_TYPE='auto' |
29 |
@@ -71,7 +71,7 @@ CDROOT_MARKER='/livecd' |
30 |
USE_AUFS_NORMAL=0 |
31 |
AUFS_MODULES=false |
32 |
AUFS_CHANGES=false |
33 |
-AUFS_CHANGESFILE=livecd.aufs |
34 |
+AUFS_CHANGESFILE=/livecd.aufs |
35 |
|
36 |
LOOPS='/livecd.loop /zisofs /livecd.squashfs /image.squashfs /livecd.gcloop' |
37 |
|
38 |
|
39 |
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts |
40 |
index 52b18b3..5ca1203 100644 |
41 |
--- a/defaults/initrd.scripts |
42 |
+++ b/defaults/initrd.scripts |
43 |
@@ -314,8 +314,7 @@ union_insert_modules() { |
44 |
# This should really go into /etc/init.d/localmounts but until then we manually set this here |
45 |
conf_rc_no_umounts() { |
46 |
local conf nomount fnd |
47 |
- conf="${CHROOT}/etc/rc.conf" |
48 |
- fnd=0 |
49 |
+ conf=$CHROOT/etc/rc.conf fnd=0 |
50 |
|
51 |
if nomount=$(grep -n '^[[:blank:]]*RC_NO_UMOUNTS=' $conf); then |
52 |
local i n data cmd IFS |
53 |
@@ -350,33 +349,28 @@ conf_rc_no_umounts() { |
54 |
create_changefs() { |
55 |
local size |
56 |
|
57 |
- while [ 1 ] |
58 |
- do |
59 |
+ while :; do |
60 |
read -p '<< Size of file (Press Enter for default 256 Mb): ' size |
61 |
- if [ -z "${size}" ]; then |
62 |
- size=256 |
63 |
- fi |
64 |
- size="${size}" |
65 |
|
66 |
- if [ ${size} -lt 16 ] |
67 |
- then |
68 |
- bad_msg "Please give a size of at least 16 Mb" |
69 |
+ [ -n "$size" ] || size=256 |
70 |
+ |
71 |
+ size=$size |
72 |
+ |
73 |
+ if [ 15 -ge "$size" ]; then |
74 |
+ bad_msg "Please give a size of at least 16 Megabytes" |
75 |
else |
76 |
- dd if=/dev/zero of=${CHANGESMNT}/${AUFS_CHANGESFILE} bs=1M count=${size} &>/dev/null |
77 |
- if [ $? = '0' ] |
78 |
- then |
79 |
- good_msg "Creation of ${AUFS_CHANGESFILE}, ${size} Mb on ${CHANGESDEV} successful, formatting it ext2" |
80 |
- mke2fs -F ${CHANGESMNT}/${AUFS_CHANGESFILE} &>/dev/null |
81 |
+ if dd if=/dev/zero "of=$CHANGESMNT$AUFS_CHANGESFILE" bs=1M count="$size" &>/dev/null; then |
82 |
+ good_msg "Creation of $AUFS_CHANGESFILE, ${size}Mb on $CHANGESDEV successful, formatting it ext2" |
83 |
+ mke2fs -F "$CHANGESMNT$AUFS_CHANGESFILE" >/dev/null |
84 |
AUFS_CHANGES=true |
85 |
break |
86 |
else |
87 |
- rm -f ${CHANGESMNT}/${AUFS_CHANGESFILE} |
88 |
- bad_msg "Unable to create ${AUFS_CHANGESFILE} on ${CHANGESDEV} of ${size} Mb" |
89 |
+ rm -f "$CHANGESMNT$AUFS_CHANGESFILE" |
90 |
+ bad_msg "Unable to create ${AUFS_CHANGESFILE#*/} on $CHANGESDEV of ${size}Mb" |
91 |
bad_msg "Ensure your disk is not full or read-only" |
92 |
+ |
93 |
read -p '<< Type "a" to abort, anything else to continue : ' doabort |
94 |
- if [ "${doabort}" = "a" ]; then |
95 |
- return 1 |
96 |
- fi |
97 |
+ if [ a = "$doabort" ]; then return 1; fi |
98 |
fi |
99 |
fi |
100 |
done |
101 |
@@ -386,87 +380,80 @@ create_changefs() { |
102 |
setup_aufs() { |
103 |
bootstrapCD |
104 |
|
105 |
- if [ -n "${AUFS}" ] |
106 |
- then |
107 |
- if [ "${AUFS}" = "detect" ] |
108 |
- then |
109 |
- CHANGESMNT="${NEW_ROOT}${CDROOT_PATH}" |
110 |
- CHANGESDEV=${REAL_ROOT} |
111 |
+ if [ -n "$AUFS" ]; then |
112 |
+ if [ detect = "$AUFS" ]; then |
113 |
+ CHANGESMNT=$NEW_ROOT$CDROOT_PATH |
114 |
+ CHANGESDEV=$REAL_ROOT |
115 |
else |
116 |
- CHANGESDEV=${AUFS} |
117 |
- good_msg "Mounting ${CHANGESDEV} to ${MEMORY} for aufs support" |
118 |
- mount -t auto ${CHANGESDEV} ${CHANGESMNT} &>/dev/null |
119 |
- ret=$? |
120 |
- if [ "${ret}" -ne 0 ] |
121 |
- then |
122 |
- bad_msg "Mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs" |
123 |
+ CHANGESDEV=$AUFS |
124 |
+ good_msg "Mounting $CHANGESDEV to $MEMORY for aufs support" |
125 |
+ |
126 |
+ if ! mount -t auto "$CHANGESDEV" "$CHANGESMNT" &>/dev/null; then |
127 |
+ bad_msg "Mount of $CHANGESDEV failed, falling back to ramdisk based aufs" |
128 |
unset AUFS |
129 |
fi |
130 |
fi |
131 |
+ |
132 |
# Check and attempt to create the changesfile |
133 |
- if [ ! -e ${CHANGESMNT}/${AUFS_CHANGESFILE} ] && [ -n "${AUFS}" ] |
134 |
- then |
135 |
+ if [ ! -e $CHANGESMNT$AUFS_CHANGESFILE ] && [ -n "$AUFS" ]; then |
136 |
create_changefs |
137 |
- mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY} |
138 |
- elif [ -n "${AUFS}" ] |
139 |
- then |
140 |
- local nbpass=0 |
141 |
- while [ 1 ] |
142 |
- do |
143 |
- mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY} |
144 |
- ret=$? |
145 |
- if [ "${ret}" -ne 0 ] |
146 |
- then |
147 |
- if [ ${nbpass} -eq 0 ] |
148 |
- then |
149 |
- bad_msg "Mounting of changes file failed, Running e2fsck" |
150 |
- e2fsck ${CHANGESMNT}/${AUFS_CHANGESFILE} |
151 |
- nbpass=$((${nbpass} + 1)) |
152 |
- else |
153 |
- bad_msg "Mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs" |
154 |
- bad_msg "your ${AUFS_CHANGESFILE} might be messed up, and I couldn't fix it" |
155 |
- bad_msg "moving ${AUFS_CHANGESFILE} to ${AUFS_CHANGESFILE}.bad" |
156 |
- mv ${CHANGESMNT}/${AUFS_CHANGESFILE} ${CHANGESMNT}/${AUFS_CHANGESFILE}.bad |
157 |
- bad_msg "Try to fix it yourself with e2fsck" |
158 |
+ mount -t auto "$CHANGESMNT$AUFS_CHANGESFILE" "$MEMORY" |
159 |
+ elif [ -n "$AUFS" ]; then |
160 |
+ while :; do |
161 |
+ if mount -t auto "$CHANGESMNT$AUFS_CHANGESFILE" "$MEMORY" &>/dev/null; then |
162 |
+ break |
163 |
+ else |
164 |
+ bad_msg "Mounting of changes file failed, Running e2fsck" |
165 |
+ |
166 |
+ if ! hash e2fsck &>/dev/null; then |
167 |
+ bad_msg "/sbin/e2fsck not found! aborting filesystem check" |
168 |
+ bad_msg "Moving ${AUFS_CHANGESFILE#*/} to ${AUFS_CHANGESFILE#*/}.bad" |
169 |
+ |
170 |
+ mv "$CHANGESMNT$AUFS_CHANGESFILE" "$CHANGESMNT$AUFS_CHANGESFILE.bad" |
171 |
+ break |
172 |
+ |
173 |
+ fi |
174 |
+ |
175 |
+ if e2fsck "$CHANGESMNT$AUFS_CHANGESFILE" &>/dev/null; then |
176 |
+ good_msg "e2fsck ran successfully. Please verify data after bootup" |
177 |
+ else |
178 |
+ bad_msg "Your ${AUFS_CHANGESFILE#*/} image might be corrupted" |
179 |
+ bad_msg "moving ${AUFS_CHANGESFILE#*/} to ${AUFS_CHANGESFILE#*/}.bad" |
180 |
+ |
181 |
+ mv "$CHANGESMNT$AUFS_CHANGESFILE" "$CHANGESMNT$AUFS_CHANGESFILE.bad" |
182 |
break |
183 |
fi |
184 |
- else |
185 |
- if [ ${nbpass} -eq 1 ] |
186 |
- then |
187 |
- good_msg "e2fsck ran successfully. Please check your files after bootup" |
188 |
- fi |
189 |
- break |
190 |
fi |
191 |
done |
192 |
fi |
193 |
# mount tmpfs only in the case when changes= boot parameter was |
194 |
# empty or we were not able to mount the storage device |
195 |
- if [ "${CDROOT}" -eq '1' -a ! -f ${CHANGESMNT}/${AUFS_CHANGESFILE} ] |
196 |
- then |
197 |
- XINO=${MEMORY} |
198 |
- umount ${MEMORY} &>/dev/null |
199 |
- bad_msg "Failed to find ${AUFS_CHANGESFILE} file on ${CHANGESDEV}" |
200 |
- bad_msg "Create an ext2 ${AUFS_CHANGESFILE} file on this device if you wish to use it for aufs" |
201 |
- bad_msg "Falling back to ramdisk based aufs for safety" |
202 |
+ if [ 1 = "$CDROOT" ] && [ ! -f "$CHANGESMNT$AUFS_CHANGESFILE" ]; then |
203 |
+ XINO=$MEMORY |
204 |
+ umount "$MEMORY" &>/dev/null |
205 |
+ |
206 |
+ bad_msg "Create an extfs ${AUFS_CHANGESFILE#*/} file on this device" |
207 |
+ bad_msg "if you wish to have aufs data persistency on reboots" |
208 |
+ bad_msg "Falling back to ramdisk based aufs" |
209 |
good_msg "Mounting ramdisk to $MEMORY for aufs support" |
210 |
- mount -t tmpfs tmpfs ${MEMORY} |
211 |
+ |
212 |
+ mount -t tmpfs tmpfs "$MEMORY" |
213 |
else |
214 |
- XINO=${MEMORY}/xino |
215 |
- mkdir -p ${XINO} |
216 |
- mount -t tmpfs tmpfs ${XINO} |
217 |
+ XINO=$MEMORY/xino |
218 |
+ |
219 |
+ mkdir -p "$XINO" |
220 |
+ mount -t tmpfs aufs-xino "$XINO" |
221 |
fi |
222 |
else |
223 |
- good_msg "Mounting ramdisk to $MEMORY for aufs support" |
224 |
- mount -t tmpfs tmpfs ${MEMORY} |
225 |
- XINO=${MEMORY} |
226 |
+ XINO=$MEMORY |
227 |
+ |
228 |
+ good_msg "Mounting ramdisk to $MEMORY for aufs support" |
229 |
+ mount -t tmpfs tmpfs "$MEMORY" |
230 |
fi |
231 |
|
232 |
- mkdir -p ${CHANGES} |
233 |
- mount -t aufs -n -o nowarn_perm,udba=none,xino=${XINO}/.aufs.xino,br:${CHANGES}=rw aufs ${UNION} |
234 |
- ret=$? |
235 |
- if [ "${ret}" -ne 0 ] |
236 |
- then |
237 |
- bad_msg "Can't setup union ${UNION} in directory!" |
238 |
+ mkdir -p "$CHANGES" |
239 |
+ if ! mount -t aufs -n -o "nowarn_perm,udba=none,xino=$XINO/.aufs.xino,br:$CHANGES=rw" aufs "$UNION"; then |
240 |
+ bad_msg "Can't setup union $UNION in directory!" |
241 |
USE_AUFS_NORMAL=0 |
242 |
fi |
243 |
} |
244 |
@@ -1420,22 +1407,24 @@ getdvhoff() { |
245 |
|
246 |
setup_squashfs_aufs() { |
247 |
# Setup aufs directories and vars |
248 |
- overlay=/mnt/overlay |
249 |
- static=/mnt/livecd |
250 |
+ rw_branch=/mnt/rw_branch ro_branch=/mnt/livecd |
251 |
|
252 |
- for i in "${overlay}" "${static}"; do |
253 |
- [ ! -d "${i}" ] && mkdir -p "${i}" |
254 |
+ for dir in $rw_branch $ro_branch; do |
255 |
+ [ ! -d $dir ] && mkdir -p "$dir" |
256 |
done |
257 |
- good_msg "Loading aufs" |
258 |
- modprobe aufs > /dev/null 2>&1 |
259 |
|
260 |
- mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${static}" |
261 |
- mount -t tmpfs none "${overlay}" |
262 |
- mount -t aufs -o br:${overlay}:${static} aufs "${NEW_ROOT}" |
263 |
+ good_msg "Loading aufs module ..." |
264 |
+ modprobe aufs &>/dev/null |
265 |
|
266 |
- [ ! -d "${NEW_ROOT}${overlay}" ] && mkdir -p "${NEW_ROOT}${overlay}" |
267 |
- [ ! -d "${NEW_ROOT}${static}" ] && mkdir -p "${NEW_ROOT}${static}" |
268 |
- for i in "${overlay}" "${static}"; do mount --move "${i}" "${NEW_ROOT}${i}"; done |
269 |
+ mount -t squashfs -o loop,ro "$CDROOT_PATH/$LOOPEXT$LOOP" "$ro_branch" |
270 |
+ mount -t tmpfs none "$rw_branch" |
271 |
+ mount -t aufs -o "br:$rw_branch:$ro_branch" aufs "$NEW_ROOT" |
272 |
+ |
273 |
+ [ ! -d $NEW_ROOT$rw_branch ] && mkdir -p "$NEW_ROOT$rw_branch" |
274 |
+ [ ! -d $NEW_ROOT$ro_branch ] && mkdir -p "$NEW_ROOT$ro_branch" |
275 |
+ for mount in $rw_branch $ro_branch; do |
276 |
+ mount --move "$mount" "$NEW_ROOT$mount" |
277 |
+ done |
278 |
} |
279 |
|
280 |
setup_unionfs() { |
281 |
|
282 |
diff --git a/defaults/linuxrc b/defaults/linuxrc |
283 |
index 8b3ff87..5a341af 100644 |
284 |
--- a/defaults/linuxrc |
285 |
+++ b/defaults/linuxrc |
286 |
@@ -255,31 +255,17 @@ do |
287 |
;; |
288 |
aufs\=*) |
289 |
USE_AUFS_NORMAL=1 |
290 |
- echo ${x#*=} | grep , &>/dev/null |
291 |
|
292 |
- if [ "$?" -eq '0' ] |
293 |
- then |
294 |
+ if echo "${x#*=}" | grep , &>/dev/null; then |
295 |
UID=${x#*,} |
296 |
AUFS=${x%,*} |
297 |
else |
298 |
AUFS=${x#*=} |
299 |
fi |
300 |
;; |
301 |
- aufs.changes\=*) |
302 |
- USE_AUFS_NORMAL=1 |
303 |
- echo ${x#*=} | grep , &>/dev/null |
304 |
- |
305 |
- if [ "$?" -eq '0' ] |
306 |
- then |
307 |
- UID=${x#*,} |
308 |
- AUFS=${x%,*} |
309 |
- else |
310 |
- AUFS=${x#*=} |
311 |
- fi |
312 |
- ;; |
313 |
aufs.persistent) |
314 |
USE_AUFS_NORMAL=1 |
315 |
- AUFS="detect" |
316 |
+ AUFS=detect |
317 |
;; |
318 |
# Allow user to specify the modules location |
319 |
aufs.modules\=*) |
320 |
@@ -461,16 +447,14 @@ then |
321 |
# Setup the root filesystem |
322 |
bootstrapFS |
323 |
|
324 |
- if [ "${USE_AUFS_NORMAL}" -eq '1' ] |
325 |
- then |
326 |
+ if [ 1 = "$USE_AUFS_NORMAL" ]; then |
327 |
setup_aufs |
328 |
- CHROOT=${UNION} |
329 |
+ CHROOT=$UNION |
330 |
else |
331 |
CHROOT=${NEW_ROOT} |
332 |
fi |
333 |
|
334 |
- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${USE_AUFS_NORMAL}" != '1' ] |
335 |
- then |
336 |
+ if [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$USE_AUFS_NORMAL" ]; then |
337 |
bootstrapCD |
338 |
fi |
339 |
|
340 |
@@ -502,7 +486,7 @@ then |
341 |
fi |
342 |
|
343 |
# Determine root device |
344 |
-good_msg 'Determining root device...' |
345 |
+good_msg 'Determining root device ...' |
346 |
while true |
347 |
do |
348 |
while [ "${got_good_root}" != '1' ] |
349 |
@@ -720,7 +704,7 @@ then |
350 |
FS_LOCATION='mnt/livecd' |
351 |
elif [ "${LOOPTYPE}" = 'squashfs' ] |
352 |
then |
353 |
- if [ "${USE_AUFS_NORMAL}" != '1' ]; then |
354 |
+ if [ 1 != "$USE_AUFS_NORMAL" ]; then |
355 |
good_msg 'Mounting squashfs filesystem' |
356 |
_CACHED_SQUASHFS_PATH="${NEW_ROOT}/mnt/${LOOP}" |
357 |
_squashfs_path="${CDROOT_PATH}/${LOOPEXT}${LOOP}" # Default to uncached |
358 |
@@ -782,25 +766,23 @@ then |
359 |
fi |
360 |
fi # if [ -n "${CRYPT_ROOT}" ] |
361 |
|
362 |
- if [ "${USE_AUFS_NORMAL}" -eq '1' ] |
363 |
- then |
364 |
- union_insert_dir ${CHROOT} ${NEW_ROOT}/${FS_LOCATION} |
365 |
- |
366 |
- # Make sure fstab notes livecd is mounted ro. Makes system skip remount which fails on aufs dirs. |
367 |
- # TODO: remounting all tmpfs as RO seems weird, can we be more specific? |
368 |
- #sed -e 's|\(.*\s/\s*tmpfs\s*\)defaults\(.*\)|\1defaults,ro\2|' /${UNION}/etc/fstab > /${UNION}/etc/fstab.new |
369 |
- #mv /${UNION}/etc/fstab.new /${UNION}/etc/fstab |
370 |
+ if [ 1 = "$USE_AUFS_NORMAL" ]; then |
371 |
+ union_insert_dir "$CHROOT" "$NEW_ROOT/$FS_LOCATION" |
372 |
|
373 |
# Function to handle the RC_NO_UMOUNTS variable in ${CHROOT}/etc/rc.conf |
374 |
conf_rc_no_umounts |
375 |
|
376 |
# Fstab changes for aufs |
377 |
- if ! grep -q '^aufs' "${CHROOT}"/etc/fstab 2>/dev/null; then |
378 |
- for i in /var/tmp /tmp /usr/portage/distfiles; do |
379 |
- [ ! -d "${CHROOT}${i}" ] && mkdir -p "${CHROOT}${i}" |
380 |
+ if ! grep -q '^aufs' "$CHROOT/etc/fstab" 2>/dev/null; then |
381 |
+ for dir in /var/tmp /tmp /usr/portage/distfiles; do |
382 |
+ [ ! -d $CHROOT$dir ] && mkdir -p "$CHROOT$dir" |
383 |
done |
384 |
|
385 |
- cat > "${CHROOT}"/etc/fstab << FSTAB |
386 |
+ cat > "$CHROOT/etc/fstab" << FSTAB |
387 |
+#################################################### |
388 |
+## ATTENTION: THIS IS THE FSTAB ON THE LIVECD ## |
389 |
+## PLEASE EDIT THE FSTAB at /mnt/gentoo/etc/fstab ## |
390 |
+#################################################### |
391 |
aufs / aufs defaults 0 0 |
392 |
vartmp /var/tmp tmpfs defaults 0 0 |
393 |
tmp /tmp tmpfs defaults 0 0 |
394 |
@@ -808,30 +790,29 @@ distfiles /usr/portage/distfiles tmpfs defaults 0 0 |
395 |
FSTAB |
396 |
fi |
397 |
|
398 |
- if ${AUFS_MODULES}; then |
399 |
+ if $AUFS_MODULES; then |
400 |
warn_msg "Adding all modules in $MODULESD/modules/" |
401 |
|
402 |
- if [ -z "${MODULESD}" ] |
403 |
- then |
404 |
- union_insert_modules ${CDROOT_PATH} |
405 |
+ if [ -z "$MODULESD" ]; then |
406 |
+ union_insert_modules "$CDROOT_PATH" |
407 |
else |
408 |
- mkdir ${NEW_ROOT}/mnt/modulesd |
409 |
- mount "${MODULESD}" ${NEW_ROOT}/mnt/modulesd |
410 |
- union_insert_modules ${NEW_ROOT}/mnt/modulesd |
411 |
+ mkdir "$NEW_ROOT/mnt/modulesd" |
412 |
+ mount "$MODULESD" "$NEW_ROOT/mnt/modulesd" |
413 |
+ union_insert_modules "$NEW_ROOT/mnt/modulesd" |
414 |
fi |
415 |
fi |
416 |
|
417 |
# Copy user keymap file |
418 |
if [ -e /etc/sysconfig/keyboard ]; then |
419 |
- [ ! -d ${CHROOT}/etc/sysconfig ] && mkdir -p ${CHROOT}/etc/sysconfig |
420 |
- cp /etc/sysconfig/keyboard ${CHROOT}/etc/sysconfig/ |
421 |
+ [ ! -d $CHROOT/etc/sysconfig ] && mkdir -p "$CHROOT/etc/sysconfig" |
422 |
+ cp /etc/sysconfig/keyboard "$CHROOT/etc/sysconfig/" |
423 |
fi |
424 |
|
425 |
# Create the directories for our new union mounts |
426 |
- test ! -d "${CHROOT}${NEW_ROOT}" && mkdir -p "${CHROOT}${NEW_ROOT}" |
427 |
+ [ ! -d $CHROOT$NEW_ROOT ] && mkdir -p "$CHROOT$NEW_ROOT" |
428 |
|
429 |
- if ${AUFS_CHANGES} && [ ! -d "${CHROOT}${NEW_ROOT}/mnt/changesdev" ]; then |
430 |
- mkdir -p "${CHROOT}${NEW_ROOT}/mnt/changesdev" |
431 |
+ if $AUFS_CHANGES && [ ! -d $CHROOT$NEW_ROOT/mnt/changesdev ]; then |
432 |
+ mkdir -p "$CHROOT$NEW_ROOT/mnt/changesdev" |
433 |
fi |
434 |
fi |
435 |
|
436 |
@@ -856,67 +837,67 @@ FSTAB |
437 |
then |
438 |
setup_unionfs ${NEW_ROOT} /${FS_LOCATION} |
439 |
CHROOT=/union |
440 |
- else |
441 |
- #XXX Note to potential reviewers. diff formats this section very very oddly. Be sure to review this hunk after applied, do NOT simply read the diff |
442 |
- if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] |
443 |
- then |
444 |
- good_msg "Copying read-write image contents to tmpfs" |
445 |
- # Copy over stuff that should be writable |
446 |
- (cd "${NEW_ROOT}/${FS_LOCATION}"; cp -a ${ROOT_TREES} "${NEW_ROOT}") || { |
447 |
- bad_msg "Copying failed, dropping into a shell." |
448 |
- do_rundebugshell |
449 |
- } |
450 |
- |
451 |
- # Now we do the links. |
452 |
- for x in ${ROOT_LINKS} |
453 |
- do |
454 |
- if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] |
455 |
- then |
456 |
- ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null |
457 |
- else |
458 |
- # List all subdirectories of x |
459 |
- find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null | while read directory |
460 |
- do |
461 |
- # Strip the prefix of the FS_LOCATION |
462 |
- directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}" |
463 |
- |
464 |
- # Skip this directory if we already linked a parent directory |
465 |
- if [ "${current_parent}" != '' ]; then |
466 |
- var=$(echo "${directory}" | grep "^${current_parent}") |
467 |
- if [ "${var}" != '' ]; then |
468 |
- continue |
469 |
- fi |
470 |
- fi |
471 |
- # Test if the directory exists already |
472 |
- if [ -e "/${NEW_ROOT}/${directory}" ] |
473 |
- then |
474 |
- # It does exist, link all the individual files |
475 |
- for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory}) |
476 |
- do |
477 |
- if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]; then |
478 |
- ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null |
479 |
- fi |
480 |
- done |
481 |
- else |
482 |
- # It does not exist, make a link to the livecd |
483 |
- ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null |
484 |
- current_parent="${directory}" |
485 |
- fi # if [ -e "/${NEW_ROOT}/${directory}" ] ... else |
486 |
- done # while read directory |
487 |
- fi # if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] ... else |
488 |
- done # for x in ${ROOT_LINKS} |
489 |
- mkdir -p initramfs proc tmp run sys 2>/dev/null |
490 |
- chmod 1777 tmp |
491 |
- |
492 |
- fi # if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] |
493 |
- #XXX: end extremely confusing hunk |
494 |
- |
495 |
- # have handy /mnt/cdrom (CDROOT_PATH) as well |
496 |
- _new_cdroot="${NEW_ROOT}${CDROOT_PATH}" |
497 |
- [ ! -d "${_new_cdroot}" ] && mkdir -p "${_new_cdroot}" |
498 |
- mount --bind "${CDROOT_PATH}" "${_new_cdroot}" |
499 |
- |
500 |
- fi # if [ "${USE_UNIONFS_NORMAL}" = '1' ] ... else |
501 |
+ else |
502 |
+ #XXX Note to potential reviewers. diff formats this section very very oddly. Be sure to review this hunk after applied, do NOT simply read the diff |
503 |
+ if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] |
504 |
+ then |
505 |
+ good_msg "Copying read-write image contents to tmpfs" |
506 |
+ # Copy over stuff that should be writable |
507 |
+ (cd "${NEW_ROOT}/${FS_LOCATION}"; cp -a ${ROOT_TREES} "${NEW_ROOT}") || { |
508 |
+ bad_msg "Copying failed, dropping into a shell." |
509 |
+ do_rundebugshell |
510 |
+ } |
511 |
+ |
512 |
+ # Now we do the links. |
513 |
+ for x in ${ROOT_LINKS} |
514 |
+ do |
515 |
+ if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] |
516 |
+ then |
517 |
+ ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null |
518 |
+ else |
519 |
+ # List all subdirectories of x |
520 |
+ find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null | while read directory |
521 |
+ do |
522 |
+ # Strip the prefix of the FS_LOCATION |
523 |
+ directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}" |
524 |
+ |
525 |
+ # Skip this directory if we already linked a parent directory |
526 |
+ if [ "${current_parent}" != '' ]; then |
527 |
+ var=$(echo "${directory}" | grep "^${current_parent}") |
528 |
+ if [ "${var}" != '' ]; then |
529 |
+ continue |
530 |
+ fi |
531 |
+ fi |
532 |
+ # Test if the directory exists already |
533 |
+ if [ -e "/${NEW_ROOT}/${directory}" ] |
534 |
+ then |
535 |
+ # It does exist, link all the individual files |
536 |
+ for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory}) |
537 |
+ do |
538 |
+ if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]; then |
539 |
+ ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null |
540 |
+ fi |
541 |
+ done |
542 |
+ else |
543 |
+ # It does not exist, make a link to the livecd |
544 |
+ ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null |
545 |
+ current_parent="${directory}" |
546 |
+ fi # if [ -e "/${NEW_ROOT}/${directory}" ] ... else |
547 |
+ done # while read directory |
548 |
+ fi # if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] ... else |
549 |
+ done # for x in ${ROOT_LINKS} |
550 |
+ mkdir -p initramfs proc tmp run sys 2>/dev/null |
551 |
+ chmod 1777 tmp |
552 |
+ |
553 |
+ fi # if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] |
554 |
+ #XXX: end extremely confusing hunk |
555 |
+ |
556 |
+ # have handy /mnt/cdrom (CDROOT_PATH) as well |
557 |
+ _new_cdroot="${NEW_ROOT}${CDROOT_PATH}" |
558 |
+ [ ! -d "${_new_cdroot}" ] && mkdir -p "${_new_cdroot}" |
559 |
+ mount --bind "${CDROOT_PATH}" "${_new_cdroot}" |
560 |
+ |
561 |
+ fi # if [ "${USE_UNIONFS_NORMAL}" = '1' ] ... else |
562 |
|
563 |
#UML=$(cat /proc/cpuinfo|grep UML|sed -e 's|model name.*: ||') |
564 |
#if [ "${UML}" = 'UML' ] |
565 |
@@ -928,18 +909,16 @@ FSTAB |
566 |
# Let Init scripts know that we booted from CD |
567 |
export CDBOOT |
568 |
CDBOOT=1 |
569 |
-else # if [ "${CDROOT}" = '1' ] |
570 |
+else |
571 |
if [ "${USE_UNIONFS_NORMAL}" = '1' ] |
572 |
then |
573 |
mkdir /union_changes |
574 |
mount -t tmpfs tmpfs /union_changes |
575 |
setup_unionfs /union_changes ${NEW_ROOT} |
576 |
mkdir -p ${UNION}/tmp/.initrd |
577 |
- fi |
578 |
- if [ "${USE_AUFS_NORMAL}" -eq '1' ] |
579 |
- then |
580 |
- union_insert_dir ${UNION} ${NEW_ROOT} |
581 |
- mkdir -p ${UNION}/tmp/.initrd |
582 |
+ elif [ 1 = "$USE_AUFS_NORMAL" ]; then |
583 |
+ union_insert_dir "$UNION" "$NEW_ROOT" |
584 |
+ mkdir -p "$UNION/tmp/.initrd" |
585 |
fi |
586 |
|
587 |
fi # if [ "${CDROOT}" = '1' ] |
588 |
@@ -986,22 +965,20 @@ fi |
589 |
|
590 |
verbose_kmsg |
591 |
|
592 |
-if [ "${USE_AUFS_NORMAL}" -eq '1' ] |
593 |
-then |
594 |
- UNION_MEMORY=${CHROOT}/.unions/memory |
595 |
+if [ 1 = "$USE_AUFS_NORMAL" ]; then |
596 |
+ UNION_MEMORY=$CHROOT/.unions/memory |
597 |
|
598 |
- mkdir -p "${UNION_MEMORY}" |
599 |
- mount --move "${MEMORY}" "${UNION_MEMORY}" |
600 |
+ mkdir -p "$UNION_MEMORY" |
601 |
+ mount --move "$MEMORY" "$UNION_MEMORY" |
602 |
test_success "Failed to move aufs /memory into the system root" |
603 |
|
604 |
- for i in /mnt/gentoo /mnt/livecd /mnt/overlay ${CDROOT_PATH} |
605 |
- do |
606 |
- mkdir -p "${CHROOT}${i}" |
607 |
- chmod 755 "${CHROOT}${i}" |
608 |
+ for dir in /mnt/gentoo $rw_branch $ro_branch $CDROOT_PATH; do |
609 |
+ mkdir -p "$CHROOT$dir" |
610 |
+ chmod 755 "$CHROOT$dir" |
611 |
done |
612 |
|
613 |
- for i in ${CDROOT_PATH} ${overlay} ${static}; do |
614 |
- mount --move ${NEW_ROOT}${i} ${CHROOT}${i} |
615 |
+ for dir in $CDROOT_PATH $rw_branch $ro_branch; do |
616 |
+ mount --move "$NEW_ROOT$dir" "$CHROOT$dir" |
617 |
done |
618 |
fi |