Hoy quiero abrir la polémica con un artículo publicado en webupd8 sobre la desfragmentación del sistema de archivos EXT4 y EXT3, se nos ha dicho que Linux no necesita desfragmentarse y esto ha sido en más de una ocasión motivo de controversia, pues acá hay argumentos necesarios para invalidar esa teoría, hay que dar por sentado que la desfragmentación de tu disco duro es necesario en cierto momento, y aquí nos sugiere diferentes métodos de como hacerlo…
Sé que todo el mundo dice EXT4 sistemas de archivos ext3 y no necesita de desfragmentación y en la mayoría de los casos, eso es verdad. Hay una discusión en todo lugar que EXT3 no necesidades de desfragmentación, pero no voy a entrar en eso. Sólo depende de la manera en que un sistema de archivos se utiliza, desde la última vez que fue formateado. Así que no tomen en cuenta mis palabras y vaya a ver su nivel de fragmentación de su disco duro.
Recientemente he escaneado mis discos y encontraron 1 partición (que no se ha formateado en un tiempo muy, muy largo) con un nivel de fragmentación de más del 70%. Sí, me sorprendí a mí mismo, pero parece que esto es posible! Eso debe ser porque uso la partición para las descargas BitTorrent, así que constantemente descargar nuevos archivos, eliminar otros, etc clientes BitTorrent constantemente leer y escribir archivos que es bastante malo desde el punto de vista de la fragmentación. Por ejemplo, mi partición de casa tiene un nivel de fragmentación de menos del 1%, pero nunca descargar torrents allí.
Cómo comprobar el nivel de fragmentación en Linux
En primer lugar, la partición que desea comprobar, debe ser desmontado. Para ello puede utilizar el icono situado junto a una unidad en Gnome (Nautilus), Gparted (Ubuntu: sudo apt-get install gparted) o palimpsesto (en Ubuntu Karmic Koala – viene por defecto). O hacerlo desde la línea de comandos.
Luego ejecutar fsck en un terminal:
fsck -nvf /dev/hda1
Remplace «hda1» por tu partición
Debería retornarte algo como esto:
fsck from util-linux-ng 2.16
e2fsck 1.41.9 (22-Aug-2009)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
1955 inodes used (0.08%)
1554 non-contiguous files (79.5%)
0 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 1660/1224/0
3706004 blocks used (72.40%)
0 bad blocks
1 large file
1825 regular files
121 directories
0 character device files
0 block device files
0 fifos
0 links
0 symbolic links (0 fast symbolic links)
0 sockets
--------
1946 files
Hay algunas herramientas para esto, como Shake y Defrag.
Shake es un desfragmentador que se ejecuta en espacio de usuario, sin necesidad de parchear el kernel y mientras el sistema se utiliza.
Funciona por reescribir archivos fragmentados. Pero tiene algunas heurísticas que podría hacer más eficientes que otros instrumentos, incluidos los defrag y, quizás, xfs_fsr.
Por ejemplo, te permite escribir encontrar INAME-*. mp3 » | sort | shake para desfragmentar todos los MP3 en un directorio, reuniendo en el disco de los que están cerca en orden léxico.
Para instalar Shake en su última versión, en Ubuntu 9.10 o superior agregue esta agregue este PPA a su sistema.
sudo add-apt-repository ppa:un-brice/ppa
Actualizar e instalar la aplicación.
sudo apt-get update && sudo apt-get install shake-fs
También puedes descargarlo en este enlace e instalar la aplicación con el Gdebi.
Preparación para la desfragmentación.
Después de la instalación, para usar Shake, necesitas editar tu archivo fstab:
gksu gedit /etc/fstab
Y añadir la opción user_xattr para la partición que desea desfragmentar (incluso si sólo desea desfragmentar los archivos).
/dev/sdb6 /media/JOCURI ext3 noatime,nodiratime,user_xattr,errors=remount-ro,data=writeback 0 1
(no te preocupes si en el fstab de tu partición, hay otras opciones).
Ahora bien, si la partición no ha sido desmontado, ejecute este comando:
mount -o remount MY_PARTITION
Sustitución MY_PARTITION con la partición que desea ejecutar en Shake.
Si se desmonta la partición, simplemente ejecute este en una terminal:
mount -a
Para ver el nivel de fragmentación con Shake, use este comando:
shake --pretend --verbose --verbose my_dir
Donde «my_dir» puede ser la partición o un directorio, pero no como la partición / dev/sda1, pero la carpeta donde está montado, como en / media/disk1.
Ejecución de la desfragmentación real utilizando Shake.
shake my_folder
A continuación, compruebe de nuevo el nivel de fragmentación.
Para más info sobre Shake visite HomePage.
Desfragmentar utilizando Defrag: Otro método es utilizando Defrag, este es un script de shell.
Descarga la última versión desde AQUÍ.
Uso Defrag es muy fácil: copiar el guión en una carpeta que desea desfragmentar. Esto puede ser sólo una carpeta normal o el directorio de nivel superior de una partición.
Para ejecutarlo, abra una terminal, navegar hasta la carpeta donde se copió Defrag (esto también está en la carpeta que desea desfragmentar) y escriba para visualizar y asignar permisos al script:
cd ruta_descarga_script
sudo chmod -x defrag.sh
Lo que resta es ejecutar el escript, para ello agreguemos estas últimas líneas en la terminal. Tomar nota que la partición a desfragmentar tiene estar montada.
sudo bash ./defrag.sh
Para otros métodos de instalción de defrag visita.
http://www.webupd8.org/2010/03/install-defrag-defragmentation.html
Artículo cortesía de webupd8