- Ntfs2btrfs es una herramienta que convierte en el lugar el sistema de archivos Microsoft NTFS al sistema de archivos de código abierto Btrfs, y funciona de forma similar a
btrfs-convertpara ext2 - Antes de la conversión, la imagen original se guarda como una copia reflink en
image/ntfs.img, y si se desea conservar el resultado de la conversión, se puede borrar esa imagen para liberar espacio - En Windows se ejecuta desde un símbolo del sistema con privilegios de administrador con
ntfs2btrfs.exe D:\, y en Linux se ejecuta como root conntfs2btrfs /dev/sda1 - No funciona en la unidad de arranque ni en una unidad que tenga un pagefile actualmente en uso, y si se usa WinBtrfs, para poder borrar el subvolumen
imagehay que quitarle primero el flag de solo lectura - El soporte incluye archivos, directorios, enlaces simbólicos, descriptores de seguridad, flujos de datos alternativos, rollback de NTFS y preservación de metadatos LXSS, pero no admite archivos cifrados ni tamaños de clúster inusuales
Qué hace Ntfs2btrfs
- Ntfs2btrfs es una herramienta para convertir en el lugar un sistema de archivos NTFS a Btrfs
- La imagen original se guarda como una copia reflink en
image/ntfs.img- Si se desea conservar el resultado de la conversión, se puede borrar este archivo para liberar espacio
- Se indica que la herramienta es estable, pero también incluye la advertencia de que el autor no se hace responsable si ocurre algún problema
- También se enlaza como proyecto relacionado el controlador de sistema de archivos Btrfs para Windows WinBtrfs
- Se usa código de ntfs-3g-system-compression de Eric Biggers, quien hizo ingeniería inversa a “WOF compressed data” de Windows 10
Uso y restricciones
- En Windows se ejecuta desde un símbolo del sistema con privilegios de administrador
ntfs2btrfs.exe D:\
- En Linux se especifica el dispositivo de bloques con privilegios de root
ntfs2btrfs /dev/sda1
- En Windows no se pueden convertir los siguientes destinos
-
Unidad de arranque
- Unidad que tenga un pagefile actualmente en uso
- Si se usa WinBtrfs, para borrar el subvolumen
imageprimero hay que quitar el flag de solo lectura
-
Ruta de instalación
- En Windows se puede descargar el archivo Zip más reciente desde la página de Releases o usar Scoop
- Se ofrecen paquetes para distintas distribuciones de Linux
- En otras distribuciones o sistemas operativos hay que compilarlo manualmente
Compilación y dependencias
- En Windows se abre el directorio del código fuente con una versión reciente de MSVC y se ejecuta Compile desde
CMakeLists.txt - En Linux se compila con
cmakeymakemkdir buildcd buildcmake ..make
- Para la compilación se requiere libfmt, que puede instalarse con el gestor de paquetes
- Para el soporte de compresión se requieren zlib, lzo, zstd
- Con las opciones de CMake
WITH_ZLIB,WITH_LZO,WITH_ZSTDse puede desactivar ese soporte
- Con las opciones de CMake
Funciones compatibles
- Se pueden convertir o preservar los siguientes elementos
-
Archivos
-
Directorios
- Enlaces simbólicos
- Otros reparse points
- Descriptores de seguridad
- Flujos de datos alternativos
- Atributos DOS
- hidden, system, etc.
- Rollback a la imagen NTFS original
- Preservación de metadatos LXSS
-
Elementos no compatibles
- Los atributos extendidos antiguos de Windows no son compatibles
- Los flujos de datos alternativos grandes de más de 16 KB no son compatibles
- No se admite la preservación del flag de case-sensitivity
- No se admiten tamaños de clúster inusuales que no sean de 4 KB
- Los archivos cifrados no son compatibles
Cambios principales visibles en el historial
- La versión del 2025-06-16 corrige un problema de compilación con GCC 15
- La versión del 2024-01-15 corrige un problema de compilación causado porque en GCC 14
-Werror=incompatible-pointer-typespasó a estar activado por defecto - La versión del 2023-05-01 corrige un problema con el orden de inline extent item y otro con el valor de nivel de metadata item
- Se indica que ambos problemas no son diagnosticados por
btrfs check - También se cambió el comportamiento para omitir ADS con nombres excesivamente largos
- Se indica que ambos problemas no son diagnosticados por
- La versión del 2022-08-12 incluye la opción
--no-datasum, preservación de metadatos LXSS/WSL, corrección en el reconocimiento de letras de unidad en minúscula y corrección de corrupción al ubicar archivos en la última región de 1 MB - La versión del 2021-09-23 agrega soporte para compresión Btrfs y rollback
- La compresión soporta zlib, lzo, zstd
- El algoritmo hash agrega soporte para
xxhash,sha256,blake2 - También admite descriptores de seguridad estilo NT4
- Mejora la velocidad de conversión en volúmenes con muchos inodes
- También corrige un bug de corrupción del sistema de archivos que
btrfs checkno podía detectar
- La versión del 2021-01-05 incluye correcciones relacionadas con compresión NTFS, “WOF compressed data” y sparse file
En caso de arrancar Windows desde Btrfs
- Se indica que arrancar Windows desde un Btrfs convertido con esta herramienta es posible si se cumplen las condiciones
- Como proyecto relacionado se enlaza Quibble
1 comentarios
Opiniones en Hacker News
El enlace a Quibble, que hizo ingeniería inversa del bootloader del kernel de Windows de forma abierta y extensible, me pareció mucho más interesante: https://github.com/maharmstone/quibble
Si hiciera esto en ZFS, probablemente agregaría una capa que lea otros formatos de sistemas de archivos y sintetice punteros de bloque de ZFS
Así ZFS podría leer otros sistemas de archivos y, durante las escrituras, reescribir todo lentamente. Si ZFS tuviera una función para reescribir punteros de bloque, podría hacer que se reescriba todo y terminar la conversión, pero antes expliqué que, como ZFS no es realmente un sistema de archivos de almacenamiento direccionado por contenido (CAS), no tiene esa función y tampoco puede tenerla
¿Alguien aquí que use BTRFS puede contar cómo anda de estabilidad hoy en día? Antes veía muchas historias de terror
Nunca tuve problemas, pero sí es molesto que el espacio libre que BTRFS cree tener no siempre coincide con el que cree tener el resto del sistema operativo. Aun así, rara vez me ha causado un problema real
Salvo por cargas de trabajo de bases de datos, lo considero el sistema de archivos emblemático de Linux, al punto de que no entiendo por qué alguien usaría otro
Intenté acceder a la partición dañada desde una instalación paralela para arreglarla, pero no sirvió
Necesitaba esto hace 2 meses. Tuve que formatear desde NTFS un disco duro con más de 10 TB de datos
Es un proyecto genial
Me sorprendería bastante si incluso soporta archivos con compresión LZX
Es algo distinto a la compresión de archivos de la época de Windows 2000, y es una función que hay que activar con
compact.exe /C /EXE:LZX (filename)https://github.com/search?q=repo%3Amaharmstone%2Fntfs2btrfs%...
Lo probé hace tiempo y el resultado fue un disco de solo lectura. Espero que haya mejorado desde entonces
El nivel de temeridad que se ve aquí se sale de la escala
La forma estándar es reservar en el sistema de archivos antiguo un archivo grande para los metadatos del nuevo sistema de archivos, y luego recorrer todos los archivos del sistema antiguo creando nuevos extents que apunten a los datos existentes mediante
fiemap(). Las escrituras solo se hacen en el espacio reservadoEl superbloque se sobrescribe recién al final, y antes de eso se puede verificar que el contenido del sistema de archivos antiguo y el nuevo sea el mismo
En ese entonces, mientras tocaba esto, rastreé varios bugs bastante desagradables; espero que ahora sea más estable
Como dicen otros, se puede hacer de forma sistemática y a escala, pero por supuesto requiere cuidado
“WinBtrfs es un driver para Windows del sistema de archivos de nueva generación de Linux, Btrfs. Es una reimplementación desde cero, no contiene código del kernel de Linux y debería funcionar en cualquier versión desde Windows XP en adelante. También se incluye como parte del sistema operativo libre ReactOS.”
Esto viene de la página del mantenedor de ntfs2btrfs
https://github.com/maharmstone/btrfs
Sé que este es otro caso, pero el tiempo invertido en esos datos vale mucho más que un disco nuevo. Personalmente no me parece un riesgo que valga la pena. Si los datos no son importantes, o tienes buenos backups y quieres contribuir a encontrar bugs, entonces podrías probarlo
Es realmente genial, pero probablemente la mayoría se va a enterar de esto al menos una semana después de haber terminado de formatear un disco NTFS que venían posponiendo desde hace 2 años