⚡ ѕ–ќ…ƒ» Ќќ¬џ… ќЌЋј…Ќ  ”–— ѕќ —≈“≈¬џћ “≈’ЌќЋќ√»яћ —ќ — »ƒ ќ… 50%

до конца скидки осталось

Ќачать обучение 🚀
ћерион Ќетворкс

9 минут чтени€

÷ель данной статьи, чтобы разобратьс€ с тем как поправить незначительные ошибки, возникающие в файловых системах. ‘айловых систем много, поэтому много различных инструментов дл€ работы с ними. ѕоэтому будет рассказано об основных инструментах к основным стандартным системам Linux. » рассмотрим несколько инструментов к рекомендованным LPIC файловым системам.

–ассмотрим, так же журналируемые файловые системы и посмотрим индексные дескрипторы.

  • ѕроверка целостности файловой системы;
  • ѕроверка свободного пространства и индексных дескрипторов в файловой системе;
  • »справление проблем файловой системы.

—писок утилит:

  • df, du, fsck, debugfs Ц общие утилиты дл€ всех Linux систем
  • mke2fs, e2fsck, dumpe2fs, tune2fs Ц утилиты дл€ файловой системы ext
  • xfs_check, xfs_repair, xfs_info, xfs_metadump Ц утилиты дл€ файловой системы xfs

—овершенно пон€тно, что дл€ других файловых систем есть свои утилиты дл€ работы с данными файловыми сиcтемами.

ќбучайс€ в Merion Academy

ѕройди курс по
сетевым технологи€м

Ќачать

ѕерва€ утилита df:

man df
man df

ƒанна€ утилита показывает использование дискового пространства. ” данной утилиты достаточно много ключей. ≈Є особенностью €вл€етс€ то, что она показывает дисковое пространство в 1 кбайт блоках.

Ѕлоки

ƒанные цифры не очень пон€тны и удобны, дл€ того чтобы было удобно можно использовать ключ Цh и тогда вид станет удобно читаемым. ¬ выводе команды мы сразу видим размер, сколько использовано, процент использование и точка монтировани€.  ак мы видим на новом перемонтированном разделе /dev/sdc1 зан€т 1% дискового пространства. ≈сли посмотреть в папку монтировани€ раздела, то мы увидим там папку lost+found. ƒанна€ папка пуста, но занимает 37 ћЅ. ≈сть такое пон€тие индексные дескрипторы в журналируемых файловых системах inode. Inode Ц это метка идентификатора файла или по другому индексный дескриптор. ¬ этих индексных дескрипторах хранитс€ информаци€ о владельце, типе файла, уровне доступа к нему. » нужно понимать, что дл€ каждого файла создаетс€ свой отдельный inode.  оманда df ЦI может показать нам inode.

inode

„исло, например, inode напротив /dev/sda2 показывает сколько inode всего может быть на устройстве, далее сколько используетс€ и сколько свободно. ќбычно под inode отдаетс€ примерно 1% жесткого диска. » получаетс€, что больше чем число inode на устройстве файлов и папок быть не может.  оличество inode зависит от типа файловой системы. ƒалее мы рассмотрим, как пользоватьс€ inode.

—ледующа€ команда du

man du
man du

ƒанна€ команда показывает, что и сколько занимает у нас места на жестком диске, а именно размер папок в текущей директории. ≈сли посмотреть вывод данной команды без ключей, то мы увидим список папок в текущей директории и количество блоков, с которым очень неудобно работать. „тобы перевести данные блоки в человеческий вид, то необходимо дать ключ Цh.

-h

ј дл€ еще большего удобства, можно установить замечательную утилиту ncdu простой командой.

sudo apt install ncdu Цy

ѕосле установки нужно запустить ncdu. » мы увидим очень красивую картинку.

ncdu

Ќо вернемс€ к стандартной утилите du. — помощью данной утилиты мы можем указать в какой папке необходим просмотр папок и вывод их размера.

du Цh  /home

  сожалению данна€ утилита умеет взвешивать вес только каталогов и не показывает размер файлов. ƒл€ того, чтобы посмотреть размер файлов, мы конечно же можем воспользоватьс€ командой ls Цl. ј также если мы запустим данную команду с ключем Цi мы увидим номера inode файлов.

-i

 ак вы видите у каждой папки и у каждого файла есть свой индексный дескриптор.

ƒалее команды, которые нам позвол€т проверить целостность файловой системы.

 оманда fsck

man fsck
man fsck

 ак написано в описании утилиты она позвол€ет провер€ть и чинить Linux файловую систему.

ћы можем видеть, например, в oперационной системе Windows, что в случае некорректного завершени€ работы операционной системы, операционна€ система запускает утилиту проверки целостности checkdisk. ¬ случае необходимости данна€ утилита исправл€ет найденные ошибки в файловой системе. —ледовательно, в Linux данные операции выполн€ет утилита fsck, причем может работать с различными файловыми системами Linux операционных систем. ћы можем попробовать воспользоватьс€ утилитой fsck /dev/sdc1. ¬ ответ от операционной системы мы получим следующее:

fsck /dev/sdc1

 ак мы видим операционна€ система вернула в ответ на команду дл€ работы с данным разделом, что данный раздел с монтирован и операци€ прервана. јналогичную ситуацию мы будем наблюдать в операционной системе Windows, если мы будем пытатьс€ рабочий раздел проверить на ошибки. “.е возникнет следующа€ ситуаци€. ≈сли мы будем провер€ть дополнительный логический диск, где не установлена операционна€ система Windows, то данный раздел на врем€ проведени€ тестов будет отключен и будут идти проверки. ј если мы попытаемс€ проверить основной раздел, куда установлена операционна€ система Windows, то операционна€ система не сможет запустить данную утилиту и попросит перезагрузитьс€ дл€ запуска данной утилиты. ¬ нашем случае придетс€ делать точно так же. ѕоэтому, чтобы проверить необходимо отключить (от монтировать раздел) и после уже этого запускать утилиту.

»з вывода можно заметить утилита пыталась запустить другую утилиту e2fsck, котора€ в данном случае отвечает за проверку файловых систем ext\ext2\ext3\ext4. ќ чем достаточно подробно написано в описании данной утилиты. ѕо сути fsck запускает утилиту ту, котора€ идет в пакете утилит дл€ конкретной файловой системы. Ѕывает такое, что fsck не может определить тип файловой системы.

ƒл€ того, чтобы утилита все-таки проверила файловую систему, необходимо отмонтировать логический раздел. ¬оспользуемс€ командой umount /mnt.

umount /mnt

» запускаем непосредственно саму проверку fsck Цt ext4 /dev/sdc1

fsck Цt ext4 /dev/sdc1

ѕроходит проверка моментально.  оманда fsck запустилась и запустила необходимую утилиту дл€ файловой системы. ѕо результатам проверки файлова€ система чиста€, найдено 11 файлов и 66753 блока. ѕри обнаружении проблем, утилита предложила нам исправить.

ƒл€ того, чтобы посмотреть на проверку другой файловой системы, необходимо переформатировать раздел.

mkfs Цt xfs Цf /dev/sdc1

ѕри попытке запуска проверки без указани€ типа файловой системы fsck /dev/sdc1

fsck /dev/sdc1

 ак мы видим, утилита fsck отказалась провер€ть или вызывать утилиту, а €вно указала на ту которую необходимо использовать в данном случае. ƒл€ проверки используем xfs_ncheck /dev/sdc1. ј дл€ починки файловой системы xfs_repair /dev/sdc1.

xfs_repair /dev/sdc1

ѕеремонтируем обратно наш раздел mount /dev/sdc1 /mnt

“еперь можно получить информацию по разделу xfs_info /dev/sdc1

»ли сделать дамп файловой системы xfs_metadump /dev/sdc1 dump.db

ѕереформатируем файловую систему ext4 на разделе обратно /dev/sdc1. ѕеремонтируем в папку mnt. —оздадим текстовый файл с текстом на данном разделе nano /mnt/test.txt

ƒалее мы можем посмотреть следующую утилиту man debugfs. ƒанна€ утилита умеет очень многое: очень много ключей и различных опций. „истит, удал€ет, чинит, работает с inodes.

man debugfs

«айти в данную утилиту можно debugfs Цw /dev/sdc1. Ќабираем help и видим кучу опций.

help

ћожно попросить данную утилиту вывести содержимое нашего тома.

ls

¬ результате данной команды мы увидим 2 объекта с номерами их inode. “еперь мы можем сказать rm test.txt и файл будет удален, точнее не сам файл а его индексный дескриптор., если посмотреть оп€ть с помощью команды ls. “о будет видно, что количество объектов не изменилось. —ледовательно, мы этот файл в журналируемых файловых системах можем восстановить, восстановив его индексный дескриптор. Ќо только до тех пор, пока на место удаленного файла не был записан другой. »менно поэтому если требуетс€ восстановление информации на диске, рекомендуетс€ немедленно отключить ѕ  и после этого отдельно подключать носитель информации дл€ процедуры восстановлени€. “ак же на данном принципе основано сокрытие информации в »нформационной безопасности, когда на носитель информации в 2 или 3 прохода записываютс€ псевдослучайные данные. ƒл€ восстановлени€ данных мы можем использовать команду lsdel. ƒанна€ команда показывает удаленные файлы.

lsdel

¬ принципе на данном debugfs и основаны многие программы дл€ восстановлени€ данных.

Ќа скриншоте хорошо видно, что был удален 1 inode с номером 12 дата и врем€, другие параметры. ƒл€ выхода используем q. ƒл€ восcтановлени€ используем undel <12> test.txt, команда, номер индексного дескриптора и им€ файла с которым оно восстановитс€. ”бедитьс€, что файл на месте можно с помощью команды ls.

”тилита debagfs помогает восстанавливать файлы и вообще работать с файловой системой на низком уровне.  онечно восстанавливать по 1 файлу, это очень трудозатратно. ѕоэтому вот эти низкоуровневые утилиты используют более современные программы.

≈ще одна утилита dumpe2fs. ћожно вызвать справку по данной утилите man dumpe2fs

man dumpe2fs

ƒанна€ команда делает дамп информации, котора€ хранитс€ на данных томах. ¬ыполним данную команду дл€ /dev/sdc1

ћы получим следующий вывод информации.

/dev/sdc1

ƒанный вывод был сделан на стандартный вывод Ц т.е экран. —делаем вывод в файл, например:

dumpe2fs /dev/sdc1 > /tmp/output.txt 

ћы можем просмотреть информацию в выведенную в файл поэкранно с помощью less /tmp/output.txt

¬ выводе мы сможем увидеть основные опции данной файловой системы.

ѕеределаем файловую систему, текущую ext4 в ext2. Ёто можно сделать 3-м€ способами с помощью утилит: mkfs, mke2fs, mkfs.ext2. ѕеред переформатирование необходимо отмонтировать файловую систему. ѕосле форматировани€ и перемонтируем. ќп€ть снимаем дамп и передаем по конвееру на команду grep чтобы посмотреть features. ѕолучаем следующее:

dumpe2fs /dev/sdc1 | grep features

» видим, что файловые системы отличаютс€, более нова€ файлова€ система имеет фишку журналировани€ has_jounal. ƒанна€ опци€ так же присутствует в ext3. “.е в данных файловых системах имеютс€ журналы с помощью которых удобно восстанавливать.

≈сть интересна€ утилита tune2fs Ц настраивать файловую систему.

man tune2fs
man tune2fs

ƒанна€ утилита, как следует из описани€ настраивает настраиваемые параметры файловых систем. Ќапример, у нас есть не журналируема€ файлова€ система ext2. ћы даем команду tune2fs ЦO has_journal /dev/sdc1. ƒанна€ утилита добавл€ет опцию ведени€ журнала к файловой системе ext2. »ли можем наоборот сказать удалить опцию поставив значок ^.


>