Magellan Linux

Diff of /branches/mlivecdbuild-1_x_branch/mlivecdbuild2.sh

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

trunk/mlivecdbuild/mlivecdbuild2.sh revision 713 by niro, Thu Apr 10 20:52:33 2008 UTC branches/mlivecdbuild-1_x_branch/mlivecdbuild2.sh revision 2679 by niro, Thu Jul 10 07:42:40 2014 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  die() { echo "ERROR: $@"; exit 1; }  die() { echo "ERROR: $@"; exit 1; }
34    
35  # get_profile $filename  # get_profile $filename
# Line 43  bootstrap_system() Line 54  bootstrap_system()
54   --profile "${MAGE_PROFILE}" \   --profile "${MAGE_PROFILE}" \
55   --toolchain "${TOOLCHAIN}" \   --toolchain "${TOOLCHAIN}" \
56   --basesystem "${BASESYSTEM}" \   --basesystem "${BASESYSTEM}" \
57     --update-tarball \
58   || die "bootstrapping toolchain"   || die "bootstrapping toolchain"
59  }  }
60    
# Line 50  custom_services() Line 62  custom_services()
62  {  {
63   local cmd="$1"   local cmd="$1"
64   local services="$2"   local services="$2"
65     local systemdcmd
66    
67   case ${cmd} in   case ${cmd} in
68   add|del|default)   add|del|default|is-enabled)
69   # add given services from profile   # add given services from profile
70   if [[ -n ${services} ]]   if [[ -n ${services} ]]
71   then   then
72   local i   local i
73   for i in ${services}   for i in ${services}
74   do   do
75   MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"   # systemd
76     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
77     then
78     case ${cmd} in
79     add) chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
80     del) chroot ${CDCHROOTDIR} systemctl disable ${i} ;;
81     is-enabled) chroot ${CDCHROOTDIR} systemctl is-enabled ${i} ;;
82     default)
83     # convert targets
84     case ${i} in
85     2|3|multi-user) service="multi-user.target" ;;
86     5|graphical) service="graphical.target" ;;
87     esac
88     chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
89     esac
90     fi
91     # busybox and sysvinit
92     if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]] && [[ ! -x ${CDCHROOTDIR}/bin/systemctl ]]  && [[ ! -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
93     then
94     MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"
95     fi
96   done   done
97   fi   fi
98   ;;   ;;
# Line 94  custom_packages() Line 127  custom_packages()
127    
128   # do not auto-start any services!   # do not auto-start any services!
129   add_initrc "export MAGE_BOOTSTRAP=true"   add_initrc "export MAGE_BOOTSTRAP=true"
130     add_initrc 'die() { if [ $? -eq 1 ]; then echo "ERROR: $@"; exit 1; fi; }'
131    
132   local i   local i
133   for i in ${packages}   for i in ${packages}
134   do   do
135   add_initrc "mage ${cmd} ${i}"   add_initrc "mage ${cmd} ${i} || die ${i}"
136   done   done
137   add_initrc "mage clean"   add_initrc "mage clean"
138    
# Line 136  prepare_iso() Line 170  prepare_iso()
170   echo Preparing LiveCD ISO Image ...   echo Preparing LiveCD ISO Image ...
171    
172   # fixes some issues with xfree/xorg xkb   # fixes some issues with xfree/xorg xkb
173   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] && [[ -d /usr/X11R6/lib/X11/xkb ]]   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] &&
174     [[ -d ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ]]
175   then   then
176   rm ${CDCHROOTDIR}/etc/X11/xkb || die   rm ${CDCHROOTDIR}/etc/X11/xkb || die
177   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die
178   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die
179   fi   fi
180    
181   install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die   # fix issues with >=dracut-014 which drops some default modules like livecd
182     if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
183     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
184     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
185     then
186     install -d ${CDCHROOTDIR}/etc/dracut.conf.d || die
187     echo 'add_dracutmodules+=" dmsquash-live "' \
188     > ${CDCHROOTDIR}/etc/dracut.conf.d/02-livecd.conf || die
189     fi
190    
191     # only on sysvinit or busybox systems
192     if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
193     then
194     install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die
195     fi
196     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
197     then
198     # check lock group on systemd systems
199     if [[ -z $(chroot ${CDCHROOTDIR} getent group lock) ]]
200     then
201     echo "adding missing group 'lock'"
202     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 54" lock
203     fi
204     # dbus plugdev group
205     if [[ -z $(chroot ${CDCHROOTDIR} getent group plugdev) ]]
206     then
207     echo "adding missing group 'plugdev'"
208     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 302" plugdev
209     fi
210     # dbus messagebus group
211     if [[ -z $(chroot ${CDCHROOTDIR} getent group messagebus) ]]
212     then
213     echo "adding missing group 'messagebus'"
214     chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 300" messagebus
215     fi
216     # dbus messagebus user
217     if [[ -z $(chroot ${CDCHROOTDIR} getent passwd messagebus) ]]
218     then
219     echo "adding missing user 'messagebus'"
220     chroot ${CDCHROOTDIR} /usr/lib/mage/museradd -o "-u 300 -g messagebus -d /dev/null -s /bin/false" messagebus
221     fi
222     fi
223   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die
224   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die
225   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die
226   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
227   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die
228     install -d ${CDCHROOTDIR}/mnt/magellan || die
229    
230   echo Setting up services ...   echo Setting up services ...
231    
232   # add hardware detection   # install systemd default services
233   MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"   if [[ -x ${CDCHROOTDIR}/bin/systemctl ]]
234     then
235     # install tmpfs /tmp and /var/tmp
236     install -m 0644 $(get_profile tmp.mount) ${CDCHROOTDIR}/lib/systemd/system/ || die
237     install -m 0644 $(get_profile var-tmp.mount) ${CDCHROOTDIR}/lib/systemd/system/ || die
238     # enable them
239     ln -snf ../tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/tmp.mount || die
240     ln -snf ../var-tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
241     fi
242     # newer systemd goes to /usr/lib
243     if [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
244     then
245     # install tmpfs /tmp and /var/tmp
246     install -m 0644 $(get_profile tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
247     install -m 0644 $(get_profile var-tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
248     # enable them
249     ln -snf ../tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/tmp.mount || die
250     ln -snf ../var-tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
251     fi
252    
253     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
254     then
255     install -m 0644 $(get_profile getty) ${CDCHROOTDIR}/etc/conf.d/getty || die
256    
257     custom_services add getty@tty1.service
258     custom_services add remote-fs.target
259     # disable readahead
260     custom_services is-enabled systemd-readahead-replay.service && custom_services del systemd-readahead-replay.service
261     custom_services is-enabled systemd-readahead-collect.service && custom_services del systemd-readahead-collect.service
262     fi
263    
264    # # add hardware detection
265    # if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
266    # then
267    # MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"
268    # fi
269    
270   # del checkfs   # del checkfs
271   MROOT="${CDCHROOTDIR}" rc-config del checkfs || die "rc del checkfs"   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
272     then
273     MROOT="${CDCHROOTDIR}" rc-config del checkfs || die "rc del checkfs"
274     fi
275    
276   # add custom packages   # add custom packages
277   [[ -n ${ADD_PACKAGES} ]] && custom_packages install "${ADD_PACKAGES}"   [[ -n ${ADD_PACKAGES} ]] && custom_packages install "${ADD_PACKAGES}"
# Line 184  prepare_iso() Line 299  prepare_iso()
299   fi   fi
300    
301   echo Cleaning unwanted files ...   echo Cleaning unwanted files ...
302   :> ${CDCHROOTDIR}/etc/mtab || die "whiping /etc/mtab"   # do this only if not a symlink!
303     if [[ ! -L ${CDCHROOTDIR}/etc/mtab ]]
304     then
305     :> ${CDCHROOTDIR}/etc/mtab || die "whiping /etc/mtab"
306     fi
307   [ -f ${CDCHROOTDIR}/root/.bash_history ] && rm ${CDCHROOTDIR}/root/.bash_history   [ -f ${CDCHROOTDIR}/root/.bash_history ] && rm ${CDCHROOTDIR}/root/.bash_history
308  }  }
309    
310  generate_rootfs()  generate_rootfs()
311  {  {
312     local loopdev
313     local size
314    
315     if [ -f ${LIVECDROOT}/loop/LiveOS/ext3fs.img ]
316     then
317     rm ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
318     fi
319     if [ -f ${CDISOROOT}/LiveOS/squashfs.img ]
320     then
321     rm ${CDISOROOT}/LiveOS/squashfs.img
322     fi
323     if [ -f ${CDISOROOT}/livecdrootfs.sqsh ]
324     then
325     rm ${CDISOROOT}/livecdrootfs.sqsh
326     fi
327    
328   echo Generating squashfs compressed rootfs loopfile ...   echo Generating squashfs compressed rootfs loopfile ...
329   mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh #>/dev/null 2>&1   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
330     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
331     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
332     then
333     install -d ${LIVECDROOT}/loop/{LiveOS,mnt} || die
334    
335     # get the actual size of the chroot
336     size=$(du -s ${LIVECDROOT}/chroot | sed 's:^\(.*\)[[:space:]].*:\1:')
337    
338     # generate a ext3fs file for devicemapper
339     dd if=/dev/zero of=${LIVECDROOT}/loop/LiveOS/ext3fs.img bs=1024 count=$(( ${size} + 10 )) || die
340     # create a filesystem
341     mkfs.ext3 -L "_${CDID}_EXT3" -m 1 -b 1024 -F ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
342     # set mount_counts and check_intervals to 0
343     # set dir_index top, to speed up thing with hashed b-trees
344     # allow acls too
345     tune2fs -c0 -i0 -Odir_index -ouser_xattr,acl ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
346    
347     # losetup the device
348     loopdev=$(losetup -f)
349     [[ -z ${loopdev} ]] && die "No unused loopdev found. Maybe you want 'modprobe loop'?"
350    
351     # mount the image
352     losetup ${loopdev} ${LIVECDROOT}/loop/LiveOS/ext3fs.img || die
353     mount ${loopdev} ${LIVECDROOT}/loop/mnt || die
354    
355     # copy everything to the image file and preserve permissions
356     ( cd ${CDCHROOTDIR} && tar cpf - . ) | ( cd ${LIVECDROOT}/loop/mnt && tar xvpf - )
357     sleep 3
358    
359     # now umount everything and create the squashfs image
360     umount ${LIVECDROOT}/loop/mnt || die
361     losetup -d ${loopdev} || die
362     # remove mount to not ending up in the squashfs image
363     if [[ -d ${LIVECDROOT}/loop/mnt ]]
364     then
365     rm -r ${LIVECDROOT}/loop/mnt || die
366     fi
367     mksquashfs ${LIVECDROOT}/loop ${LIVECDROOT}/livecdrootfs.sqsh || die
368    
369     # final cleanup
370     if [[ -d ${LIVECDROOT}/loop ]]
371     then
372     rm -r ${LIVECDROOT}/loop || die
373     fi
374     else
375     mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh || die
376     fi
377    
378   echo Moving rootfs loopfile to isoroot ...   echo Moving rootfs loopfile to isoroot ...
379   install -d ${CDISOROOT}   install -d ${CDISOROOT}
380   mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
381     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
382     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
383     then
384     install -d ${CDISOROOT}/LiveOS
385     mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}/LiveOS/squashfs.img
386     else
387     mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}
388     fi
389  }  }
390    
391  install_bootloader()  install_bootloader()
# Line 204  install_bootloader() Line 394  install_bootloader()
394    
395   # iso linux binary   # iso linux binary
396   install -d ${CDISOROOT}/isolinux   install -d ${CDISOROOT}/isolinux
397   install /usr/lib/mkinitrd/isolinux.bin ${CDISOROOT}/isolinux || die   install ${ISOLINUX_BIN} ${CDISOROOT}/isolinux || die
398    
399   # kernel   # kernel
400   local kimg="$(basename $(readlink ${CDCHROOTDIR}/boot/vmlinuz))"   # support kernel installations without symlinks
401     if [ -L ${CDCHROOTDIR}/boot/vmlinuz ]
402     then
403     local kimg="$(basename $(readlink ${CDCHROOTDIR}/boot/vmlinuz))"
404     else
405     local kimg="$(find ${CDCHROOTDIR}/boot -name kernel-\* -printf '%f\n')"
406     fi
407   install ${CDCHROOTDIR}/boot/${kimg} ${CDISOROOT}/isolinux/${CDKERNELNAME} || die   install ${CDCHROOTDIR}/boot/${kimg} ${CDISOROOT}/isolinux/${CDKERNELNAME} || die
408    
409   install -m 0644 $(get_profile isolinux.cfg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile isolinux.cfg) ${CDISOROOT}/isolinux || die
410   install -m 0644 $(get_profile boot.lss) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile boot.lss) ${CDISOROOT}/isolinux || die
411   install -m 0644 $(get_profile boot.msg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile boot.msg) ${CDISOROOT}/isolinux || die
412   install -m 0644 $(get_profile help.msg) ${CDISOROOT}/isolinux || die   install -m 0644 $(get_profile help.msg) ${CDISOROOT}/isolinux || die
413     # support the new layout too
414     if [[ -f $(get_profile index.msg) ]]
415     then
416     install -m 0644 $(get_profile index.msg) ${CDISOROOT}/isolinux || die
417     fi
418     if [[ -f $(get_profile debug.msg) ]]
419     then
420     install -m 0644 $(get_profile debug.msg) ${CDISOROOT}/isolinux || die
421     fi
422    
423   return 0   return 0
424  }  }
# Line 222  generate_initrd() Line 427  generate_initrd()
427  {  {
428   local CHROOTSH="$(mktemp -p ${CDCHROOTDIR})"   local CHROOTSH="$(mktemp -p ${CDCHROOTDIR})"
429    
430     is_loc_mounted "${CDCHROOTDIR}/sys" || mount -t sysfs sysfs ${CDCHROOTDIR}/sys
431     is_loc_mounted "${CDCHROOTDIR}/proc" || mount -t proc proc ${CDCHROOTDIR}/proc
432     is_loc_mounted "${CDCHROOTDIR}/dev" || mount -o bind /dev ${CDCHROOTDIR}/dev
433    
434   echo Generating initrd image ...   echo Generating initrd image ...
435   echo '#!/bin/bash' > ${CHROOTSH} || die   echo '#!/bin/bash' > ${CHROOTSH} || die
436   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die   echo 'export LC_ALL=C' >> ${CHROOTSH} || die
437   echo 'kv="${kv/kernel-}/"' >> ${CHROOTSH} || die   # support kernel installations without symlinks
438   echo 'mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${CHROOTSH} || die   if [ -L ${CDCHROOTDIR}/boot/vmlinuz ]
439     then
440     echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die
441     else
442     echo "kv=\$(find /boot -name kernel-\* -printf '%f\n')" >> ${CHROOTSH} || die
443     fi
444     echo 'kv="${kv/kernel-/}"' >> ${CHROOTSH} || die
445     # prefer dracut
446     echo 'if [[ -x /sbin/dracut ]] || [[ -x /usr/sbin/dracut ]] || [[ -x /usr/bin/dracut ]]' >> ${CHROOTSH} || die
447     echo 'then' >> ${CHROOTSH} || die
448     echo ' dracut -v -f /initrd.gz ${kv}' >> ${CHROOTSH} || die
449     echo 'else' >> ${CHROOTSH} || die
450     echo ' mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${CHROOTSH} || die
451     echo 'fi' >> ${CHROOTSH} || die
452   chmod +x ${CHROOTSH} || die   chmod +x ${CHROOTSH} || die
453   chroot ${CDCHROOTDIR} /$(basename ${CHROOTSH}) || die   chroot ${CDCHROOTDIR} /$(basename ${CHROOTSH}) || die
454   [[ -f ${CHROOTSH} ]] && rm ${CHROOTSH} || die   [[ -f ${CHROOTSH} ]] && rm ${CHROOTSH} || die
455    
456     is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
457     is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
458     is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
459    
460   # move initrd to isoroot   # move initrd to isoroot
461   install -d ${CDISOROOT}/isolinux || die   install -d ${CDISOROOT}/isolinux || die
462   mv ${CDCHROOTDIR}/initrd.gz ${CDISOROOT}/isolinux || die   mv ${CDCHROOTDIR}/initrd.gz ${CDISOROOT}/isolinux || die
# Line 258  generate_iso() Line 484  generate_iso()
484    
485  enter_livecd()  enter_livecd()
486  {  {
487   mount -t sysfs sysfs ${CDCHROOTDIR}/sys   is_loc_mounted "${CDCHROOTDIR}/sys" || mount -t sysfs sysfs ${CDCHROOTDIR}/sys
488   mount -t proc proc ${CDCHROOTDIR}/proc   is_loc_mounted "${CDCHROOTDIR}/proc" || mount -t proc proc ${CDCHROOTDIR}/proc
489   mount -o bind /dev ${CDCHROOTDIR}/dev   is_loc_mounted "${CDCHROOTDIR}/dev" || mount -o bind /dev ${CDCHROOTDIR}/dev
490    
491   chroot ${CDCHROOTDIR} \   chroot ${CDCHROOTDIR} \
492   /usr/bin/env -i \   /usr/bin/env -i \
# Line 272  enter_livecd() Line 498  enter_livecd()
498   no_proxy=${no_proxy} \   no_proxy=${no_proxy} \
499   /bin/bash -i   /bin/bash -i
500    
501   umount ${CDCHROOTDIR}/dev   is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
502   umount ${CDCHROOTDIR}/proc   is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
503   umount ${CDCHROOTDIR}/sys   is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
504    }
505    
506    is_loc_mounted()
507    {
508     local filesys
509     local i
510     filesys=$1
511    
512     i="$(cat /proc/mounts | grep " ${filesys} " | cut -d ' ' -f2)"
513     [[ ${i} != ${filesys} ]] && return 1
514    
515     return 0
516    }
517    
518    trap_exit()
519    {
520     is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev
521     is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc
522     is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys
523  }  }
524    
525  usage()  usage()
# Line 296  usage() Line 541  usage()
541   echo   echo
542  }  }
543    
544    # set some proper traps
545    trap "trap_exit" SIGINT SIGQUIT
546    
547  # source profile config - overrides all other vars  # source profile config - overrides all other vars
548  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config
549    

Legend:
Removed from v.713  
changed lines
  Added in v.2679