--- trunk/installer/include/prepare_fstab.sh 2010/05/30 17:37:33 1020 +++ trunk/installer/include/prepare_fstab.sh 2010/05/30 17:39:27 1021 @@ -1,12 +1,15 @@ #!/bin/bash +# $Id$ + +source include/hwdetection.sh : ${INSTALL_ROOT="/mnt/magellan"} KNOWN_DISKS="ROOT BOOT SWAP HOME TMP USER VAR SVR OPT" # root device -sed -i "s:^/dev/ROOT.*:${PARTITION_DISK_ROOT} / ${PARTITION_FS_ROOT} defaults,noatime 0 0:" ${INSTALL_ROOT}/etc/fstab +sed -i "s:^/dev/ROOT.*:$(get_uuid ${PARTITION_DISK_ROOT})\t/\t\t${PARTITION_FS_ROOT}\t\tdefaults,noatime\t0 0:" ${INSTALL_ROOT}/etc/fstab # swap device -sed -i "s:^/dev/SWAP.*:${PARTITION_DISK_SWAP} swap swap pri=1 0 0:" ${INSTALL_ROOT}/etc/fstab +sed -i "s:^/dev/SWAP.*:$(get_uuid ${PARTITION_DISK_SWAP})\tswap\t\tswap\t\tpri=1\t\t\t0 0:" ${INSTALL_ROOT}/etc/fstab # boot if [[ -z ${PARTITION_DISK_BOOT} ]] @@ -14,7 +17,7 @@ # delete the entry sed -i 's/\/dev\/ROOT.*/d' ${INSTALL_ROOT}/etc/fstab else - sed -i "s:^/dev/BOOT.*:${PARTITION_DISK_BOOT} /boot ${PARTITION_FS_BOOT} noauto,noatime 1 1:" ${INSTALL_ROOT}/etc/fstab + sed -i "s:^/dev/BOOT.*:$(get_uuid ${PARTITION_DISK_BOOT})\t/boot\t\t${PARTITION_FS_BOOT}\t\tnoauto,noatime\t1 1:" ${INSTALL_ROOT}/etc/fstab fi # then all other @@ -31,15 +34,16 @@ esac disk_part=$(eval echo \$PARTITION_DISK_${disk}) + disk_uuid=$(get_uuid ${disk_part}) disk_fs=$(eval echo \$PARTITION_FS_${disk}) if [[ ! -z ${disk_part} ]] then - if [[ -z $(grep ^${disk_part} ${INSTALL_ROOT}/etc/fstab) ]] + if [[ -z $(grep [[:space:]]${dest}[[:space:]] ${INSTALL_ROOT}/etc/fstab) ]] then - echo "${disk_part} ${dest} ${disk_fs} defaults,noatime 0 0" >> ${INSTALL_ROOT}/etc/fstab + echo "${disk_uuid}\t${dest}\t\t${disk_fs}\t\tdefaults,noatime\t0 0" >> ${INSTALL_ROOT}/etc/fstab else - sed -i "s:^${disk_part}.*:${disk_part} ${dest} ${disk_fs} defaults,noatime 0 0:" ${INSTALL_ROOT}/etc/fstab + sed -i "s:.*[[:space:]]${dest}[[:space:]].*:${disk_uuid}\t${dest}\t\t${disk_fs}\t\tdefaults,noatime\t0 0:" ${INSTALL_ROOT}/etc/fstab fi fi done