jak používat příkaz fsck v Linuxu?

příkaz fsck (kontrola konzistence souborového systému) je nástroj pro kontrolu a opravu souborového systému Linux. Moderní souborové systémy s žurnálováním jsou navrženy tak, aby nástroje jako fsck nebyly snadno vyžadovány. V několika případech však může být fsck jedinou možností, jak opravit “špatný” souborový systém.

fsck lze spustit na oddílu, který byl poškozen nebo nekonzistentní se zbytkem souboru.

důvody, proč může být fsck vyžadována

  • nečisté vypnutí-to je hlavní příčina korupce. Kvůli “nečistému vypnutí” může systém selhat při správném spuštění
  • selhání nebo poškození jednotky

obsah

prostředí, kde byste neměli používat fsck

protože příkaz pracuje přímo se sektory souborového systému, je důležité zde přijmout nezbytná opatření.

manuálová stránka e2fsck říká:

Všimněte si, že obecně není bezpečné spouštět e2fsck na připojených souborových systémech. Jedinou výjimkou je, pokud je zadána volba-n A volby-c, – l nebo-L nejsou zadány. Nicméně, i když je to bezpečné, výsledky vytištěné e2fsck nejsou platné, pokud je připojen souborový systém. Pokud se e2fsck zeptá, zda byste měli zkontrolovat připojený souborový systém, jediná správná odpověď je “ne”.

https://www.man7.org/linux/man-pages/man8/e2fsck.8.html

takže musíte udělat fsck na nepřipojeném oddílu. Pokud můžete oddíl odpojit pomocí umount, dobře a dobře. Jinak musíte změnit své prostředí:

1. Režim obnovy

(pro Ubuntu-Hold SHIFT při zavádění do grubu vyberte “Pokročilé možnosti pro Ubuntu”, poté vyberte možnost označenou “režim obnovy” a poté vyberte fsck). V režimu obnovení jsou oddíly namontovány.

režim obnovení Fsck
režim obnovení fsck

2. Při použití parametru jádra init = /bin / bash

(přidržte SHIFT při zavádění pro vstup do grubu, stiskněte e pro úpravu parametrů jádra). Poskytuje Bash shell, odkud lze spustit fsck, ale i zde jsou oddíly namontovány.

parametr jádra init
parametr jádra init

jak používat příkaz fsck?

s jasnými základy přejdeme ke krokům, jak byste měli používat příkaz fsck v Linuxu.

1. Základní použití

než začnete používat příkaz, ujistěte se, že pracujete na nepřipojeném oddílu. Chcete-li odpojit oddíl a spustit fsck na něm Typ :

$ sudo umount /dev/<partition_name>$ fsck /dev/<partition_name>

je pravděpodobné, že oddíl nelze odpojit. V takovém případě můžete zvolit jednu z následujících metod.

2. Spuštění fsck pomocí živého USB

to je pravděpodobně nejlepší způsob, jak spustit fsck. Poskytuje bohatou sadu známých nástrojů, jako je fdisk. Použijte tento tutoriál k vytvoření živého Ubuntu USB. Tato část předpokládá, že používáte Linux z živého USB.

Chcete-li zobrazit všechny oddíly ve vašem systému, můžete použít příkaz fdisk.

$ sudo fdisk -l
NVMe oddíly
NVMe SSD oddíly
Sata Ssd diskové oddíly
SATA SSD diskové oddíly

Poznámka: Výše uvedené oddíly (pro 2 SSD, jeden NVMe a další SATA) se mohou lišit od toho, co máte v systému. fdisk také vytiskne další informace o oddílech. Pro účely tohoto článku však postačuje název oddílu.

Identifikujte oddíl, který způsobuje potíže, a pak jednoduše spusťte:

$ fsck /dev/<partition_name>

to by mělo problém vyřešit.

3. Použití initramfs

dalším způsobem použití příkazu fsck je v režimu intramfs. Dostat se do initramfs

  1. podržte klávesu SHIFT při zavádění, abyste se dostali do nabídky GRUB.
  2. stisknutím e upravte spouštěcí položku
  3. přidejte parametr jádra jako ‘ break‘, jak je znázorněno na obrázku níže
  4. stisknutím Ctrl - X uložte a ukončete
vstup do Initramfs
vstup do Initramfs

initramfs poskytuje “méně lákavý” způsob řešení problémů.

oddíly nejsou připojeny v initramfs, takže provedení fsck by bylo bezpečné. Také potřebujete název oddílu. Initramfs však poskytuje minimum nástrojů. Takže fdisk nebude k dispozici. Oddíly můžete vypsat pomocí příkazu cat, jak je uvedeno níže:

$ cat /proc/partitions

Identifikujte oddíl a poté spusťte:

$ fsck /dev/<partition_name>
Initramfs Fschk
Initramfs Fsck

Poznámka: fsck pomocí Live USB nemusí být vždy k dispozici. V takovém případě použijte metodu initramfs.

jak zkontrolovat, zda je fsck naplánováno nebo ne

možná budete chtít vědět, kdy byl váš oddíl Naposledy zkontrolován nebo kdy bude v budoucnu. V takovém případě spusťte:

$ sudo tune2fs -l /dev/<partition_name> | egrep -i 'check|mount'
zkontrolujte Fsck 1
zkontrolujte Fsck
  • maximální počet připojení je počet připojení, po kterém bude souborový systém automaticky zkontrolován fsck.
  • kontrolní interval je čas mezi dvěma kontrolami souborového systému.

tyto dvě hodnoty stačí k identifikaci, kdy byl příkaz fsck naposledy spuštěn.

rozdíl mezi fsck a e2fsck

můžete najít různé odpovědi / články s žádostí o spuštění e2fsck nebo fsck.ext4 spíše než fsck. Jaký je rozdíl, pokud spustíte některý z těchto nástrojů místo fsck?

fsck je pouze frontend pro všechny příkazy fsck specifické pro souborový systém, jako jsou dva výše uvedené (obal, pokud byste mohli říci). Vyvolání fsck automaticky vyvolá správný souborový systém specifický fsck. Podívejme se, které všechny fsck jsou v našem systému:

$ ls -l /sbin/fsck*
různé fsck
výpis všech fsck

spuštění fsck na oddílu ext2 / 3 / 4 spustí příslušný spustitelný soubor /sbin/fsck.ext* . Tyto spustitelné soubory jsou zase tvrdé odkazy na spustitelný soubor e2fsck. Takže i když spustíte fsck na oddílu ext4, bude nakonec spuštěn e2fsck.

závěr

v tomto tutoriálu jsme se zabývali fsck což je užitečný nástroj pro obnovu souborových systémů. Chcete-li se dozvědět více o příkazu fsck, podívejte se na jeho manuálovou stránku.

Leave a Reply