Desfragmentar em Linux?

Desfragmentar discos de um computador é algo que o Windows popularizou, como evidenciamos neste artigo. Em Mac OS X, não existe a prática da desfragmentação. Em sistemas Linux, também existe a noção de não existirem problemas de fragmentação. E tal é essencialmente verdade quando os discos não estão muito cheios. Mas como não há milagres, quando os discos enchem, a fragmentação aparece. Tal pode ser visualizado para a totalidade do disco quando se executa o comando “fsck” (comando que só deve ser executado por quem sabe o que está a fazer…), mas pode ser visto ficheiro a ficheiro com o comando “filefrag”.

No primeiro caso, é necessário que o filesystem esteja desmontado. Ao invocar o comando no sistema onde preparo os artigos do Poupar Melhor, o resultado é o seguinte:

# fsck -f /dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
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
/dev/sda1: 108074/184368 files (0.8% non-contiguous), 586745/736512 blocks

Por aqui se percebe que uma pequena parte dos ficheiros está fragmentada. Para se ver o detalhe, pode-se  invocar o comando filefrag. Ele pode ser invocado por qualquer utilizador, normalmente com a opção -v. Vejam o exemplo do ficheiro com maior fragmentação no meu desktop:

$ filefrag -v XXXXXX.pdf
Filesystem type is: ef53
File size of XXXXXX.pdf is 3574577 (873 blocks, blocksize 4096)
 ext logical physical expected length flags
   0       0   565377              12
   1      12   566992   565388      6
   2      18   567120   566997      6
   3      24   571831   567125      6
   4      30   557957   571836      5
   5      35   560352   557961      5
   6      40   569239   560356      4
   7      44   571914   569242      4
   8      48   558472   571917      3
   9      51   558731   558474      3
  10      54   559204   558733      3
  11      57   564063   559206      3
  12      60   570171   564065      3
  13      63   557296   570173      2
  14      65   558082   557297      2
  15      67   558086   558083      2
  16      69   573632   558087     15
  17      84   558422   573646      2
  18      86   558466   558423      2
  19      88   573856   558467     32
  20     120   558644   573887      2
  21     122   559135   558645      2
  22     124   560276   559136      2
  23     126   560362   560277      2
  24     128   564145   560363      2
  25     130   564403   564146      2
  26     132   576686   564404      4
  27     136   569053   576689      2
  28     138   569374   569054      2
  29     140   576832   569375      3
  30     143   576922   576834     10
  31     153   576989   576931      9
  32     162   577021   576997      3
  33     165   569453   577023      2
  34     167   569574   569454      2
  35     169   577324   569575      8
  36     177   569707   577331      2
  37     179   577380   569708      4
  38     183   577509   577383      6
  39     189   570121   577514      2
  40     191   570357   570122      2
  41     193   571354   570358      2
  42     195   571827   571355      2
  43     197   572008   571828      2
  44     199   573412   572009      2
  45     201   573718   573413      2
  46     203   557368   573719      1
  47     204   557452   557368      1
  48     205   557576   557452      1
  49     206   579057   557576      2
  50     208   579060   579058      2
  51     210   557622   579061      1
  52     211   579068   557622      3
  53     214   558072   579070      1
  54     215   558327   558072      1
  55     216   558332   558327      1
  56     217   579353   558332      4
  57     221   579362   579356      2
  58     223   579377   579363      4
  59     227   558430   579380      1
  60     228   558461   558430      1
  61     229   558772   558461      1
  62     230   559182   558772      1
  63     231   559208   559182      1
  64     232   559243   559208      1
  65     233   559757   559243      1
  66     234   560004   559757      1
  67     235   562758   560004      1
  68     236   563571   562758      1
  69     237   563640   563571      1
  70     238   563921   563640      1
  71     239   564158   563921      1
  72     240   564166   564158      1
  73     241   564320   564166      1
  74     242   564324   564320      1
  75     243   564393   564324      1
  76     244   564410   564393      1
  77     245   564620   564410      1
  78     246   565276   564620      1
  79     247   565283   565276      1
  80     248   565286   565283      1
  81     249   581920   565286     32
  82     281   582240   581951     64
  83     345   565682   582303      1
  84     346   582368   565682    224
  85     570   565938   582591      1
  86     571   582719   565938    113
  87     684   566104   582831      1
  88     685   582848   566104     64
  89     749   658939   582911    124 eof
XXXXXX.pdf: 90 extents found

Em Linux não existem muitas ferramentas específicas para realizar esta consolidação. Se está preocupado com algum ficheiro em particular, uma forma de resolver o problema é copiá-lo (não mover) para uma directoria distinta, e depois movê-lo para a directoria original.Com esta acção, o ficheiro anterior ficou contíguo.

Se existir muita fragmentação, então é provável que o disco esteja quase cheio. Neste caso, procurar um disco maior deverá ser a melhor solução…

Tags:

{ Comments are closed! }