Conversion de Debian fstab pour utiliser UUID via linux-base?

Nous avons quelques systèmes Debian 5 qui utilisent encore / dev / hda dans le fstab. Nous aimerions les dissimuler à l'aide des UUID. Ceci est supposé être fait automatiquement via le package "linux-base" (postinst), mais pour une raison quelconque, il ne pousse pas (peut-être que quelqu'un l'a déjà couru et il a sauvé de l'état quelque part pour ne pas le faire).

Bien qu'il soit certainement possible de passer à UUID en éditant manuellement un tas de files, il serait utile de l'écrire en quelque sorte. Diverses incantations de debconf et debconf-set-selections ne semblent pas fonctionner.

Donc, fondamentalement, comment peut-on invoquer les scripts fournis par Debian qui font toutes les conversions UUID?

Per Gabor Vincze, le script des forums Ubuntu semble faire un code décent:

#!/bin/bash # This script will change all ensortinges of the form /dev/sd* in /etc/fstab to their appropriate UUID names # You must have root privelages to run this script (use sudo) if [ `id -u` -ne 0 ]; then # Checks to see if script is run as root echo "This script must be run as root" >&2 # If it isn't, exit with error exit 1 fi cp /etc/fstab /etc/fstab.backup sed -n 's|^/dev/\([sh]d[az][0-9]\).*|\1|p' </etc/fstab >/tmp/devices # Stores all /dev ensortinges from fstab into a file while read LINE; do # For each line in /tmp/devices UUID=`ls -l /dev/disk/by-uuid | grep "$LINE" | sed -n 's/^.* \([^ ]*\) -> .*$/\1/p'` # Sets the UUID name for that device sed -i "s|^/dev/${LINE}|UUID=${UUID}|" /etc/fstab # Changes the entry in fstab to UUID form done </tmp/devices cat /etc/fstab # Outputs the new fstab file printf "\n\nWrite changes to /etc/fstab? (y/n) " read RESPONSE; case "$RESPONSE" in [yY]|[yY][eE][sS]) # If answer is yes, keep the changes to /etc/fstab echo "Writing changes to /etc/fstab..." ;; [nN]|[nN][oO]|"") # If answer is no, or if the user just pressed Enter echo "Aborting: Not saving changes..." # don't save the new fstab file cp /etc/fstab.backup /etc/fstab rm /etc/fstab.backup ;; *) # If answer is anything else, exit and don't save changes echo "Invalid Response" # to fstab echo "Exiting" cp /etc/fstab.backup /etc/fstab rm /etc/fstab.backup exit 1 ;; esac rm /tmp/devices echo "DONE!" 

Le script aurait été dans /var/lib/dpkg/info/linux-base.postinst. Vous pouvez le lancer manuellement ou searchr un drapeau «migré» que vous pourriez effacer avant d'appeler dpkg-reconfigure.