Cómo desfragmentar un sistema de archivos ext4

66

¡No quiero ninguna respuesta que diga que no hay necesidad, por favor!

Fabby
fuente

Respuestas:

67

Use e4defrag para desfragmentar sus archivos

Si su sistema de archivos ext4 se crea con la extentopción (está predeterminado en las distribuciones recientes), puede usar la e4defragutilidad para verificarlo y desfragmentarlo en línea, es decir, sin desmontarlo.

Simplemente verifique el nivel de fragmentación con algo como esto (debe ser root para ver los detalles):

sudo e4defrag -c /path/to/myfiles

Aquí hay un ejemplo de la salida que puede obtener:

$ sudo e4defrag -c iso/
<Fragmented files>                             now/best       size/ext
1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso
                                                 7/1         111177 KB
2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso
                                                 4/1         100897 KB
3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso
                                                 6/1         116053 KB
4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso
                                                 8/1          76160 KB
5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso
                                                15/1          75712 KB

 Total/best extents             40/5
 Average size per extent            90577 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (iso/) does not need defragmentation.
 Done.

Como en este ejemplo, la mayoría de las veces le dirá que no se necesita desfragmentación, pero si quiere hacerlo de todos modos puede usar (no necesita usar sudo para desfragmentar sus propios archivos):

e4defrag /path/to/myfiles

Sus usuarios incluso pueden ejecutarlo en sus propios archivos, no hay necesidad de ser root a menos que desee trabajar en los archivos de otros usuarios o del sistema.

e4defragestá en el e2fsprogspaquete y supongo que ya está instalado en su sistema Ubuntu.

gerlos
fuente
2
e4defrag -c no devuelve nada más que done. ¿Eso solo significa que no hay fragmentación?
hrzhu
3
Lo siento, olvidé mencionar que necesita ejecutar e4defrag -ccon sudoo como root para obtener información detallada sobre la fragmentación de sus archivos. Pero no es necesario ser root para desfragmentarlos.
gerlos
@gerlos ¿Qué sucede si intento desfragmentar el sistema de archivos raíz /?
Pavel Sayekat
2
@PavelSayekat solo necesita ser root (es decir, usar sudo) para ejecutar e4defrag /, y no necesita hacer nada especial. e4defragcomprobará todos los archivos allí, así que prepárate para esperar a que tu unidad lea todo. Recuerde que puede ser una gran pérdida de tiempo. La mayoría de las veces, si tiene suficiente espacio libre en el sistema de archivos, tendrá solo unos pocos archivos fragmentados, y a menudo estarán en el directorio de inicio, relacionado con la actividad de su navegador web. Por ejemplo, en mi PC de escritorio que uso todos los días, e4defraginforma que solo hay 5 archivos fragmentados, todos en la configuración de Chromium y en el directorio de caché.
gerlos
Esto desfragmenta solo las extensiones internas de los archivos, pero no los archivos entre sí. Es decir, si tengo un directorio que contiene tres archivos en ubicaciones físicas muy diferentes en el disco, aún será lento usar estos archivos simultáneamente después de ejecutar esta herramienta. ¿Hay alguna forma de reorganizar los archivos en el disco o "desfragmentar el espacio libre" como a veces se le llama?
fuzzyTew
29

Echa un vistazo a e2fsprogs . Esto también está disponible en los paquetes de Ubuntu. Proporciona el programa e4defrag.

TIIUNDER
fuente
55
Esto realmente solo es útil en los sistemas de archivos ext4 que se crearon con -O extensión, que no es el valor predeterminado.
Dobey
El chico responde sobre defrag, podría ser posible con e4defrag, la pregunta no especifica un diario externo o no, no merece un -1.
Felipe Alcacibar
8
@dobey Ubuntu 12.04 (.3) LTS contiene extenten la ext4estrofa de la [fs_types]sección en /etc/mke2fs.conf- por lo tanto, es un "predeterminado". Sin embargo, independientemente de la configuración de tiempo de creación de la máquina a la que está conectado el sistema de archivos, es mejor que inspeccione el sistema de archivos en sí mismo tune2fs -l </dev/with/ext4> | grep extent(o mire la línea "Características del sistema de archivos" en la salida completa de tune2fs). Eso sí, acabo de ejecutar e4defrag -c ...en un sistema de archivos 100% completo de 1 TB extent, y solo hay 5 archivos fragmentados, y "puntaje de fragmentación" 0. YMMV.
Richard Michael
@RichardMichael FYI: e2defrag -c /pathsolo imprime los primeros 5 archivos fragmentados encontrados (ni siquiera los más fragmentados). Ejecute e2defrag -v /pathpara ver cómo reduce los recuentos de extensión.
Tino
17

Use Gparted para desfragmentar su sistema de archivos

Si tiene suficiente espacio en su disco duro, puede usar Gparted para desfragmentar su sistema de archivos ( ext2, ext 4, nfts, etc. ). Debe arrancar desde un disco de arranque CD / DVD / USB porque la unidad en la que está trabajando debe estar desmontada. También debe tener disponible más espacio no utilizado que espacio utilizado para que esto funcione y puede llevar un tiempo.

  • Arrancar desde un disco de arranque.
  • Ejecute gparted y reduzca la partición que contiene los datos que desea desfragmentar a un poco más de la cantidad de datos.
  • Asegúrese de que la partición que desea desfragmentar es la última partición de la unidad moviéndola hasta el final (es posible que tenga que crear otra partición en blanco frente a ella si solo hay una partición en la unidad).

Con la partición que desea desfragmentar como la última partición en la unidad:

  • crecer la partición a la izquierda de la misma al tamaño máximo. Esto moverá sus datos de particiones al final de la unidad.
  • Una vez hecho esto, reduzca esa partición a su tamaño anterior.
  • Si creó una partición en blanco para tener más de una en el disco, ahora puede eliminarla.
  • Mueva sus particiones nuevamente al orden original y vuelva a crecer la partición que desea desfragmentar de nuevo a su tamaño completo.

Ahora está desfragmentado.

Y sé que no está interesado en por qué / por qué no desfragmentar ubuntu, pero de todos modos publicaré el enlace a por qué es desfragmentación innecesaria .

James
fuente
Después de encogerse y moverse a la derecha, ¿por qué creces a la izquierda y luego te encoges de nuevo en lugar de solo moverte a la izquierda?
Jason C
También me di cuenta de que después del paso de crecimiento hacia la izquierda, los datos en sí mismos se movieron nuevamente hacia la izquierda (evidenciado por datos móviles separados, verificados por un examen directo del dispositivo de bloqueo después), así que a menos que sea un comportamiento dependiente de la versión / sistema de archivos el final encogimiento + rebrote se puede omitir. Se parece ser suficiente para hacer solamente: 1) reducir el tamaño y mover a la derecha, 2) aplicar, 3) crecen izquierda.
Jason C
El simple movimiento de la partición que desea desfragmentar para durar no necesariamente lo mueve al final real de la HD. Al hacer crecer la partición hacia la izquierda hasta el tamaño máximo, se asegura que la partición final se "mueva" realmente hasta el final del disco duro.
James
Moverlo hacia la derecha lo mueve al final del disco duro. La barra de partición en la parte superior de la GUI dividida es en realidad una representación precisa del diseño de datos (bueno, al menos tan visible para el sistema operativo, los dispositivos flash, por ejemplo, asignan ubicaciones lógicas a físicas en el otro lado del controlador, pero para un HDD típico, es preciso). Esto se puede verificar observando la nueva ubicación de inicio en la tabla de particiones. :)
Jason C
Ah, nos estamos comunicando mal. Querías reordenar la partición para que sea la última. Quise decir mover la partición al final del disco, y eso es lo que pensé que querías decir también (puedes mover las particiones en el disco con gparted independientemente de reordenarlas). :)
Jason C
3

Desfragmentar el sistema de archivos ext4 en linux Estoy agregando esta respuesta para mostrar también cómo podemos encontrar varias herramientas integradas de Linux para realizar algunas operaciones comunes. tú

Además, tenga en cuenta que debe hacerlo como superusuario solo si desea desfragmentar sin desmontar.

Usando el comando apropos

e4defrag -vc /path #verbose output with count
Sudip Bhandari
fuente
2

Ubuntu 14.04 LTS coloca (al menos la unidad principal) en la partición EXT4 cuando se instala en una instalación limpia (que no reside en la parte superior de Win-Junk).

En este caso, si acaba de configurar un nuevo sistema, o ha formateado nuevo en un sistema antiguo y luego realizó una instalación limpia, entonces, de manera predeterminada, con 14.04 LTS, tiene una Partición EXT4 en /dev/sda1.

Ahora, solo abra una Terminal ( CTRL- ALT- T) y escriba:

sudo e4defrag -c /dev/sda1

y sea paciente hasta que se complete el "chequeo" y reciba el informe de fragmentación.

Si no está seguro de tener una partición EXT4 en su unidad de sistema operativo, simplemente vaya a INICIO y escriba df -T. Mire para ver en qué están configuradas sus particiones sda * (intente esto en 14.04LTS, y verá EXT4 a menos que elija otro tipo de partición en la configuración del disco duro).

lanza
fuente
Me salí un poco de tema y casi no agregué ningún valor a la pregunta, especialmente con la última queja.
Fernando Silveira
Puede desfragmentar más de una partición con el mismo comando: sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay
1

e2fsck -D /dev/sda1 optimiza los directorios ordenándolos y reindexándolos, lo que generalmente acelera las cosas. Puede que no se considere una desfragmentación completa del sistema de archivos, pero no todos los sistemas tienen e4defrag.

rjt
fuente