Magellan Linux

Diff of /trunk/mlivecdbuild/mlivecdbuild2.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 863 by niro, Sat May 9 12:00:20 2009 UTC revision 3228 by niro, Tue Sep 19 09:33:42 2023 UTC
# Line 19  CDID="mlcd-$(date +%F-%k%M)" Line 19  CDID="mlcd-$(date +%F-%k%M)"
19  PROFILES_DIR="/usr/lib/mlivecdbuild/profiles"  PROFILES_DIR="/usr/lib/mlivecdbuild/profiles"
20  GLOBAL_PROFILE="${PROFILES_DIR}/global"  GLOBAL_PROFILE="${PROFILES_DIR}/global"
21    
22    # get full path to isolinux.bin, may vary on multilib systems
23    if [[ -f /usr/share/syslinux/isolinux.bin ]]
24    then
25     ISOLINUX_BIN="/usr/share/syslinux/isolinux.bin"
26    elif [[ -f /usr/lib64/mkinitrd/isolinux.bin ]]
27    then
28     ISOLINUX_BIN="/usr/lib64/mkinitrd/isolinux.bin"
29    else
30     ISOLINUX_BIN="/usr/lib/mkinitrd/isolinux.bin"
31    fi
32    
33    if [[ -f /usr/share/syslinux/ldlinux.c32 ]]
34    then
35     LDLINUX_C32="/usr/share/syslinux/ldlinux.c32"
36    else
37     LDLINUX_C32=""
38    fi
39    
40  die() { echo "ERROR: $@"; exit 1; }  die() { echo "ERROR: $@"; exit 1; }
41    
42  # get_profile $filename  # get_profile $filename
# Line 43  bootstrap_system() Line 61  bootstrap_system()
61   --profile "${MAGE_PROFILE}" \   --profile "${MAGE_PROFILE}" \
62   --toolchain "${TOOLCHAIN}" \   --toolchain "${TOOLCHAIN}" \
63   --basesystem "${BASESYSTEM}" \   --basesystem "${BASESYSTEM}" \
64     --update-tarball \
65   || die "bootstrapping toolchain"   || die "bootstrapping toolchain"
66  }  }
67    
# Line 50  custom_services() Line 69  custom_services()
69  {  {
70   local cmd="$1"   local cmd="$1"
71   local services="$2"   local services="$2"
72     local systemdcmd
73    
74   case ${cmd} in   case ${cmd} in
75   add|del|default)   add|del|default|is-enabled)
76   # add given services from profile   # add given services from profile
77   if [[ -n ${services} ]]   if [[ -n ${services} ]]
78   then   then
79   local i   local i
80   for i in ${services}   for i in ${services}
81   do   do
82   MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"   # systemd
83     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
84     then
85     case ${cmd} in
86     add) chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
87     del) chroot ${CDCHROOTDIR} systemctl disable ${i} ;;
88     is-enabled) chroot ${CDCHROOTDIR} systemctl is-enabled ${i} ;;
89     default)
90     # convert targets
91     case ${i} in
92     2|3|multi-user) service="multi-user.target" ;;
93     5|graphical) service="graphical.target" ;;
94     esac
95     chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
96     esac
97     fi
98     # busybox and sysvinit
99     if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]] && [[ ! -x ${CDCHROOTDIR}/bin/systemctl ]]  && [[ ! -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
100     then
101     MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"
102     fi
103   done   done
104   fi   fi
105   ;;   ;;
# Line 102  custom_packages() Line 142  custom_packages()
142   add_initrc "mage ${cmd} ${i} || die ${i}"   add_initrc "mage ${cmd} ${i} || die ${i}"
143   done   done
144   add_initrc "mage clean"   add_initrc "mage clean"
145    
146   # now run the .installrc script   # now run the .installrc script
147   mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc"   mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc"
148   mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys"   mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys"
# Line 137  prepare_iso() Line 177  prepare_iso()
177   echo Preparing LiveCD ISO Image ...   echo Preparing LiveCD ISO Image ...
178    
179   # fixes some issues with xfree/xorg xkb   # fixes some issues with xfree/xorg xkb
180   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] && [[ -d /usr/X11R6/lib/X11/xkb ]]   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] &&
181     [[ -d ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ]]
182   then   then
183   rm ${CDCHROOTDIR}/etc/X11/xkb || die   rm ${CDCHROOTDIR}/etc/X11/xkb || die
184   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die
185   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die
186   fi   fi
187    
188   install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die   # fix issues with >=dracut-014 which drops some default modules like livecd
189     if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
190     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
191     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
192     then
193     install -d ${CDCHROOTDIR}/etc/dracut.conf.d || die
194     echo 'add_dracutmodules+=" dmsquash-live "' > ${CDCHROOTDIR}/etc/dracut.conf.d/02-livecd.conf || die
195     echo 'hostonly="no"' >> ${CDCHROOTDIR}/etc/dracut.conf.d/02-livecd.conf || die
196     fi
197    
198     # only on sysvinit or busybox systems
199     if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
200     then
201     install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die
202     fi
203     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
204     then
205     # check lock group on systemd systems
206     if [[ -z $(chroot ${CDCHROOTDIR} getent group lock) ]]
207     then
208     echo "adding missing group 'lock'"
209     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 54" lock
210     fi
211     # dbus plugdev group
212     if [[ -z $(chroot ${CDCHROOTDIR} getent group plugdev) ]]
213     then
214     echo "adding missing group 'plugdev'"
215     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 302" plugdev
216     fi
217     # dbus messagebus group
218     if [[ -z $(chroot ${CDCHROOTDIR} getent group messagebus) ]]
219     then
220     echo "adding missing group 'messagebus'"
221     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 300" messagebus
222     fi
223     # dbus messagebus user
224     if [[ -z $(chroot ${CDCHROOTDIR} getent passwd messagebus) ]]
225     then
226     echo "adding missing user 'messagebus'"
227     chroot ${CDCHROOTDIR} /usr/lib/mage/museradd -o "-u 300 -g messagebus -d /dev/null -s /bin/false" messagebus
228     fi
229     fi
230   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die
231   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die
232   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die
233   install -m 0644 $(get_profile net.eth0) ${CDCHROOTDIR}/etc/conf.d/net.eth0 || die   install -m 0644 $(get_profile net.eth0) ${CDCHROOTDIR}/etc/conf.d/net.eth0 || die
234   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die
235     install -d ${CDCHROOTDIR}/mnt/magellan || die
236    
237   echo Setting up services ...   echo Setting up services ...
238    
239   # add hardware detection   # install systemd default services
240   MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"   if [[ -x ${CDCHROOTDIR}/bin/systemctl ]]
241     then
242     # install tmpfs /tmp and /var/tmp
243     install -m 0644 $(get_profile tmp.mount) ${CDCHROOTDIR}/lib/systemd/system/ || die
244     install -m 0644 $(get_profile var-tmp.mount) ${CDCHROOTDIR}/lib/systemd/system/ || die
245     # enable them
246     ln -snf ../tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/tmp.mount || die
247     ln -snf ../var-tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
248     fi
249     # newer systemd goes to /usr/lib
250     if [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
251     then
252     # install tmpfs /tmp and /var/tmp
253     install -m 0644 $(get_profile tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
254     install -m 0644 $(get_profile var-tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
255     # enable them
256     ln -snf ../tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/tmp.mount || die
257     ln -snf ../var-tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
258     fi
259    
260     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
261     then
262     install -m 0644 $(get_profile getty) ${CDCHROOTDIR}/etc/conf.d/getty || die
263    
264     custom_services add getty@tty1.service
265     custom_services add remote-fs.target
266     # disable readahead
267     custom_services is-enabled systemd-readahead-replay.service && custom_services del systemd-readahead-replay.service
268     custom_services is-enabled systemd-readahead-collect.service && custom_services del systemd-readahead-collect.service
269     fi
270    
271    # # add hardware detection
272    # if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
273    # then
274    # MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"
275    # fi
276    
277   # del checkfs   # del checkfs
278   MROOT="${CDCHROOTDIR}" rc-config del checkfs || die "rc del checkfs"   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
279     then
280     MROOT="${CDCHROOTDIR}" rc-config del checkfs || die "rc del checkfs"
281     fi
282    
283   # add custom packages   # add custom packages
284   [[ -n ${ADD_PACKAGES} ]] && custom_packages install "${ADD_PACKAGES}"   [[ -n ${ADD_PACKAGES} ]] && custom_packages install "${ADD_PACKAGES}"
# Line 185  prepare_iso() Line 306  prepare_iso()
306   fi   fi
307    
308   echo Cleaning unwanted files ...   echo Cleaning unwanted files ...
309   :> ${CDCHROOTDIR}/etc/mtab || die "whiping /etc/mtab"   # do this only if not a symlink!
310     if [[ ! -L ${CDCHROOTDIR}/etc/mtab ]]
311     then
312     :> ${CDCHROOTDIR}/etc/mtab || die "whiping /etc/mtab"
313     fi
314   [ -f ${CDCHROOTDIR}/root/.bash_history ] && rm ${CDCHROOTDIR}/root/.bash_history   [ -f ${CDCHROOTDIR}/root/.bash_history ] && rm ${CDCHROOTDIR}/root/.bash_history
315  }  }
316    
317  generate_rootfs()  generate_rootfs()
318  {  {
319     local loopdev
320     local size
321    
322     if [ -f ${LIVECDROOT}/loop/LiveOS/ext3fs.img ]
323     then
324     rm ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
325     fi
326     if [ -f ${CDISOROOT}/LiveOS/squashfs.img ]
327     then
328     rm ${CDISOROOT}/LiveOS/squashfs.img
329     fi
330     if [ -f ${CDISOROOT}/livecdrootfs.sqsh ]
331     then
332     rm ${CDISOROOT}/livecdrootfs.sqsh
333     fi
334    
335   echo Generating squashfs compressed rootfs loopfile ...   echo Generating squashfs compressed rootfs loopfile ...
336   mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh #>/dev/null 2>&1   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
337     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
338     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
339     then
340     install -d ${LIVECDROOT}/loop/{LiveOS,mnt} || die
341    
342     # get the actual size of the chroot
343     size=$(du -s ${LIVECDROOT}/chroot | sed 's:^\(.*\)[[:space:]].*:\1:')
344    
345     # generate a ext3fs file for devicemapper
346     dd if=/dev/zero of=${LIVECDROOT}/loop/LiveOS/ext3fs.img bs=1024 count=$(( ${size} + 10 )) || die
347     # create a filesystem
348     mkfs.ext3 -L "_${CDID}_EXT3" -m 1 -b 1024 -F ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
349     # set mount_counts and check_intervals to 0
350     # set dir_index top, to speed up thing with hashed b-trees
351     # allow acls too
352     tune2fs -c0 -i0 -Odir_index -ouser_xattr,acl ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
353    
354     # losetup the device
355     loopdev=$(losetup -f)
356     [[ -z ${loopdev} ]] && die "No unused loopdev found. Maybe you want 'modprobe loop'?"
357    
358     # mount the image
359     losetup ${loopdev} ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
360     mount ${loopdev} ${LIVECDROOT}/loop/mnt || die
361    
362     # copy everything to the image file and preserve permissions
363     ( cd ${CDCHROOTDIR} && tar cpf - . ) | ( cd ${LIVECDROOT}/loop/mnt && tar xvpf - )
364     sleep 3
365    
366     # now umount everything and create the squashfs image
367     umount ${LIVECDROOT}/loop/mnt || die
368     losetup -d ${loopdev} || die
369     # remove mount to not ending up in the squashfs image
370     if [[ -d ${LIVECDROOT}/loop/mnt ]]
371     then
372     rm -r ${LIVECDROOT}/loop/mnt || die
373     fi
374     mksquashfs ${LIVECDROOT}/loop ${LIVECDROOT}/livecdrootfs.sqsh || die
375    
376     # final cleanup
377     if [[ -d ${LIVECDROOT}/loop ]]
378     then
379     rm -r ${LIVECDROOT}/loop || die
380     fi
381     else
382     mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh || die
383     fi
384    
385   echo Moving rootfs loopfile to isoroot ...   echo Moving rootfs loopfile to isoroot ...
386   install -d ${CDISOROOT}   install -d ${CDISOROOT}
387   mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
388     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
389     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
390     then
391     install -d ${CDISOROOT}/LiveOS
392     mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}/LiveOS/squashfs.img
393     else
394     mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}
395     fi
396  }  }
397    
398  install_bootloader()  install_bootloader()
# Line 205  install_bootloader() Line 401  install_bootloader()
401    
402   # iso linux binary   # iso linux binary
403   install -d ${CDISOROOT}/isolinux   install -d ${CDISOROOT}/isolinux
404   install /usr/lib/mkinitrd/isolinux.bin ${CDISOROOT}/isolinux || die   install ${ISOLINUX_BIN} ${CDISOROOT}/isolinux || die
405     if [[ -n ${LDLINUX_C32} ]]
406     then
407     install ${LDLINUX_C32} ${CDISOROOT}/isolinux || die
408     fi
409    
410   # kernel   # kernel
411   local kimg="$(basename $(readlink ${CDCHROOTDIR}/boot/vmlinuz))"   # support kernel installations without symlinks
412     if [ -L ${CDCHROOTDIR}/boot/vmlinuz ]
413     then
414     local kimg="$(basename $(readlink ${CDCHROOTDIR}/boot/vmlinuz))"
415     else
416     local kimg="$(find ${CDCHROOTDIR}/boot -name kernel-\* -printf '%f\n')"
417     fi
418   install ${CDCHROOTDIR}/boot/${kimg} ${CDISOROOT}/isolinux/${CDKERNELNAME} || die   install ${CDCHROOTDIR}/boot/${kimg} ${CDISOROOT}/isolinux/${CDKERNELNAME} || die
419    
420   install -m 0644 $(get_profile isolinux.cfg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile isolinux.cfg) ${CDISOROOT}/isolinux || die
421   install -m 0644 $(get_profile boot.lss) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile boot.lss) ${CDISOROOT}/isolinux || die
422   install -m 0644 $(get_profile boot.msg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile boot.msg) ${CDISOROOT}/isolinux || die
423   install -m 0644 $(get_profile help.msg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile help.msg) ${CDISOROOT}/isolinux || die
424     # support the new layout too
425     if [[ -f $(get_profile index.msg) ]]
426     then
427     install -m 0644 $(get_profile index.msg) ${CDISOROOT}/isolinux || die
428     fi
429     if [[ -f $(get_profile debug.msg) ]]
430     then
431     install -m 0644 $(get_profile debug.msg) ${CDISOROOT}/isolinux || die
432     fi
433    
434   return 0   return 0
435  }  }
# Line 223  generate_initrd() Line 438  generate_initrd()
438  {  {
439   local CHROOTSH="$(mktemp -p ${CDCHROOTDIR})"   local CHROOTSH="$(mktemp -p ${CDCHROOTDIR})"
440    
441     is_loc_mounted "${CDCHROOTDIR}/sys" || mount -t sysfs sysfs ${CDCHROOTDIR}/sys
442     is_loc_mounted "${CDCHROOTDIR}/proc" || mount -t proc proc ${CDCHROOTDIR}/proc
443     is_loc_mounted "${CDCHROOTDIR}/dev" || mount -o bind /dev ${CDCHROOTDIR}/dev
444    
445   echo Generating initrd image ...   echo Generating initrd image ...
446   echo '#!/bin/bash' > ${CHROOTSH} || die   echo '#!/bin/bash' > ${CHROOTSH} || die
447   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die   echo 'export LC_ALL=C' >> ${CHROOTSH} || die
448   echo 'kv="${kv/kernel-}/"' >> ${CHROOTSH} || die   # support kernel installations without symlinks
449   echo 'mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${CHROOTSH} || die   if [ -L ${CDCHROOTDIR}/boot/vmlinuz ]
450     then
451     echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die
452     else
453     echo "kv=\$(find /boot -name kernel-\* -printf '%f\n')" >> ${CHROOTSH} || die
454     fi
455     echo 'kv="${kv/kernel-/}"' >> ${CHROOTSH} || die
456     # prefer dracut
457     echo 'if [[ -x /sbin/dracut ]] || [[ -x /usr/sbin/dracut ]] || [[ -x /usr/bin/dracut ]]' >> ${CHROOTSH} || die
458     echo 'then' >> ${CHROOTSH} || die
459     echo ' dracut -v -f /initrd.gz ${kv}' >> ${CHROOTSH} || die
460     echo 'else' >> ${CHROOTSH} || die
461     echo ' mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${CHROOTSH} || die
462     echo 'fi' >> ${CHROOTSH} || die
463   chmod +x ${CHROOTSH} || die   chmod +x ${CHROOTSH} || die
464   chroot ${CDCHROOTDIR} /$(basename ${CHROOTSH}) || die   chroot ${CDCHROOTDIR} /$(basename ${CHROOTSH}) || die
465   [[ -f ${CHROOTSH} ]] && rm ${CHROOTSH} || die   [[ -f ${CHROOTSH} ]] && rm ${CHROOTSH} || die
466    
467     is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
468     is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
469     is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
470    
471   # move initrd to isoroot   # move initrd to isoroot
472   install -d ${CDISOROOT}/isolinux || die   install -d ${CDISOROOT}/isolinux || die
473   mv ${CDCHROOTDIR}/initrd.gz ${CDISOROOT}/isolinux || die   mv ${CDCHROOTDIR}/initrd.gz ${CDISOROOT}/isolinux || die
# Line 259  generate_iso() Line 495  generate_iso()
495    
496  enter_livecd()  enter_livecd()
497  {  {
498   mount -t sysfs sysfs ${CDCHROOTDIR}/sys   is_loc_mounted "${CDCHROOTDIR}/sys" || mount -t sysfs sysfs ${CDCHROOTDIR}/sys
499   mount -t proc proc ${CDCHROOTDIR}/proc   is_loc_mounted "${CDCHROOTDIR}/proc" || mount -t proc proc ${CDCHROOTDIR}/proc
500   mount -o bind /dev ${CDCHROOTDIR}/dev   is_loc_mounted "${CDCHROOTDIR}/dev" || mount -o bind /dev ${CDCHROOTDIR}/dev
501    
502   chroot ${CDCHROOTDIR} \   chroot ${CDCHROOTDIR} \
503   /usr/bin/env -i \   /usr/bin/env -i \
# Line 273  enter_livecd() Line 509  enter_livecd()
509   no_proxy=${no_proxy} \   no_proxy=${no_proxy} \
510   /bin/bash -i   /bin/bash -i
511    
512   umount ${CDCHROOTDIR}/dev   is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
513   umount ${CDCHROOTDIR}/proc   is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
514   umount ${CDCHROOTDIR}/sys   is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
515    }
516    
517    is_loc_mounted()
518    {
519     local filesys
520     local i
521     filesys=$1
522    
523     i="$(cat /proc/mounts | grep " ${filesys} " | cut -d ' ' -f2)"
524     [[ ${i} != ${filesys} ]] && return 1
525    
526     return 0
527    }
528    
529    trap_exit()
530    {
531     is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
532     is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
533     is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
534  }  }
535    
536  usage()  usage()
# Line 297  usage() Line 552  usage()
552   echo   echo
553  }  }
554    
555    # set some proper traps
556    trap "trap_exit" SIGINT SIGQUIT
557    
558  # source profile config - overrides all other vars  # source profile config - overrides all other vars
559  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config
560    

Legend:
Removed from v.863  
changed lines
  Added in v.3228