Kā labot un defragmentēt Linux sistēmas nodalījumus un direktorijus


Cilvēki, kuri izmanto Linux, bieži domā, ka tam nav nepieciešama defragmentēšana. Tas ir izplatīts pārpratums starp Linux lietotājiem. Faktiski Linux operētājsistēma atbalsta defragmentēšanu. Defragmentēšanas mērķis ir uzlabot I/O darbības, piemēram, ļaujot ātrāk ielādēt vietējos videoklipus vai ievērojami ātrāk izvilkt arhīvus.

Linux ext2, ext3 un ext4 failu sistēmām nav jāpievērš tik liela uzmanība, taču laika gaitā pēc daudzu failu izpildes daudziem var būt nepieciešama optimizācija. Pretējā gadījumā cietais disks var palēnināties un ietekmēt visu sistēmu.

Šajā apmācībā es parādīšu dažus dažādus paņēmienus, kā failos veikt defragmentēšanu. Pirms sākam, mums jāpiemin tas, ko dara tādas kopējās failu sistēmas kā ext2,3,4, lai novērstu sadrumstalotību. Šīs failu sistēmas ietver tehniku efekta novēršanai. Piemēram, failu sistēmas cietajā diskā rezervē brīvas bloku grupas, lai pilnībā saglabātu augošos failus.

Diemžēl problēma ne vienmēr tiek atrisināta ar šādu mehānismu. Lai gan citām operētājsistēmām, lai atrisinātu šādas problēmas, var būt nepieciešama dārga papildu programmatūra, Linux ir daži viegli instalējami rīki, kas var palīdzēt jums atrisināt šādas problēmas.

Kā pārbaudīt failu sistēmu, nepieciešama defragmentēšana?

Pirms mēs sākam, es vēlētos norādīt, ka zemāk norādītās darbības jāveic tikai uz HDD, nevis uz SSD. SSD diska defragmentēšana tikai palielinās tā lasīšanas/rakstīšanas skaitu un līdz ar to saīsinās tā dzīvi. Tā vietā, ja izmantojat SSD, jums jāizmanto funkcija TRIM, kas nav aprakstīta šajā apmācībā.

pārbaudīsim, vai sistēmai patiešām ir nepieciešama defragmentēšana. Mēs to varam viegli pārbaudīt, izmantojot tādu rīku kā e2fsck. Pirms izmantojat šo rīku sistēmas nodalījumā, ieteicams atdalīt šo nodalījumu. Tas nav pilnīgi nepieciešams, taču tas ir drošs ceļš:

$ sudo umount <device file>

Manā gadījumā/dev/sda1 ir uzstādīts uz/tmp:

Paturiet prātā, ka jūsu gadījumā nodalījumu tabula var atšķirties, tāpēc pārliecinieties, ka esat atvienojis pareizo nodalījumu. Lai atdalītu šo nodalījumu, varat izmantot:

$ sudo umount /dev/sda1

Tagad pārbaudīsim, vai šim nodalījumam ir nepieciešama defragmentēšana, izmantojot e2fsck. Jums būs jāpalaiž šāda komanda:

$ sudo e2fsck -fn /dev/sda1

Iepriekš minētā komanda veiks failu sistēmas pārbaudi. Opcija -f piespiež pārbaudīt, pat ja sistēma šķiet tīra. Opciju -n izmanto, lai atvērtu failu sistēmu tikai lasīšanai un pieņemtu atbildi uz "nē" uz visiem iespējamajiem jautājumiem.

Šīs opcijas būtībā ļauj izmantot e2fsck neinteraktīvi. Ja viss ir kārtībā, jums vajadzētu redzēt rezultātu, kas līdzīgs tam, kas parādīts zemāk redzamajā ekrānuzņēmumā:

Šeit ir vēl viens piemērs, kas parāda kļūdas sistēmā:

Kā salabot Linux failu sistēmu, izmantojot e2fsck

Ja parādās kļūdas, varat mēģināt labot failu sistēmu ar e2fsck, izmantojot opciju “-p”. Ņemiet vērā, ka, lai palaistu zemāk esošo komandu, nodalījums būs jānoņem:

$ sudo e2fsck -p <device file>

Opcijas “-p” mēģina automātiski labot failu sistēmu problēmām, kuras var droši novērst bez cilvēka iejaukšanās. Ja tiek atklāta problēma, kuras dēļ sistēmas administratoram var būt jāveic papildu koriģējošas darbības, e2fsck izdrukās problēmas aprakstu un izies ar kodu 4, kas nozīmē “ Failu sistēmas kļūdas atstātas neizlabotas”. Atkarībā no atrastās problēmas var būt nepieciešamas dažādas darbības.

Ja problēma parādās nodalījumā, kuru nevar noņemt, varat izmantot citu rīku ar nosaukumu e4defrag. Tas ir iepriekš instalēts daudzos Linux rajonos, taču, ja jums tas nav, varat to instalēt ar:

$ sudo apt-get install e2fsprogs         [On Debian and Derivatives]
# yum install e2fsprogs                  [On CentOS based systems]
# dnf install e2fsprogs                  [On Fedora 22+ versions] 

Kā defragmentēt Linux nodalījumus

Tagad ir pienācis laiks defragmentēt Linux nodalījumus, izmantojot šādu komandu.

$ sudo e4defrag <location>
or
$ sudo e4defrag <device>

Kā defragmentēt Linux direktoriju

Piemēram, ja vēlaties defragmentēt vienu direktoriju vai ierīci, varat izmantot:

$ sudo e4defrag /home/user/directory/
# sudo e4defrag /dev/sda5

Kā defragmentēt visus Linux nodalījumus

Ja vēlaties defragmentēt visu sistēmu, drošs veids, kā to izdarīt, ir:

$ sudo e4defrag /

Paturiet prātā, ka šī procesa pabeigšana var aizņemt kādu laiku.

Secinājums

Defragmentēšana ir operācija, kas jums reti būs jāveic Linux operētājsistēmā. Tas ir paredzēts enerģijas lietotājiem, kuri zina, ko tieši dara, un nav ieteicams Linux iesācējiem. Visas darbības mērķis ir optimizēt failu sistēmu tā, lai jaunās lasīšanas/rakstīšanas darbības tiktu veiktas efektīvāk.