1 puntos por GN⁺ 2024-12-01 | 1 comentarios | Compartir por WhatsApp

Ntfs2btrfs

Ntfs2btrfs es una herramienta que convierte el sistema de archivos NTFS de Microsoft al sistema de archivos de código abierto Btrfs. Es similar a btrfs-convert, que convierte ext2. Después de la conversión, la imagen original se guarda como image/ntfs.img; si quieres conservar la conversión, puedes borrar ese archivo para liberar espacio. Parece ser estable, pero no se asume ninguna responsabilidad si ocurre algún problema. También puede ser de interés WinBtrfs, el controlador del sistema de archivos Btrfs para Windows. Se agradece a Eric Biggers, quien logró hacer ingeniería inversa con éxito de los "datos comprimidos WOF" de Windows 10, y se usa su código.

Uso

  • Windows: ejecutar ntfs2btrfs.exe D:\ desde un símbolo del sistema con privilegios de administrador
    • No funciona en la unidad de arranque ni en una unidad que tenga un archivo de paginación en uso
    • Si usas WinBtrfs, debes quitar la marca de solo lectura del subvolumen image para poder borrarlo
  • Linux: ejecutar ntfs2btrfs /dev/sda1 como root

Instalación

  • Windows: descargar el archivo Zip más reciente desde la página Releases o usar Scoop
  • Linux:
    • Arch
    • Fedora (posible gracias a Conan-Kudo)
    • Gentoo - disponible como sys-fs/ntfs2btrfs en el repositorio guru
    • Debian (posible gracias a alexmyczko)
    • Ubuntu (posible gracias a alexmyczko)
    • openSUSE (posible gracias a David Sterba)
  • Para otras distribuciones o sistemas operativos, es necesario compilarlo manualmente

Registro de cambios

  • 20240115
    • Se corrigió un problema de compilación en GCC 14 (-Werror=incompatible-pointer-types habilitado por defecto)
  • 20230501
    • Se corrigió un problema de orden que btrfs check no diagnosticaba
    • Se corrigió un problema por el que se escribían elementos de metadatos con valores de nivel incorrectos
    • Se omiten ADS con nombres demasiado largos
  • 20220812
    • Se agregó la opción --no-datasum para omitir el cálculo de checksum
    • Conservación de metadatos de LXSS / WSL
    • Se corrigió un problema por el que no se reconocían letras de unidad en minúscula
    • Se corrigió un problema de corrupción cuando había archivos en el último megabyte del disco
  • 20210923
    • Se agregó compatibilidad con compresión (Btrfs) (zlib, lzo, zstd)
    • Se agregó compatibilidad con otros algoritmos hash: xxhash, sha256, blake2
    • Se agregó compatibilidad con reversión a NTFS
    • Se incrementó la velocidad de conversión en volúmenes con muchos inodos
    • Se corrigió un bug cuando había archivos fragmentados en la ubicación del superbloque
    • Se corrigió un desbordamiento de búfer al leer descriptores de seguridad
    • Se corrigió un problema de corrupción del sistema de archivos que btrfs check no detectaba
  • 20210523
    • Se mejoró el manejo de archivos comprimidos grandes
  • 20210402 (lanzamiento solo de código fuente)
    • Se corrigió un problema de compilación en arquitecturas no amd64
  • 20210105
    • Se agregó compatibilidad con compresión NTFS
    • Se agregó compatibilidad con "datos comprimidos WOF"
    • Se corrigieron problemas causados por archivos dispersos
    • Otras correcciones de errores
  • 20201108
    • Se mejoró el manejo de errores
    • Se agregaron mejores mensajes cuando NTFS está dañado o no está limpio
    • Se mejoró el manejo de reubicación
  • 20200330
    • Lanzamiento inicial

Compilación

  • Windows: abrir el directorio del código fuente con la versión más reciente de MSVC, hacer clic derecho en CMakeLists.txt y compilar
  • Linux:
    • mkdir build
    • cd build
    • cmake ..
    • make
    • Es necesario instalar libfmt; debería estar en el gestor de paquetes
    • La compatibilidad con compresión requiere zlib, lzo y zstd; deberían estar en el gestor de paquetes. Para desactivarla, consulta las opciones de cmake WITH_ZLIB, WITH_LZO, WITH_ZSTD

Lo que funciona

  • Archivos
  • Directorios
  • Enlaces simbólicos
  • Otros puntos de reanálisis
  • Descriptores de seguridad
  • Flujos de datos alternativos
  • Atributos DOS (oculto, sistema, etc.)
  • Reversión usando la imagen NTFS original
  • Conservación de metadatos de LXSS

Lo que no funciona

  • Atributos extendidos antiguos de Windows (no se usan)
  • ADS grandes (más de 16 KB) (no se usan)
  • Conservación del indicador de distinción entre mayúsculas y minúsculas
  • Tamaños de clúster inusuales (que no sean de 4 KB)
  • Archivos cifrados

¿Se puede arrancar Windows desde Btrfs?

  • Sí, pero deben cumplirse ciertas condiciones. Consulta Quibble.

1 comentarios

 
GN⁺ 2024-12-01
Comentarios en Hacker News
  • Nivel de "hold-my-beer" muy alto

    • Es una expresión que se usa cuando alguien va a hacer algo muy arriesgado o desafiante
  • Cuando lo intentaron antes, el disco quedó en modo de solo lectura

    • Ojalá eso haya mejorado
  • Está muy bueno, pero a la gente le va a tomar al menos una semana enterarse de esta noticia

    • Se van a enterar recién después de terminar de formatear el disco NTFS que venían postergando desde hace 2 años
  • Están pensando en cómo aplicarlo a ZFS

    • Podría ser posible agregando una capa que lea otros tipos de sistemas de archivos y sintetice punteros de bloque de ZFS
    • Si ZFS tuviera una función de reescritura de punteros de bloque, se podría reescribir todo para completar la conversión
    • ZFS no puede tener una función de reescritura de punteros de bloque porque no es un sistema de archivos CAS adecuado
  • Sería muy sorprendente que soportara archivos con compresión LZX

    • No hay que confundirlo con la compresión de archivos de la era de Windows 2000
    • Es una función que hay que activar con el comando compact.exe /C /EXE:LZX (nombre_del_archivo)
  • NTFS es estable, más rápido que btrfs y tiene las mismas funciones

    • Es difícil entender por qué alguien querría reemplazar NTFS