Migré mi partición de documentos de NTFS a HFS+

En esté post documenté como tener 3 sistemas operativos en un Macbook. El objetivo era tener los 3 sistemas operativos de forma independiente, y además contar con una partición donde almacenar los documentos con los cuales trabajar entre los 3 sistemas.

Esta partición, obviamente, requiere que podamos tener permisos de lectura y escritura a la vez, soportados en los 3 sistemas.

En esa ocasión consideré varias opciones [1], entre ellas: FAT32, NTFS, EXT3, HFS+. Por la experiencia que tenía hasta el momento, escogí NTFS. Sin embargo, en los últimos días, a prueba y error,me di cuenta por descarte que varios problemas que tenía en MacOSX eran por culpa de mi partición de documentos en NTFS.

Hace poco investigué, probé y logré echar a andar el mismo esquema de particiones, pero esta vez usando HFS+ como formato de mi partición de documentos. A continuación el como:

Paso 0: Respaldar

Por fortuna tengo un disco externo grandote 😛

Ahí copie TODO lo que tenía en la partición de Documentos. Si usted NO respalda, no llore después.

Paso 1: Formatear

Decidí usar HFS+. Investigando logré dar con la siguiente información:

HFS+ es el formato nativo en Mac OS X, por lo tanto no reviste mayo análisis.

En Linux, hay soporte oficial dentro del kernel, PERO no completamente. Cuando la partición tiene habilitado el sistema de Journaling, Linux monta el volumen como solo-lectura. El journaling es una mecanismo importante y deseable, pero para efectos prácticos, para un usuario corriente y procesos normales, prescindible. En un entorno de servidores, sobre todo los que manejan muchos datos concurrentemente, alta disponibilidad y recuperación ante fallos, no se puede dejar de usar journaling.

Decidí prescindir del journaling para ganar la característica de lectura-escritura en multiples sistemas operativos.

Para formatear en HFS+, basta abrir la Utilidad de Disco, seleccionar la partición, en la pestaña «Borrar», seleccionar «Mac OS Plus, con registro» (da lo mismo cual variantes, acá escoger). Finalmente darle click al botón [Borrar].

Por último, es necesario deshabilitar el journaling (registro) de la partición nueva, esto se hace abriendo un Terminal y aplicando el siguiente comando:

$ sudo /usr/sbin/diskutil disableJournal /Volumes/Documentos # reemplazar «Documentos» con el nombre del volumen (obviamente).

El montaje en Mac OS X es automático dado que es HFS+ es su formato nativo, por lo tanto no requiere ningún esfuerzo.

Paso 2: HFS+ para Windows

Reiniciar el sistema y arrancar Windows.

Para Windows, existen al menos 2 drivers propietarios que dan soporte a HFS+. Uno es «Paragon HFS+ for Windows» y el otro es MacDrive. Paragon HFS+ parecia bueno, pero no hizo otra cosa más que problemas. Una versión anterior a la última efectivamente montaba bien los volumenes HFS+, pero de cuando en cuando se congelaba transfiriendo archivos, además de montar los volumenes DESPUÉS de iniciado el escritorio (no me sirve). La última versión fue peor, me causaba cuelgues completos del sistema BSOD y me fue imposible desinstalarlo. El paso «2.1» para mí fue reinstalar Windows, todas las aplicaciones y probar MacDrive.

Finalmente fue MacDrive los que funcionó perfectamente. Monta los documentos más o menos al momento de cargado el escritorio, por lo tanto mis enlaces simbólicos y aplicaciones que usan directorios de mi partición de documentos al iniciar (dropbox por ejemplo) no reclamaban problemas de lectura.

El único efecto secundario que percibí fue que al reiniciar, me aparece el diálogo que windows muestra cuando uno pone un dispositivo extraible (cd/pendrive/…). Por fortuna eso se puede deshabilitar sin causar mayor inconveniente.

Cabe destacar que estoy usando Windows 7 para 64 bits. Otro punto no menor es que no tiene ningún problema al ser instalado junto con Bootcamp.

¿Donde se consigue MacDrive? Problema suyo. :B

Paso 3: HFS+ para Linux

Arrancar Linux. Ahora mi problema puntual acá fue que para el truco de utilizar 3 sistemas en el macbook teniendo 5 particiones (efi+mac+documentos+windows+linux) requiere instalar Grub en la partición de documentos, al formatear la partición de Documentos perdí también el Grub. Eso me impidió arrancar con Linux directamente. Por otro lado, me fue imposible reinstalar grub en la partición, dado que por alguna razón, Grub 2 manda un error cuando uno instala a propósito en un partición y no en el MBR como habitualmente.

El error es algo así:

grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged.
Installation finished. No error reported.

De hecho, el error en mi máquina sale en español así:

gon@hope:~$ sudo grub-install /dev/sda3 /usr/sbin/grub-setup: aviso: Intentando instalar GRUB en un disco sin particiones o en una partición. Es una MALA idea.. /usr/sbin/grub-setup: aviso: No es posible empotrar. GRUB sólo se puede instalar en esta configuración mediante el uso de listas de bloques. Sin embargo, las listas de bloques no son confiables y su uso no es recomendable.. /usr/sbin/grub-setup: error: will not proceed with blocklists.

No pude resolver eso, si alguien conoce la solución POR FAVOR hacérmela llegar. Por lo tanto, tuve que aplicar 2 pasos previos:

  1. Respaldar el /home (porque lo tenía en la misma partición de Linux)
  2. Reinstalar Linux.

Por fortuna las instalaciones de Linux duran poco, como he comprobado en prácticamente todas las instalaciones limpias de Ubuntu que he hecho.

Un detalle que cabe destacar es que el instalador de Ubuntu no permite montar particiones HFS+ en el paso de particionamiento manual, en cambio ofrece cambiarle el formato a la partición a cualquiera otro de los «conocidos» en Linux. Por lo tanto, el montaje de mi partición de documentos lo dejé para después.

Una vez que el sistema esta andando normalmente, abrimos un terminal donde se deben aplicar los cambios para el montaje de nuestra partición:

Primero hay que averiguar cual es el UUID de la partición. Personalmente, comprobé que fdisk tiene el mismo problema de la restricción de las 4 particiones, por lo tanto no puede ver la quinta. Yo ya sabía que la partición que deje para documentos era la /dev/sda3 por lo tanto busque su UUID así:

$ ls -Alh /dev/disk/by-uuid

Resultado:

gon@hope:~$ ls -Alh /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 32F0948DF0945945 -> ../../sda4
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 37446c7c-496f-3dc9-8053-3bd2f567ccb9 -> ../../sda3
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 70D6-1701 -> ../../sda1
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 7d659753-a8df-3716-84f1-4e65cf31734d -> ../../sda2
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 f7504ad1-20f7-49b0-be6a-1e5308ccc1f2 -> ../../sda5
lrwxrwxrwx 1 root root 10 2011-08-07 19:30 f88c0e39-effa-4f18-a2f3-b5672dbede1e -> ../../sda6

Entonces la linea del /etc/fstab para el montaje debe quedar así (en mi caso):

UUID=37446c7c-496f-3dc9-8053-3bd2f567ccb9 /documentos   hfsplus rw,exec,auto,users 0 0

Finalmente montamos así:

$ mount /documentos

Y ya debería estar listo. Al siguiente reinicio se auto-montará.

Ahora nos podemos topar con otro inconveniente. HFS+ Es un sistema que admite Permisos UNIX, por lo tanto, si ya se utilizó la partición en Mac OS X o Windows, es posible que los archivos tengan problema de permisos y no dejen leer o escribir por eso. Por ello, el siguiente paso es homologar la identidad del usuario entre sistemas (al menos entre Linux y Mac porque Windows NO TIENE ni soporta permisos UNIX).

PASO 4: Homologar permisos

Cada usuario y grupo, en un sistema tipo UNIX, tiene un número de identidad.

La idea es hacer calzar esos números de identidad, con ello logramos identificarnos (contra los archivos) como el mismo usuario en los Mac OS X y Linux.

Macdrive por defecto creó los directorios y archivos como usuario «root» y grupo «staff» (desde el punto de vista de Mac OS X.

Para obtener los números de identificación del usuario actual y sus grupos, en sistemas tipo UNIX, se usan el comando id.

En Mac OS X:

hope:~ gon$ id gon
uid=501(gon) gid=20(staff) groups=20(staff),401(com.apple.access_screensharing),402(com.apple.sharepoint.group.1),12(everyone),33(_appstore),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),100(_lpoperator),204(_developer),403(com.apple.sharepoint.group.2)

Mi usuario «gon» tiene la identidad (uid) número 501. El grupo staff tiene el gid número 20.

En Ubuntu:

gon@hope:~$ id
uid=1000(gon) gid=1000(gon) grupos=1000(gon),4(adm),20(dialout),24(cdrom),46(plugdev),112(lpadmin),120(admin),122(sambashare)

Mi usuario «gon» tiene la identidad (uid) número 1000. El grupo que calza con el identificador de grupo (gid) 20 en Ubuntu es «dialup».

 

Decidí entonces cambiar el identificador de usuario de Mac OS X del 501 al 1000. Pero ANTES de hacer esto, cabe recordar una consecuencia: Los archivos del home quedarán con permisos cambiados, por lo tanto podrían quedar inaccesibles por un momento. Además recomiendo hacer esto como otro usuario, ya que mientras se está cambiando de identidad, no se puede usar sudo.

Entonces, se abre un Terminal en MacOS X y nos cambiamos a root:

$ sudo su

Luego se hace el cambio de identidad y ajuste de permisos:

# dscl . -change /Users/gon UniqueID 501 1000 # reemplazar "gon" con el nombre del usuario

# chown -R 1000 /Users/gon # reemplazar "gon" con el nombre del usuario

Con esto tenemos el usuario cambiado y los archivos del home con el propietario correcto.

Ahora, otra consecuencia es que algunas aplicaciones no se instalan con propietario root, sino como el usuario corriente. Por lo tanto esas aplicaciones también requiere que se le aplique chown una por una.

 

PASO 4.1: Homologar permisos de documentos

Estoy en eso ahora… en el fondo se basa en la misma idea que el paso anterior, usando combinaciones entre chown y chmod.

Solo que por ahora no he terminado de ver que efectos tiene cambiar los permisos cuando luego vamos a Windows y se accede a los archivos con MacDrive. Al menos el efecto inmediato que he visto es que los archivos se crean por defecto con propietario root (uid=1) y grupo staff (gid=20).

De hecho, aun habiendo cambiado correctamente algunos permisos, mi carpeta Dropbox no puede sincronizar algunos archivos cuando cambié de Mac OS X a Linux.

Por lo tanto este paso queda pendiente.

En general, si se sigue teniendo problemas, sugiero cambiarle el propietario a todo /documentos así:

sudo chown -R gon.gon /documentos #reemplazar gon con el nombre del usuario ¬¬

 

Sistemas de archivos RW multi-plataforma

  • FAT32, usado prácticamente en casi todo dispositivo extraible: pendrives, memorias flash, teléfonos, etc. El problema es que NO SOPORTA permisos UNIX, NO SOPORTA rutas muy largas para los nombres de archivos, NO SOPORTA archivos de más de 4gb (olvidar imágenes de DVD). Por otra parte, SI TIENE soporte de lectura-escritura en Windows, Linux y Mac sin tener que instalar ni configurar nada.
  • NTFS, nativo de Windows. NO SOPORTA permisos UNIX, pero si tiene un sistema de ACL. No tiene las restricciones de FAT32. Tiene soporte de lectura-escritura incorporado en el Kernel de Linux (ntfs-3g) hace varios años ya, con suficiente madurez para su uso sin temor. En Mac es diferente, por defecto, Mac OS X trae soporte sólo-lectura. Para darle soporte de escritura, existen varios complementos propietarios y libres. El Libre que conozco es un port de NTFS-3G, sin embargo (no recuerdo por que ahora) no lo pude hacer funcionar. Luego de eso probé Paragon NTFS for Mac, lo malo de Paragon es que monta DESPUES de iniciado el escritorio, por lo tanto todos los procesos que tengo al inicio que usan mi partición de documentos (dropbox, wally, …) dan errores. Finalmente el más maduro que probé fue Tuxera NTFS, que vendría a ser una distribución propietaria de NTFS-3G. Lo malo es que ciertas operaciones en los archivos no siempre funcionan, y debido a eso me vi forzado a cambiar de formato la partición.
  • EXT3, nativo de linux, obviamente soporta permisos UNIX. Existe una implementación de un driver para Windows que le da soporte lectura-escritura, lo he estado usando por años en otro laptop. Funciona bien hasta Windows 7, salvo que en este último recuerdo haber tenido que inventarme un comando como servicio para que el montaje se ejecutara automáticamente. En Windows XP el montaje era automático. Por otro lado, en Mac OS X no existe soporte nativo. Estuve viendo un tiempo y supe que era posible montarlo usando MacFUSE, pero la verdad nunca me funcionó MacFUSE así que tuve que descartarlo.
  • HFS+, lo que he descrito en este tutorial-howto-ayudamemoria.
Fuentes:

Un comentario sobre “Migré mi partición de documentos de NTFS a HFS+

  1. Excelente información, muy util para multiples sistemas en el Mac (mi caso es solo Mac y Linux), gracias por el post. Slds.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.