Comprobado en Suse 9.3 y funcionando… lo acabo de implementar después de estar toda la noche buscando lo que a continuación os trascribo en forma de minimalista tutorial y extraído de KDE-Hispano. Es sabido ya por la comunidad o GuSE que con los nuevos kernel y la ausencia de actualizaciones de la herramienta captive se ha vuelto bastante complicado el poder implementarlo o tenerlo actualizado. Me he pasado como decía, hasta el amanecer (precioso por cierto después de la lluvia refrescante) para hacerlo correr en mi SuSE 9.3 una vez reiniciada mi máquina comprobando que en /mnt monté correctamente las particiónes que tengo en windows, consiguirendo copiar y editar archivos con total inmunidad.

Vanos pues al tajo
Abrimos la consola o el navegador y nos bajamos el siguiente archivo:
captive-static-1.1.5-0.i386.rpm

A través ya de consola, como administrador o root haces lo restante:

  • Instalar el paquete .rpm.
  • Comentar la linea antigua de ntfs en el archivo /etc/fstab/ (ahí lo tengo yo). En la nueva cambiar los parámetros por estos: users,gid=users. Esto permite que se monte al cargar el sistema y los usuarios puedan escribir.
  • Ejecutar captive-install-acquire: Busca los controladores necesarios en las particiones. Si no los encuentra descarga el Service Pack correspondiente de windows y los instala aunque según parece es algo tedioso el tener que hacerlo a través del servidor de descarga de MC$0FT.
  • Es necesario tener instalado el código fuente del kernel.

Lo siguiente es debido a un problema de rutas en SuSE (información sobre este problema aquí), adaptar la ruta del nombre del kernel (la última versión instalada) en cada caso.

rm /lib/modules/2.6.11.4-21.9-default/build
ln -s /usr/src/linux-2.6.11.4-21.9/lib/modules/2.6.11.4-21.9-default/build

Si Windows XP está actualizado en el momento de estar trabajando en el con un SP2, la utilidad Captive no funcionará ya que necesitamos los archivos de WXP SP1: ntoskrnl.exe, ntfs.sys. y opcionalmente fastfat.sys, cdfs.sys. Puedes conseguirlos todos en el mismo paquete bajando el Service Pack 1.

Seguidamente, modificaremos el archivo /usr/src/linux/kernel/signal.c
y antes de los #ifdef deberemos de agregar la siguiente línea:

EXPORT_SYMBOL(kill_proc_info);

Ir luego al directorio /usr/src/linux y ejecutar dentro de el:

make cloneconfig
make prepare-all
make bzImage
INSTALL_PATH=/boot make install
make modules
make modules_install

Este proceso puede o debe de tardar bastante, en mi caso ha sido razonable. Una vez terminado, reinicia el sistema escogiendo el nuevo kernel que observarás en GRUB para montar inmediatamente la partición o particiones como ha sido en mi caso.

Es bastante lento y hasta incluso algo tedioso y estresante en un par de momentos por lo menos en mi caso, pero mejor ahora si que ya no reiniciaré para continuar migrando archivos o datos de windows a linux. El único ‘pero’ que le podemos achacar es que cada vez que se actualice el kernel deberemos repetir el proceso para crear el módulo para la nueva versión kernel.