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