home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / lib / partman / finish.d / 40fstab_hd_entries < prev    next >
Encoding:
Text File  |  2009-04-19  |  1.9 KB  |  72 lines

  1. #!/bin/sh
  2.  
  3. . /usr/share/debconf/confmodule
  4.  
  5. [ -f /target/etc/fstab ] || exit 0
  6.  
  7. escape () {
  8.     printf %s "$1" | \
  9.         sed 's/\\/\\134/g; s/ /\\040/g; s/    /\\011/g; s/\n/\\012/g'
  10. }
  11.  
  12. # dev, mountpoint, type, options, dump, pass
  13. addfstab () {
  14.     printf "%-15s %-15s %-7s %-15s %-7s %s\n" \
  15.         "$(escape "$1")" "$(escape "$2")" \
  16.         "$(escape "$3")" "$(escape "$4")" \
  17.         "$5" "$6"
  18. }
  19.  
  20. db_get partman/mount_style
  21. style="$RET"
  22.  
  23. fstab=$(
  24.     for i in /lib/partman/fstab.d/*; do
  25.         [ -x "$i" ] || continue
  26.         $i
  27.     done |
  28.     while read fs mp type options dump pass; do
  29.         echo $mp $fs $type $options $dump $pass
  30.     done |
  31.     sort |
  32.     while read mp fs type options dump pass; do
  33.         case "$fs" in
  34.             (/dev/disk/*|/dev/fd[0-9]*|/dev/mapper/*_crypt)
  35.             addfstab "$(mapdevfs $fs)" "${mp}" "$type" "$options" "$dump" "$pass"
  36.             ;;
  37.             (/*)
  38.             dev="/var/lib/partman/devices/$(echo "$fs" | sed 's:/:=:g')"
  39.             if [ -f "$dev/loop" ]; then
  40.                 loop="$(cat "$dev/loop")"
  41.                 if [ "$options" = defaults ]; then
  42.                     options=loop
  43.                 else
  44.                     options="loop,$options"
  45.                 fi
  46.                 addfstab "$loop" "${mp}" "$type" "$options" "$dump" "$pass"
  47.             else
  48.                 case "$mp" in
  49.                     (/*)    desc="$mp" ;;
  50.                     (*)        desc="$type" ;;
  51.                 esac
  52.                 if [ "$style" = label ] && \
  53.                    label="$(PATH="/lib/udev:$PATH" vol_id -l $fs)" && \
  54.                    [ "$label" ]; then
  55.                     printf "# %s was on %s during installation\n" "$desc" "$(mapdevfs $fs)"
  56.                     addfstab "LABEL=$label" "${mp}" "$type" "$options" "$dump" "$pass"
  57.                 elif ([ "$style" = label ] || [ "$style" = uuid ]) && \
  58.                      uuid="$(PATH="/lib/udev:$PATH" vol_id -u $fs)" && \
  59.                      [ "$uuid" ]; then
  60.                     printf "# %s was on %s during installation\n" "$desc" "$(mapdevfs $fs)"
  61.                     addfstab "UUID=$uuid" "${mp}" "$type" "$options" "$dump" "$pass"
  62.                 else
  63.                     addfstab "$(mapdevfs $fs)" "${mp}" "$type" "$options" "$dump" "$pass"
  64.                 fi
  65.             fi
  66.             ;;
  67.         esac
  68.     done
  69. )
  70.  
  71. echo "$fstab" >>/target/etc/fstab
  72.