Desfragmentar particiones NTFS desde Linux


Respuestas:


12

Sí, puedes usar batido . Primero deberá agregar un repositorio personalizado a su sistema:

sudo add-apt-repository ppa:un-brice/ppa
sudo apt-get update
sudo apt-get install shake-fs

Entonces puedes hacer

sudo shake /some/dir

10
Shake no es un desfragmentador, simplemente copia cada archivo con la esperanza de que la copia esté menos fragmentada. Eso, por supuesto, está lejos de cómo funcionan los desfragmentadores reales.
rustyx

9

No existe tal herramienta, por lo que sé.

Algunos sitios informan el siguiente comando

# WARNING - does not work
fsck -t ntfs --kerneldefrag /dev/hdX

pero esto no funciona y no está claro de dónde lo obtienen.


77
-1 ¿Por qué agregar una respuesta cuando ni siquiera es útil de ninguna manera?
Wolfer

1
@Wolfer es bueno, así que cuando lo encontramos en otro lugar sabemos que no funciona
krispy

6

Actualización: UltraDefrag para Linux:

UltraDefrag es una poderosa herramienta de desfragmentación de código abierto para la plataforma Windows. Puede desfragmentar cualquier archivo del sistema, incluidas las colmenas de registro y el archivo de paginación. También uno de los objetivos principales de UltraDefrag es hacer el trabajo lo más rápido y confiable posible. Se está portando a Linux y NTFS-3G para desfragmentar particiones NTFS. Actualmente solo está disponible una versión de prueba en modo consola. Lea el archivo README.linux incluido para compilar y probar

http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html

[Todavía no he usado esto yo mismo. Lo encontré a través de un hilo en un foro de Arch . Seguir el hilo hasta la página siguiente conduce a más información sobre el tema. Pruébelo bajo su propio riesgo. Kevjonesin


1

Esta es una GRAN advertencia para todos aquellos de ustedes que piensan que NFTS se puede desfragmentar en Linux simplemente copiando archivos (clonando solo archivos), etc.

  • Algunos NTFS (archivos / carpetas) pueden tener un atributo especial activo, se llama Compresión NTFS

Por lo que sé, cada vez que Linux (cp, fsarchiver, etc.) escribe un archivo / carpeta en un NTFS, siempre lo escribe sin compresión NTFS, sin importar si el archivo / carpeta tiene la compresión activada o desactivada.

Por lo tanto, puede llegar a una situación (lo encuentro de la manera difícil), donde restaurar con fsarchive (o cp, etc.) haría que la partición se llene y no sea suficiente.

Algún tipo de datos puede alcanzar una relación de compresión NTFS de más de 3, por lo que puede tener una partición X GiB con muchos archivos, y la suma de archivos debe tener un tamaño cercano a 3 * X.

Doy esa advertencia porque no se conoce bien y, a veces, crea dolores de cabeza muy grandes. como cuando la restauración de un clon necesita más espacio que toda la partición que se ha clonado, porque la compresión NTFS se perdió en Linux.

Además, con datos muy muy especiales (relación NTFS superior a 5) llego a esta situación:

  • Tamaño de partición NTFS de X GiB
  • El archivo que contiene el clon (con la mejor compresión que permitió esa herramienta, creo que GZip) tomó 2 * X GiB

Ah, sí, el clon estaba comprimido y tomó el doble de ese tamaño de partición.

Esto se debe a que la herramienta de clonación lee los archivos sin formato (en claro, sin comprimir) y luego comprime los datos (con una proporción realmente peor que NTFS).

Por supuesto, la restauración de esos datos no se ajustará a esa partición, ya que los datos restaurados se colocarán sin compresión NTFS.

Espero que esté claro otra razón por la que no utilizar la compresión NFTS? Bueno, para nada, uso mucho la compresión NTFS (en el pasado). Los archivos VDI (Virtual Box) obtienen una relación realmente buena.

Ahora había descubierto el archivo Pismo Mount (y también funciona en Linux). puede crear un archivo que actúa como un contenedor (como una carpeta) y puede comprimirse (también con una mejor relación que NFTS) y al mismo tiempo cifrarse.

Por qué lo menciono. porque cualquier herramienta de clonación verá dicho contenedor como un archivo (cuando no está montado como carpeta) y leerá / volcará / copiará la secuencia de datos comprimidos, no los datos sin comprimir (como con la compresión NTFS). entonces la restauración es como con cualquier otro archivo.

En lugar de comprimir una carpeta NTFS con el atributo de compresión NTFS, puse una carpeta virtual Mount de archivo Pismo. obtener una mejor compresión, etc.

También debo advertirles a todos ustedes interesados ​​en dicha herramienta gratuita. no tiene reducción (al menos todavía), por lo que si el contenido de la carpeta cambia mucho, no es una buena idea.

Pero para discos virtuales inmutables, ISO y cosas que no cambiarán, la relación que obtiene es muy cercana a las de LZMA2 (7-Zip) y se puede leer / escribir sobre la marcha.

Y es multiplataforma.

Tenga en cuenta que el malo de la compresión NTFS habla de fragmentación. cuando escribe un archivo en un NTFS con compresión NTFS activada, lo hace de esta manera (sí, un diseño horrible, creo que se hace así para garantizar una mayor fragmentación en la forma intencional, lo peor no se puede hacer):

  1. La posición de inicio de escritura se calcula previamente como 64K * N, donde N es el número del fragmento de 64K que se intentará comprimir.
  2. Un búfer para 64K está reservado.
  3. Ese búfer se llena con 64 K y luego se comprime
  4. Solo se escriben los bloques 4K necesarios, el resto se deja como espacio libre

Por lo tanto, crea una gran cantidad de GAP en el medio del archivo, y solo después de una desfragmentación del archivo, las GAP desaparecen, pero esa desfragmentación no ocurre hasta que el usuario lo ordena (contig.exe, defrag.exe, etc.).

Sí, escribe el fragmento N'th 64K en una posición múltiplo de 64K, sin importar si los datos anteriores se pudieron comprimir o no, deja un espacio entre cada fragmento de 64K (si se pudieran comprimir todos).

La compresión de carpeta virtual Pismo File Mount actúa como se supone que se debe hacer cualquier compresión normal, en modo canalizado, por lo que no hay huecos. al menos hasta que elimines algo.

También otra advertencia, no coloque archivos VHD / VHDX dentro, ¡Windows no podrá adjuntarlos! Windows usa un truco del núcleo para montar tales cosas, no usa el nivel del sistema de archivos, funciona a bajo nivel.

También me gustaría tener en mis manos un desfragmentador NTFS de Linux, seguro que sería más rápido que todo lo que se ejecuta en Windows. Es una locura total desfragmentar el espacio libre. o mejor hablando. creando un conjunto lo suficientemente grande para un nuevo archivo grande.

También sería genial que mi memoria funcionara mejor. en el pasado estaba usando una herramienta (línea de comando, lo siento) en Windows que podía copiar / mover un archivo de manera no fragmentada. alejar los archivos necesarios mientras se obtiene todo lo necesario, y no fragmentarlos. solo da un mensaje si no puede encontrar una manera de colocar el archivo (imposible de hacer un agujero) o una advertencia diferente si necesita fragmentar otro archivo (preguntando si el usuario lo autorizó), etc. fue realmente genial. No recordaba el nombre (y tal vez no funciona con ventanas modernas, fue para Win2000).


0

No. Estos son sistemas de archivos de Windows, por lo que deberá utilizar Windows para desfragmentarlos.


¿Wine no tiene la aplicación estándar de desfragmentación de Windows? ???
Juan

2
@Juan, no, eso es parte de Windows. WINE solo permite ejecutar aplicaciones de terceros escritas para Windows. También utiliza ioctls específicos del controlador del sistema de archivos de Windows que no están disponibles en Linux.
psusi

0

Hay un truco muy bien conocido para archivar una desfragmentación de NTFS (incluido el espacio libre) ... se puede hacer con un Live Linux como SystemRescueCD ...

Pero, debe tener un segundo HDD o al menos un 51% de espacio libre (eso si no usa compresión).

El truco (muy complicado) es usar herramientas para "clonar" la partición, pero no las típicas ... hay una herramienta que puede "clonar" una partición NTFS pero no hacer un "clon" exacto ... déjenme explicar ...

La herramienta es fsarchive (si no recuerdo mal).

Crea un archivo muy grande (como lo hacen las herramientas de clonación), con todos los archivos (tenga cuidado con los metadatos especiales de archivos NTFS, las secuencias, creo que son callled), tal como lo hace una herramienta de "clonación" ...

Pero la parte difícil viene cuando se restaura ... no coloca los archivos donde están, coloca los archivos sin ninguna fragmentación.

Lo había usado para la partición del sistema de Windows, así como para las particiones de datos NTFS ... con éxito ... no es muy fácil de usar / entender (lea cuidadosamente los documentos) ... pero puede hacer el truco.

Recuerde ... un archivo tan grande que crea puede comprimirse, por lo que realmente no necesita tener un 51% gratis.

Pero de cualquier manera, primero debe reducir la partición NTFS ... use GParted (si no recuerdo mal).

Entonces pasos:

  1. El peor de los casos: HDD tiene solo una gran partición NTFS, con suficiente espacio libre
  2. Boot SystemRescuCD (si desea iniciar X windows con el comando del asistente)
  3. Use GParted para reducir la partición NTFS a su tamaño mínimo (fragmentará más los archivos NTFS, no importa)
  4. Use GParted para crear otra partición en espacio libre, mejor si es ext4 type (journal)
  5. Monte dicha nueva partición, pero no monte NTFS
  6. Use fsarchiver para crear un "clon" de la partición NTFS, use la compresión y almacene el archivo bif en la partición creada
  7. De ahora en adelante esto es muy RIESGO: use GParted para eliminar la partición NTFS y volver a crearla
  8. Restaure el "clon" usando fsarchiver, todos los archivos en la partición NTFS serán 1 fragmento (excepto uno o dos porque $ MFT podría colocarse en el medio, no en el inicio o al final de la partición)
  9. Use Gparted para reducir la partición NTFS si es necesario
  10. Compruebe que el NFTS es correcto, se puede montar, leer / escribir y desmontar
  11. Desmontar la partición ext4 recién creada
  12. Use Gparted para hacer crecer ese ext4 (o mejor, elimínelo y vuelva a crearlo)

Eso es, amigos ... como dije muy complicado y arriesgado, por supuesto.

Cuidado con los puntos clave:

  • La reducción de NFTS deja suficiente espacio libre para contener una imagen comprimida de la partición NTFS (51% libre en el HDD asegurará que haya suficiente)
  • fsarchiver no guarda las transmisiones NTFS?
  • Restaurar fsarchiver no coloca los archivos donde están, los pone sin fragmentar (como una copia)
  • Después de eliminar y volver a crear la partición NTFS, no hay vuelta atrás

Los pasos son para: Usar un LiveCD / LiveUSB Linux para desfragmentar una partición NTFS que use el 100% del disco, sin que ningún otro HDD se conecte a dicha PC [debe tener suficiente espacio libre].

IMPORTANTE:

  • Algunos podrían pensar que si tiene un 51% libre en el HDD después de la reducción de NTFS, podría ser más seguro crear ese ext4 y copiar todo NTFS en él, luego eliminar NTFS, recrearlo y copiarlo de nuevo ... HACERLO causará pérdidas, como permisos de seguridad NTFS, etc.

Siempre que sepa, GParted / fsarchiver es la solución más cercana (para usar solo un LiveCD / LiveUSB con Linux), no es rápido, de alguna manera arriesgado, pero satisface los términos impuestos por la persona que publica la pregunta.

TENGA CUIDADO: es muy, muy arriesgado ... como con cualquier herramienta de "clonación" ... y por ahora no conozco otra mejor manera ... y perderá las secuencias NTFS (si no recuerdo mal)

POR FAVOR: lea cuidadosamente los documentos de fsarchiver antes de usarlo.

Tengo alguna responsabilidad (lo había usado en mis propios datos, pero siempre tengo una copia de seguridad externa, buenas partes).

En la práctica ... toda la información que tengo, la puse en al menos tres medios diferentes (HDD, DVD, memorias flash), con al menos tres copias en cada medio, por lo que tengo 9 copias ... si pierdo 8 de ellos descansan uno más para recuperar datos ... soy un poco paranoico, lo sé.


No recomendaría este método, ya que (como dijiste) es muy arriesgado y generalmente no vale la pena debido a una desfragmentación. Utilice mejor los sistemas Windows live para hacer ese trabajo (o el sistema original de Windows, ¿por qué no?).
Byte Commander

fsarchive es solo un sofisticado archivo tar que almacena algunos atributos extendidos. No desfragmenta nada. Su método es tan bueno como la simple copia de archivos de una partición a otro sistema de archivos limpio.
ZAB
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.