Straipsnyje paaiškinama, kaip vykdyti rankinę failų sistemos patikrą ir kaip aktyvuoti automatinę failų sistemos patikrą „Linux“ ir „Windows“ sistemose.
Įvadas
Failų sistemos organizuoja duomenų saugojimą, tačiau tam tikromis aplinkybėmis failų sistema gali sugadinti, ir tam tikri jos dalys gali tapti nepasiekiamos. Tai gali sukelti įspėjamuosius pranešimus arba sistema gali pradėti veikti “keistai”, pavyzdžiui, kai procesai žlugo, ir programa daugiau nepradeda veikti. Šiuo atveju turėtumėte patikrinti failų sistemos vientisumą.
„Linux“ failų sistemos patikra (FSCK)
Pirmiausia turėtumėte identifikuoti savo sistemos failų sistemas ir jų skaidinius vykdydami komandą lsblk
.
Jei išvestis atrodo kaip žemiau pateikta išvestis ir TYPE
stulpelyje yra keletas įrašų su RAID
, tai reiškia, kad naudojama programinė RAID. Turėtumėte patikrinti visus md
skaidinius; šiuo pavyzdžiu tai yra md0
, md1
ir md2
:
root@your_host ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 1 loop
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1
├─sda2 8:2 0 512M 0 part
│ └─md1 9:1 0 511.4M 0 raid1
└─sda3 8:3 0 442.6G 0 part
└─md2 9:2 0 442.5G 0 raid1
sdb 8:16 0 447.1G 0 disk
├─sdb1 8:17 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1
├─sdb2 8:18 0 512M 0 part
│ └─md1 9:1 0 511.4M 0 raid1
└─sdb3 8:19 0 442.6G 0 part
└─md2 9:2 0 442.5G 0 raid1
Jei išvestis atrodo daugiau kaip žemiau pateikta išvestis, tai reiškia, kad nėra programinės RAID, turėtumėte patikrinti skaidinius sda1
, sda2
, sda3
ir sdb1
šiame pavyzdyje:
root@your_host ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 1 loop
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 4G 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 442.6G 0 part
sdb 8:16 0 447.1G 0 disk
└─sdb1 8:17 0 446G 0 part
Rodyti failų sistemos patikros informaciją
Naudokite šią komandą, kad patikrintumėte, kada paskutinį kartą buvo vykdoma failų sistemos patikra, ir ar ji jau nustatyta automatinėje veikimo būsenoje:
tune2fs -l /dev/<SKAIDINYS> | grep -i 'mounted|last checked|interval'
Kiekvienai skaidiniui tiesiog pakeiskite vietos rezervuarą <SKAIDINYS>
savo skaidinių pavadinimais ir vykdykite komandas vieną po kitos. Šis pavyzdys skirtas skaidiniui md2
:
tune2fs -l /dev/md2 | grep -i 'mounted|last checked|interval'
Last mounted on: /
Last checked: Tue Feb 13 11:52:32 2020
Check interval: 0 (<none>) # Reiškia, kad automatinis režimas išjungtas
Automatinė failų sistemos patikra
Prieš aktyvuodami periodinę failų sistemos patikrą, pagalvokite apie tai: patikra bus automatiškai atliekama per kai kuriuos ateities paleidimus. Tai gali pratęsti paleidimo procesą ir taip pat jūsų serverio neveikimo laiką. Todėl tam tikromis aplinkybėmis turėtumėte vietoj to vykdyti rankines failų sistemos patikras reguliariais intervalais.
Norėdami aktyvuoti automatinę failų sistemos patikrą, naudokite šias dvi komandas:
tune2fs -c <BOOT_COUNT> /dev/<PARTITION>
tune2fs -i <MIN_TIME_BETWEEN> /dev/<PARTITION>
Įvykdymo metu pakeiskite šiuos parametrus:
<BOOT_COUNT>
– su pakrovimų skaičiumi tarp tikrinimų<PARTITION>
– su skirsnio pavadinimu<MIN_TIME_BETWEEN>
– su minimaliu laiku tarp tikrinimų
Pavyzdžiui, patikrinkite skirsnį md2
kiekvieną 3
pakrovimus su minimaliu laiku tarp jų 1m
(mėnuo):
tune2fs -c 3 /dev/md2
tune2fs -i 1m /dev/md2
Tokius duomenų įvedimus pakartokite visiems savo skirsniams.
Rankinis failų sistemos patikrinimas
Galite pradėti rankinį failų sistemos patikrinimą naudodami sistemos paslaugą vadinamą fsck
(failų sistemos koregavimo tikrinimas). Failų sistemos patikrinimą galima atlikti tik ant nesumontuotų skirsnio dalių, todėl rekomenduojame paleisti Gelbėjimo sistemą. Jei naudojate LVM skirstinius, tai ne visada būtina – šiuo atveju tiesiog pereikite prie kitos sekcijos.
Kai prisijungiate prie Gelbėjimo sistemos, naudokite šią komandą, norėdami pradėti tikrinimą su automatiniais pataisymais:
fsck -fy /dev/<PARTITION>
Šioje komandoje pakeiskite <PARTITION>
į norimus patikrinti skirsnio pavadinimus, palaipsniui, kaip šiame pavyzdyje:
fsck -fy /dev/md0
fsck -fy /dev/md1
fsck -fy /dev/md2
Išvestis jums parodys failų sistemos būklę ir pateiks bet kokius veiksmus, atliktus ją sutvarkant.
Rankinis failų sistemos patikrinimas, naudojant LVM
Jei naudojate LVM (Logical Volume Manager), galite sukurti momentinę kopiją, todėl nereikia išjungti failų sistemos patikrinimo metu. Ir tam tikrais atvejais nereikia paleisti Gelbėjimo sistemos.
-
- Kad sukurtumėte laikiną momentinę kopijos dalį, turite trumpam išjungti failų sistemą:
umount /dev/<volume_group>/<volume>
OR
umount <mountpoint>
Jei išvestis nurodo, kad įrenginys šiuo metu naudojamas, galbūt turėsite nustatyti ir sustabdyti konkretų procesą arba išjungti naudotojus:
umount /dev/vg0/data
umount: /dev/vg0/data: prietaisas užimtas.
(Kai kuriuose atvejuose galite rasti naudingos informacijos apie procesus, kurie naudoja
įrenginį su lsof(8) arba fuser(1).)
Jei tai neįmanoma (pvz., su šaknies failų sistema), turėsite paleisti Gelbėjimo sistemą norėdami atlikti failų sistemos patikrinimą.
-
- Kai jūsų plokštė sėkmingai išjungta, galite sukurti momentinės kopijos dalį:
lvcreate -s -n <snapshot_name> -L <snapshot_size> /dev/<volume_group>/<volume>
Svarbu: Įsitikinkite, kad momentinės kopijos dydis nepilnai užpildytas failų sistemos patikrinimo metu. Momentinės kopijos dydis turi būti šiek tiek didesnis nei tikrai reikia.
Pavyzdys:
lvcreate -s -n my_fsck_snapshot -L 30G /dev/vg0/data
-
- Dabar tiesiog vėl prijunkite tinkamą failų sistemą:
mount /dev/<volume_group>/<volume> <mountpoint>
Pavyzdys:
mount /dev/vg0/data /media/data
-
- Po to galite pradėti failų sistemos patikrinimą ant momentinės kopijos dalies, kaip ir su įprasta skirsnio dalimi:
fsck -fy /dev/<volume_group>/<snapshot_name>
Pavyzdys:
fsck -fy /dev/vg0/my_fsck_snapshot
-
- Galiausiai pašalinkite laikinai sukurtą momentinę kopijos dalį:
lvremove -f /dev/<volume_group>/<snapshot_name>
Pavyzdys:
lvremove -f /dev/vg0/my_fsck_snapshot
Jei nėra poreikio palikti skirsnio prijungto per failų sistemos patikrinimą arba jūs paleidote serverį į Gelbėjimo sistemą, galite tiesiog atlikti failų sistemos tikrinimą (neprijungus) paties skirsnio:
fsck -fy /dev/<volume_group>/<volume>
Pavyzdys:
fsck -fy /dev/vg0/data
Windows failų sistemos patikrinimas (CHKDSK)
Automatinis failų sistemos patikrinimas
Kartais Windows automatiškai paleidžia failų sistemos nuskaitymą paleidimo metu. Bet paprastai, turėsite tai padaryti patys, ypač serverio aplinkoje, kur sistema dažnai neperkraunama. Net jei jums tiesiog kyla keistų problemų su programomis, kurios neišsikrauna arba nuolat žlugo ir kitais būdais neatradote sprendimo, galbūt turėtumėte patikrinti failų sistemą rankiniu būdu.
Rankinis failų sistemos patikrinimas
Failų sistemą galite patikrinti naudodami “Windows Explorer”, bet naudojant komandinę eilutę tai daroma dar paprasčiau. Jei sistema daugiau neįsijungia, galite užklausti “Windows Recovery Image” pagalbos biliete. Tačiau jei esate įsijungę “Windows” sistemą, prašome atidaryti komandinę eilutę su administratoriaus teisėmis:
- Spustelėkite
Windows simbolį
apačioje kairėje kampe arba paspauskiteWindows
arbaSuper
klavišą. - Įveskite
cmd.exe
. - Spauskite
Ctrl
+Shift
+Enter
kartu, kad atidarytumėte komandinę eilutę su administratoriaus teisėmis. - Patvirtinkite rodomą dialogą, spustelėję
Yes
. - Komandinė eilutė turėtų atsiverti, jos pavadinimas prasidės nuo “Administratorius”:
- Prompte įveskite šią komandą ir spustelėkite
Enter
:chkdsk C: /f /r /x
Jeigu jūs esate paleidę šią komandą veikiančioje sistemoje, įprasta matyti tokią žinutę:
Šiuo atveju spauskite
Y
irEnter
. Svarbu: Failų sistemos tikrinimas gali užtrukti ilgai (nuo kelių minučių iki kelių valandų). Todėl rekomenduojame palaukti, kol jūsų serveriui bus patogu atlikti reikalingą perkrovimą, kuris suaktyvins failų sistemos tikrinimą. - Pasirinktinai perkraukite serverį jums patogiu metu.
- Failų sistemos tikrinimas dabar ištirs jūsų failų sistemos vientisumą ir automatiškai pataisys problemas:
- Failų sistemos tikrinimas baigęs, įdiegta sistema turėtų paleisti ir vėl tapti prieinama.
Jei turite daugiau nei vieną FAT, ExFAT ar NTFS formatuotą skirsnį, turėtumėte pakartoti CHKDSK procedūrą su likusiais skirsniais taip pat. Norėdami tai padaryti, atidarykite “Windows Explorer” ir spustelėkite “Computer” kairėje juostoje. Tai parodys tuos skirsnius su jų identifikatoriais (pvz., C:
D:
E:
…). Jei jau tikrinote C:
, tiesiog kartokite procedūrą su likusiais raidinių diskų raidėmis, pakeisdami disko identifikatorių prieš tai paminėtoje komandoje:
chkdsk D: /f /r /x
chkdsk E: /f /r /x
...
Daugiau informacijos rasite Microsoft dokumentacijoje.
Norint suremontuoti ReFS skirsnius naudojant “Windows”, galima naudoti ReFSUtil.
Jei po visų failų sistemų sutvarkymo vis tiek susiduriate su problemomis, galite išbandyti ir “System File Checker” SFC.exe
. Tai taip pat yra aprašyta vadove Microsoft dokumentacijoje.