Bueno recien tuve la necesidad de cambiar mis bases de datos  de ubicacion fisica ya que la partición donde se encontraba se quedo corta en  espacio y no dejaba iniciar el servicio.
 
Bueno busque mucho y no encontre algo claro, por tanto a partir de la experiencia les dejo mis pasos que segui para lograrlo.
 
Sistema operativo: Debian GNU/Linux
Postgres 8.1
 
1.Detener el servicio postgres con el comando 
/etc/init.d/postgresql-8.1 stop
 
2.nos logueamos como postgres con el comando su - postgres y luego se debe copiar todo el directorio  postgres ubicado en:
 /var/lib  a su nueva ubicacion con el comando cp -Rf /var/lib/postgresql/ /nuevaubicacion/ . Este paso les puede llevar bastante tiempo dependiendo del tamaño de sus bases.
 
3.una vez termine el paso anterior, modificar el archivo postgres.conf ubicado en /etc/postgresql/8.1/main/ alli ubicamos la línea data_directory y la descomentamos, reemplazamos  data_directory='ConfigDir' por algo asi:
 
 data_directory = '/nuevaubicacion/postgresql/8.1/main/', en este caso siempre es bueno hacer una copia del archivo postgres.conf por si debe restituirse.
4.Debemos cambiar el vinculo existente para pgdata para ello vamos a/etc/postgresql/8.1/main/ y renombramos el existente  con el comando mv pgdata pgdataold, luego procedemos a crear el nuevo vinculo con el comando ln -s /nuevaubicacion/postgresql/8.1/main/ pgdata
 
5.por último reiniciamos  el servicio de postgres con el comando /etc/init.d/postgresql-8.1 start.
 
y ya esta:
es posible que al iniciar les de errores, en cuyo caso debe revisar que dentro de la nueva ubicacion todos los directorios de postgresql/8.1/main/ pertenezcan al usuario y grupo postgres, si estan con root bastará con cambiar a cada directorio el dueño con el comando  chown postgres:postgres /directorio.
 
Espero le sirva de ayuda ya que en mi caso  funciono perfecto de esta manera. 
  
 
