Al onze belangrijke gegevens zit in een bestandssysteem van een type of een ander, en het bestandssysteem problemen zijn gebonden aan gebeuren. Op Linux, kunnen we gebruik maken van de
fsck
commando te vinden en oplossen van fouten in het bestandssysteem.
Bestandssystemen worden Software
File-systemen zijn een van de meest kritische onderdelen van een computer. Zonder bestandsysteem, kan de computer geen gegevens opslaan op een harde schijf, of deze schijf is een mechanisch draaiende schotel of SSD schijf . In feite is een bestandssysteem moet worden gemaakt voordat het besturingssysteem op de harde schijf kan worden geïnstalleerd. Er moet iets voor de bestanden van het besturingssysteem te worden opgeslagen in zijn. Dus een bestandssysteem wordt gemaakt tijdens het installatieproces.
Bestandssystemen zijn aangemaakt door software , Geschreven door software, en een boek uit door software. Zoals u weet, alle complexe software bugs. Onze gegevens is van cruciaal belang voor ons, dus we veel vertrouwen in bestandssystemen en de software die creëert en gebruikt ze nu zetten. Als er iets misgaat, kunnen we de toegang tot delen van het bestandssysteem of zelfs een hele partitie te verliezen.
Modern journaling bestandssystemen zijn beter in het omgaan met problemen die kunnen worden veroorzaakt door een plotseling verlies van macht of een systeemcrash. Ze zijn robuust, maar ze zijn niet onoverwinnelijk. Als hun interne tabellen krijgen scrambled ze kunnen bijhouden waar elk bestand zich bevindt op het station, welke maat het is, wat noem maar op heeft, en welk bestand machtigingen zijn ingesteld op hen te verliezen.
De
fsck
opdracht kunt u controleren of uw bestandssystemen gezond zijn. Als het enige problemen vindt het kan meestal zet ze voor u ook.
Doe de preflightcontroles
Gebruik makend van
fsck
vereist
sudo privileges
. Elke opdracht die verandert in een bestandssysteem behoeften kunt maken om met voorzichtigheid worden behandeld en is beperkt tot degenen die weten wat ze doen.
Piloten niet te springen in een vliegtuig, start het op, en vliegen af in de lichtblauwe ginds. Ze doen preflightcontroles. Er is te veel op het spel om anders te doen. Dat is een goede gewoonte om te ontwikkelen. Voordat u gebruik maken van
fsck
je nodig hebt om ervoor te zorgen dat je gaat om het te gebruiken op het juiste station. Dus voor je iets doet met
fsck
, We gaan een beetje verkenning te doen.
We beginnen met
fdisk
en pijp het in
minder
. We vragen niet om informatie over een specifieke partitie. Door gebruik te maken van de
l
optie (lijst)
fdisk
somt de partitie tabellen op alle apparaten die zich in de “/ proc / partities” bestand, als het bestaat.
sudo fdisk -l | minder
We kunnen de vermeldingen voor zien
/ Dev / sda
en
/ Dev / sdb
. U kunt door het bestand te bladeren om een andere ingangen die kunnen bestaan op uw computer te zien.
De partities op
/ Dev / sda
zijn opgenomen, zoals
/ Dev / sda1
,
/ Dev / sda2
, en
/ Dev / sda3
. Dus hebben we drie partities op de eerste schijf. We kunnen een beetje meer informatie kunt u met behulp van de
gescheiden
opdracht. We zullen gebruik maken van de
'afdrukken'
optie om de partitie tabellen in de terminal venster te openen.
sudo parted / dev / sda 'afdrukken'
We krijgen wat extra informatie deze tijd, met inbegrip van het type bestandssysteem op elke partitie.
Model: ATA VBOX HARDDISK (scsi) Disk / dev / sda: 34.4GB Sector grootte (logische / fysieke): 512B / 512B Partition Table: gpt Disk Vlaggen: Aantal Start Einde Grootte bestandssysteem Naam Categorie 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538MB fat32 EFI Systeempartitie laars, esp 3 540MB 34.4GB 33.8GB ext4
Er zijn drie schijven in deze test computer. Dit zijn de resultaten voor de twee andere stations
/ Dev / sdb
en
/ dev / sdc
. Merk op dat deze bestandssystemen geen "naam" -veld hebben.
Sudo gescheiden / dev / sdb 'print'
Model: ATA VBOX HARDDISK (SCSI) Schijf / dev / sdb: 21.5 GB Sectoromvang (logisch / fysiek): 512B / 512B Partitietabel: MSDOS Schijfvlaggen: Nummer Start Eindgrootte Type Bestandssysteem Vlaggen 1 1049KB 21.5 GB 21.5 GB primaire ext4
Sudo gescheiden / dev / sdc 'afdrukken'
Model: ATA VBOX HARDDISK (SCSI) Schijf / dev / sdc: 21.5 GB Sectoromvang (logisch / fysiek): 512B / 512B Partitietabel: MSDOS Schijfvlaggen: Nummer Start Eindgrootte Type Bestandssysteem Vlaggen 1 1049KB 21.5 GB 21.5 GB primaire ext3
De tweede en derde schijven zijn toevallig dezelfde grootte en heeft elk een enkele partitie. Maar het bestandssysteem op de tweede schijf is
ext4
en het bestandssysteem op de derde drive is de oudere
ext3
.
We passeren een partitie-ID voor
fsck
en het controleert het bestandssysteem op die partitie. Maar we kunnen niet rennen
fsck
op een gemonteerd bestandssysteem. We moeten de aandrijving ontkoppelen. Om dat te doen, moeten we het Mount Point kennen dat de partitie-en dus het bestandssysteem is gemonteerd.
We kunnen dat gemakkelijk vinden met behulp van de
df
opdracht.
DF / Dev / SDB1
DF / Dev / SDC1
Gebruik van de FSCK-opdracht
We hebben alle informatie die we nodig hebben. Het eerste wat we doen is het bestandssysteem ontkoppelen dat we gaan controleren. We gaan werken aan het bestandssysteem op de eerste en enige partitie van
/ dev / sdb
, dat is
/ dev / sdb1
. We zagen eerder dat dit een
ext4
Bestandssysteem, en het is gemonteerd op "/ RUN / MOUND / DAVE / SATA2."
We gebruiken de
umount
opdracht. Opmerking Er is geen "N" in "Umount."
Sudo Umount / Run / Mount / Dave / SATA2
Met
umount
, geen nieuws is goed nieuws. Als je stil bent naar de opdrachtprompt, zijn we goed om te gaan.
SUDO FSCK / Dev / SDB1
Dit bestandssysteem wordt gerapporteerd als schoon. Dat betekent dat het bestandssysteem rapporteert dat deze geen fouten of problemen heeft. Een diepere bestandssysteemcontrole wordt niet automatisch uitgevoerd. We kunnen ook kijken naar de retourcode die
fsck
terug naar de schaal.
Echo $?
De retourwaarde van nul geeft geen fouten aan. De mogelijke retourcodes zijn:
- 0 : Geen fouten
- 1 : Bestandssysteemfouten gecorrigeerd
- 2 : Systeem moet worden opnieuw opgestart
- 4 : Filesystem-fouten die niet gecorrigeerd zijn
- 8 : Operationele fout
- 16 : Gebruiks- of syntaxisfout
- 32 : Controle geannuleerd door gebruikersverzoek
- 128 : Error Shared-Library
Ondanks het bestandssysteem dat als schoon wordt gemeld, kunnen we een cheque van een bestandssysteem dwingen om plaats te vinden, met behulp van de
-F
(Force) -optie.
SUDO FSCK / Dev / SDB1 -F
Deze keer duurt de cheque langer om te voltooien, maar het voert een grondiger test van het bestandssysteem uit. Ons bestandssysteem was inderdaad schoon en er worden geen fouten gerapporteerd. Als kwesties worden gevonden omdat de tests worden uitgevoerd, wordt u gevraagd om te laten
fsck
fixeer het probleem of negeer de fout.
Wanneer u klaar bent met testen, moet u het bestandssysteem opnieuw plaatsen. De eenvoudigste manier om dit te doen is om te gebruiken
monteren
met de
-een
(alle) optie. Deze controles "/ etc / fstab" voor de lijst met bestandssystemen en zorgt ervoor dat ze allemaal zijn gemonteerd, net zoals ze een reguliere opstart zouden volgen.
Sudo Mount -A
Merk op dat we het niet hoeven te vertellen
fsck
Welk type bestandssysteem staat op een partitie; Het hulpprogramma bepaalt dat door het bestandssysteem te onderzoeken. Dat betekent dat we een aanvalssysteem kunnen forceren
/ dev / sdc1
, de
ext3
Bestandssysteem op onze test pc, met behulp van exact dezelfde opdracht die we hebben gebruikt
/ dev / sdb1
, wat is een
ext4
partitie.
SUDO FSCK / DEV / SDC1 -F
Misschien wil je niet rechtstreeks duiken in het oplossen van het bestandssysteem. Je kunt er misschien de voorkeur aan kijken voordat je springt. Je kunt vragen
fsck
Niet te bieden om alles op te lossen en meldt gewoon problemen met het aansluitingsvenster. De
-N
(droge run) Optie doet precies dat:
SUDO FSCK -N / Dev / SDB1
Het tegenovergestelde is om te vertellen
fsck
Om het niet te drukken als het fouten vindt en om gewoon door te gaan en ze te repareren. Gebruik hiervoor de
-Y
(geen aanwijzingen) optie.
SUDO FSCK -Y / Dev / SDB1
FSCK op de rootpartitie gebruiken
Je kunt niet gebruiken
fsck
Op een gemonteerde partitie, maar om uw computer op te starten, moet de rootpartitie worden gemonteerd. Dus hoe kunnen we rennen
fsck
op de root-partitie? Het antwoord is om het opstartproces te onderbreken en te lopen
fsck
in de herstelmodus.
Terwijl uw computer opstart, houdt u een "Shift" -toets ingedrukt. Als je het goed hebt getimed, start je niet op in Linux. Het opstartproces stopt bij een zwart-wit menu. De testmachine die voor dit artikel wordt gebruikt, liep Ubuntu, maar andere distributies hebben hetzelfde type menu, hoewel het kan variëren in uiterlijk. Waar het zegt "ubuntu" in de schermafbeeldingen heeft het de naam van uw distributie.
Verplaats de markeringsbalk met de toetsen "Pijl omhoog" en "OMLAAG", zodat de menu-item "Geavanceerde opties voor Ubuntu" is geselecteerd. Druk op "Enter" om naar het volgende scherm te gaan.
Selecteer de optie die eindigt met "(herstelmodus)." In ons voorbeeld is het "Ubuntu, met Linux 5.11.0-20-generieke (herstelmodus)." Druk op de toets "Enter".
Je ziet het herstelmenu. Selecteer "FSCK Controleer alle bestandssystemen" en druk op de toets "Tab" om het markering naar de knop "OK" te verplaatsen. Druk op Enter."
U ziet een melding dat de rootpartitie wordt gemonteerd, samen met andere partities die zijn gedefinieerd in uw "/ Etc / fstab" -bestand .
Druk op de toets "Tab" om het markering te verplaatsen naar de knop "Ja" en druk op "Enter".
Je zult het zien
fsck
Uitvoeren in de interactieve modus. Als er problemen zijn, wordt u gevraagd om te laten
fsck
repareer ze of om ze te negeren. Wanneer de bestandssystemen zijn gecontroleerd, ziet u opnieuw het herstelmenu.
Selecteer de optie "Resume", druk op de toets "Tab" om het markering naar de knop "OK" te verplaatsen en druk op "Enter". Het opstartproces zal worden hervat en je opstart in Linux.
De herstelmoduslaars kan sommige chauffeurs beïnvloeden, dus het is een goede gewoonte om nog een keer opnieuw op te starten, zodra u opstart in Linux. Dit zorgt ervoor dat uw computer in zijn standaardmode werkt.
Wanneer dingen fout gaan
Veiligheidsnetten zijn er om een reden. Maak kennis met de
fsck
opdracht. Als de behoefte zich voordoet om het op een dag in woede te gebruiken, ben je blij dat je jezelf van tevoren vertrouwd bent.