104.2 Урок 1
Сертифікат: |
LPIC-1 |
---|---|
Версія: |
5.0 |
Розділ: |
104 Пристрої, файлові системи Linux, стандарт ієрархії файлової системи |
Тема: |
104.2 Підтримка цілісності файлових систем |
Урок: |
1 з 1 |
Вступ
Сучасні файлові системи Linux ведуть журнали. Це означає, що кожна операція реєструється у внутрішньому журналі (journal) перед її виконанням. Якщо операція була перервана через системну помилку (наприклад, паніка ядра, збій живлення тощо), її можна відновити, перевіривши журнал, уникаючи пошкодження файлової системи та втрати даних.
Це значно зменшує потребу в ручній перевірці файлової системи, але вона все одно може знадобитися. Незнання інструментів, які використовуються для цього (і відповідних параметрів), може замінити вечерю вдома з сім’єю на цілу ніч у серверній на роботі.
У цьому уроці ми обговоримо доступні інструменти для моніторингу використання файлової системи, оптимізації її роботи та способів перевірки та усунення пошкоджень.
Перевірка використання диска
Є дві команди, які можна використати, щоб перевірити, скільки місця використовується і скільки залишилося у файловій системі. Перша — du
, що означає «використання диска» (disk usage).
du
має рекурсивний характер. У своїй найпростішій формі команда просто покаже, скільки блоків розміром в 1 кілобайт використовується поточним каталогом і всіма його підкаталогами:
$ du 4816 .
Це не дуже корисно, тому ми можемо запитати більш «доступні для розуміння людиною» результати, додавши параметр -h
:
$ du -h 4.8M .
За замовчуванням du
показує лише кількість простору, використаного каталогами (враховуючи всі файли та підкаталоги всередині). Щоб показати індивідуальний підрахунок для всіх файлів у каталозі, використовуйте параметр -a
:
$ du -ah 432K ./geminoid.jpg 508K ./Linear_B_Hero.jpg 468K ./LG-G8S-ThinQ-Mirror-White.jpg 656K ./LG-G8S-ThinQ-Range.jpg 60K ./Stranger3_Titulo.png 108K ./Baidu_Banho.jpg 324K ./Xiaomi_Mimoji.png 284K ./Mi_CC_9e.jpg 96K ./Mimoji_Comparativo.jpg 32K ./Xiaomi FCC.jpg 484K ./geminoid2.jpg 108K ./Mimoji_Abre.jpg 88K ./Mi8_Hero.jpg 832K ./Tablet_Linear_B.jpg 332K ./Mimoji_Comparativo.png 4.8M .
Поведінка за замовчуванням показує використання кожного підкаталогу, а потім загальне використання поточного каталогу, включаючи підкаталоги:
$ du -h 4.8M ./Temp 6.0M .
У наведеному вище прикладі ми бачимо, що підкаталог Temp
займає 4,8 МБ, а поточний каталог, включаючи Temp
, займає 6,0 МБ. Але скільки місця займають файли у поточному каталозі, за винятком підкаталогів? Для цього у нас є параметр -S
:
$ du -Sh 4.8M ./Temp 1.3M .
Tip
|
Майте на увазі, що параметри командного рядка чутливі до регістру: |
Якщо ви хочете зберегти цю різницю між простором, який використовується файлами в поточному каталозі, і простором, який використовується підкаталогами, але також хочете бачити загальну суму в кінці, ви можете додати параметр -c
:
$ du -Shc 4.8M ./Temp 1.3M . 6.0M total
Ви можете контролювати, наскільки «детальним» має бути вихід du
за допомогою параметра -d N
, де N
описує рівні. Наприклад, якщо ви використовуєте параметр -d 1
, він покаже поточний каталог та його підкаталоги, але не їх підкаталоги.
Дивіться різницю нижче. Без -d
:
$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
І обмеження глибини одним рівнем за допомогою -d 1
:
$ du -h -d1 224K ./somedir 232K .
Зверніть увагу, що навіть якщо anotherdir
не відображається, його розмір все одно враховується.
Ви можете виключити деякі типи файлів із підрахунку за допомогою --exclude="PATTERN"
, де PATTERN
є шаблоном, з яким ви хочете порівняти. Розглянемо цей каталог:
$ du -ah 124K ./ASM68K.EXE 2.0M ./Contra.bin 36K ./fixheadr.exe 4.0K ./README.txt 2.1M ./Contra_NEW.bin 4.0K ./Built.bat 8.0K ./Contra_Main.asm 4.2M .
Тепер ми будемо використовувати --exclude
, щоб відфільтрувати кожен файл із розширенням .bin
:
$ du -ah --exclude="*.bin" 124K ./ASM68K.EXE 36K ./fixheadr.exe 4.0K ./README.txt 4.0K ./Built.bat 8.0K ./Contra_Main.asm 180K .
Зауважте, що загальна сума більше не відображає розмір виключених файлів.
Перевірка вільного місця
du
працює на рівні файлів. Існує ще одна команда, яка може показати використання диска та обсяг доступного місця на рівні файлової системи. Ця команда df
.
Команда df
надасть список усіх доступних (вже змонтованих) файлових систем у вашій системі, включаючи їх загальний розмір, скільки місця було використано, скільки вільного місця, відсоток використання та куди змонтовано:
$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 2943068 0 2943068 0% /dev tmpfs 595892 2496 593396 1% /run /dev/sda1 110722904 25600600 79454800 25% / tmpfs 2979440 951208 2028232 32% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 2979440 0 2979440 0% /sys/fs/cgroup tmpfs 595888 24 595864 1% /run/user/119 tmpfs 595888 116 595772 1% /run/user/1000 /dev/sdb1 89111 1550 80824 2% /media/carol/part1 /dev/sdb3 83187 1550 75330 3% /media/carol/part3 /dev/sdb2 90827 1921 82045 3% /media/carol/part2 /dev/sdc1 312570036 233740356 78829680 75% /media/carol/Samsung Externo
Однак відображати розмір у блоках по 1 КБ не дуже зручно. Як і в du
, ви можете додати параметр -h
, щоб отримати більш «зрозумілі для людини» вихідні дані:
$ df -h Filesystem Size Used Avail Use% Mounted on udev 2.9G 0 2.9G 0% /dev tmpfs 582M 2.5M 580M 1% /run /dev/sda1 106G 25G 76G 25% / tmpfs 2.9G 930M 2.0G 32% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup tmpfs 582M 24K 582M 1% /run/user/119 tmpfs 582M 116K 582M 1% /run/user/1000 /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 299G 223G 76G 75% /media/carol/Samsung Externo
Ви також можете використовувати параметр -i
, щоб показати використані/доступні inode (index node) замість блоків:
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on udev 737142 547 736595 1% /dev tmpfs 745218 908 744310 1% /run /dev/sda6 6766592 307153 6459439 5% / tmpfs 745218 215 745003 1% /dev/shm tmpfs 745218 4 745214 1% /run/lock tmpfs 745218 18 745200 1% /sys/fs/cgroup /dev/sda1 62464 355 62109 1% /boot tmpfs 745218 43 745175 1% /run/user/1000
Одним із корисних параметрів є -T
, який також виводитиме тип кожної файлової системи:
$ df -hT Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 2.9G 0 2.9G 0% /dev tmpfs tmpfs 582M 2.5M 580M 1% /run /dev/sda1 ext4 106G 25G 76G 25% / tmpfs tmpfs 2.9G 930M 2.0G 32% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup tmpfs tmpfs 582M 24K 582M 1% /run/user/119 tmpfs tmpfs 582M 116K 582M 1% /run/user/1000 /dev/sdb1 ext4 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 ext4 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 ext4 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 fuseblk 299G 223G 76G 75% /media/carol/Samsung Externo
Знаючи тип файлової системи, ви можете відфільтрувати вихідні дані. Ви можете показати лише файлові системи даного типу за допомогою -t TYPE
або виключити файлові системи заданого типу за допомогою -x TYPE
, як у прикладах нижче.
За винятком файлових систем tmpfs
:
$ df -hx tmpfs Filesystem Size Used Avail Use% Mounted on udev 2.9G 0 2.9G 0% /dev /dev/sda1 106G 25G 76G 25% / /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2 /dev/sdc1 299G 223G 76G 75% /media/carol/Samsung Externo
Показано лише файлові системи ext4
:
$ df -ht ext4 Filesystem Size Used Avail Use% Mounted on /dev/sda1 106G 25G 76G 25% / /dev/sdb1 88M 1.6M 79M 2% /media/carol/part1 /dev/sdb3 82M 1.6M 74M 3% /media/carol/part3 /dev/sdb2 89M 1.9M 81M 3% /media/carol/part2
Ви також можете налаштувати вихідні дані df
, вибравши, що має відображатися та в якому порядку, використовуючи параметр --output=
, за яким слідує список полів, розділених комами. Деякі з доступних полів:
source
-
Пристрій, що відповідає файловій системі.
fstype
-
Тип файлової системи.
size
-
Загальний розмір файлової системи.
used
-
Скільки місця використовується.
avail
-
Скільки вільного місця.
pcent
-
Відсоток використання.
target
-
Куди монтується файлова система (точка монтування).
Якщо ви хочете, щоб результат показував ціль, джерело, тип і використання, ви можете використовувати:
$ df -h --output=target,source,fstype,pcent Mounted on Filesystem Type Use% /dev udev devtmpfs 0% /run tmpfs tmpfs 1% / /dev/sda1 ext4 25% /dev/shm tmpfs tmpfs 32% /run/lock tmpfs tmpfs 0% /sys/fs/cgroup tmpfs tmpfs 0% /run/user/119 tmpfs tmpfs 1% /run/user/1000 tmpfs tmpfs 1% /media/carol/part1 /dev/sdb1 ext4 2% /media/carol/part3 /dev/sdb3 ext4 3% /media/carol/part2 /dev/sdb2 ext4 3% /media/carol/Samsung Externo /dev/sdc1 fuseblk 75%
df
також можна використовувати для перевірки інформації про inode, передаючи наступні поля в --output=
:
itotal
-
Загальна кількість inode у файловій системі.
iused
-
Кількість використаних inode у файловій системі.
iavail
-
Кількість доступних inode у файловій системі.
ipcent
-
Відсоток використаних inode у файловій системі.
Наприклад:
$ df --output=source,fstype,itotal,iused,ipcent Filesystem Type Inodes IUsed IUse% udev devtmpfs 735764 593 1% tmpfs tmpfs 744858 1048 1% /dev/sda1 ext4 7069696 318651 5% tmpfs tmpfs 744858 222 1% tmpfs tmpfs 744858 3 1% tmpfs tmpfs 744858 18 1% tmpfs tmpfs 744858 22 1% tmpfs tmpfs 744858 40 1%
Підтримка файлових систем ext2, ext3 та ext4
Щоб перевірити файлову систему на наявність помилок (і, можливо, виправити їх), Linux надає утиліту fsck
(подумайте про «перевірку файлової системи» (filesystem check), і ви ніколи не забудете назву). У найпростішій формі ви можете викликати перевірку за допомогою fsck
, за яким слід вказати розташування файлової системи, яку ви хочете перевірити:
# fsck /dev/sdb1 fsck from util-linux 2.33.1 e2fsck 1.44.6 (5-Mar-2019) DT_2GB: clean, 20/121920 files, 369880/487680 blocks
Warning
|
НІКОЛИ не запускайте |
fsck
сам по собі не перевірить файлову систему, він просто викличе відповідну утиліту для цього типу файлової системи. У наведеному вище прикладі, оскільки тип файлової системи не вказано, fsck
припуска, що файлова система ext2/3/4 за замовчуванням і викликає e2fsck
.
Щоб вказати файлову систему, використайте параметр -t
, а потім вкажіть ім’я файлової системи, наприклад, fsck -t vfat /dev/sdc
. Крім того, ви можете безпосередньо викликати спеціальну утиліту для файлової системи, наприклад fsck.msdos
для файлових систем FAT.
Tip
|
Введіть |
fsck
може приймати певні аргументи командного рядка. Ось деякі з найпоширеніших:
-A
-
Перевіряє усі файлові системи, перелічені в
/etc/fstab
. -C
-
Відображає індикатор виконання під час перевірки файлової системи. Наразі працює лише на файлових системах ext2/3/4.
-N
-
Виводить те, що буде зроблено, і виходить без фактичної перевірки файлової системи.
-R
-
Якщо використовується разом із
-A
, перевірка кореневої файлової системи буде пропущена. -V
-
Детальний режим, виведе більше інформації, ніж зазвичай, під час роботи. Це корисно для налагодження.
Спеціальними утилітами для файлових систем ext2, ext3 та ext4 є e2fsck
, також є fsck.ext2
, fsck.ext3
та fsck.ext4
(ці три є лише посиланнями на e2fsck
). За замовчуванням вона працює в інтерактивному режимі: коли виявлено помилку файлової системи, вона зупиняється і запитує користувача, що робити. Користувач повинен ввести y
, щоб вирішити проблему, n
, щоб залишити її невиправленою, або a
, щоб вирішити поточну проблему та всі наступні.
Звичайно, сидіти перед терміналом в очікуванні, коли`e2fsck`, запитає, що робити, не є продуктивним використанням вашого часу, особливо якщо ви маєте справу з великою файловою системою. Отже, є параметри, які змушують e2fsck
працювати в неінтерактивному режимі:
-p
-
Спробує автоматично виправити будь-які знайдені помилки. Якщо виявлено помилку, яка вимагає втручання системного адміністратора,
e2fsck
надасть опис проблеми та завершить роботу. -y
-
Дасть відповідь
y
(yes) на всі запитання. -n
-
Протилежність
-y
. Окрім відповідіn
(no) на всі запитання, призведе до того, що файлова система буде змонтована лише для читання, тому її не можна буде змінити. -f
-
Примушує
e2fsck
перевірити файлову систему, навіть якщо вона позначена як “clean”, тобто була правильно відмонтована.
Тюнінг файлової системи ext
Файлові системи ext2, ext3 і ext4 мають ряд параметрів, які можуть бути налаштовані або «покращені» системним адміністратором, щоб краще відповідати потребам системи. Утиліта, яка використовується для відображення або зміни цих параметрів, називається tune2fs
.
Щоб побачити поточні параметри для будь-якої заданої файлової системи, використовуйте параметр -l
, а потім вкажіть пристрій, що представляє розділ. Наведений нижче приклад показує вихідні дані цієї команди на першому розділі першого диска (/dev/sda1
) комп’ютера:
# tune2fs -l /dev/sda1 tune2fs 1.44.6 (5-Mar-2019) Filesystem volume name: <none> Last mounted on: / Filesystem UUID: 6e2c12e3-472d-4bac-a257-c49ac07f3761 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 7069696 Block count: 28255605 Reserved block count: 1412780 Free blocks: 23007462 Free inodes: 6801648 First block: 0 Block size: 4096 Fragment size: 4096 Group descriptor size: 64 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Mon Jun 17 13:49:59 2019 Last mount time: Fri Jun 28 21:14:38 2019 Last write time: Mon Jun 17 13:53:39 2019 Mount count: 8 Maximum mount count: -1 Last checked: Mon Jun 17 13:49:59 2019 Check interval: 0 (<none>) Lifetime writes: 20 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 32 Desired extra isize: 32 Journal inode: 8 First orphan inode: 5117383 Default directory hash: half_md4 Directory Hash Seed: fa95a22a-a119-4667-a73e-78f77af6172f Journal backup: inode blocks Checksum type: crc32c Checksum: 0xe084fe23
Файлові системи ext мають лічильники монтування. Під час кожного монтування файлової системи лічильник збільшується на 1, і коли буде досягнуто порогове значення (максимальна кількість монтувань), система буде автоматично перевірена за допомогою e2fsck
під час наступного завантаження.
Максимальну кількість монтувань можна встановити за допомогою параметра -c N
, де N
– кількість разів, коли файлова система може бути змонтована без перевірки. Параметр -C N
встановлює кількість разів, коли система була змонтована до значення N
. Зауважте, що параметри командного рядка чутливі до регістру, тому -c
відрізняється від -C
.
Також можна визначити часовий інтервал між перевірками за допомогою параметра -i
, за яким слідує число та літери d
для днів, m
для місяців і y
для років. Наприклад, -i 10d
буде перевіряти файлову систему при наступному перезавантаженні кожні 10 днів. Використовуйте нуль як значення, щоб вимкнути цю функцію.
-L
можна використовувати для встановлення мітки для файлової системи. Ця мітка може містити до 16 символів. Параметр -U
встановлює UUID для файлової системи, який є 128-бітним шістнадцятковим числом. У наведеному вище прикладі UUID – це 6e2c12e3-472d-4bac-a257-c49ac07f3761
. Мітку і UUID можна використовувати замість імені пристрою (наприклад, /dev/sda1
) для монтування файлової системи.
Параметр -e BEHAVIOUR
визначає поведінку ядра, коли знайдено помилку файлової системи. Можливі три варіанти поведінки:
continue
-
Буде продовжено виконання в звичайному режимі.
remount-ro
-
Перемонтування файлової системи як доступної лише для читання.
panic
-
Призведе до паніки ядра.
Поведінка за замовчуванням — continue
. remount-ro
може бути корисною у чутливих до даних застосунках, оскільки вона негайно припинить запис на диск, уникаючи нових потенційних помилок.
Файлові системи ext3 в основному є файловими системами ext2 з журналюванням. За допомогою tune2fs
ви можете додати журнал до файлової системи ext2, таким чином перетворивши її в ext3. Процедура проста, просто передайте параметр -j
до tune2fs
, а потім назву пристрою, що містить файлову систему:
# tune2fs -j /dev/sda1
Після цього, під час монтування перетвореної файлової системи, не забудьте встановити тип на ext3
, щоб журнал можна було використовувати.
Коли ви маєте справу з файловими системами з журналюванням, параметр -J
дозволяє використовувати додаткові параметри для встановлення деяких параметрів журналу, наприклад -J size=
для встановлення розміру журналу (у мегабайтах), -J location=
, щоб указати, де журнал має бути збережений (або певний блок, або конкретна позиція на диску із суфіксами на кшталт M
або G
) і навіть розміщувати журнал на зовнішньому пристрої за допомогою -J device=
.
Ви можете вказати кілька параметрів одночасно, розділивши їх комою. Наприклад: -J size=10,location=100M,device=/dev/sdb1
створить журнал розміром 10 МБ у позиції 100 МБ на пристрої /dev/sdb1
.
Warning
|
|
Підтримка файлових систем XFS
Для файлових систем XFS еквівалентом fsck
є xfs_repair
. Якщо ви підозрюєте, що з файловою системою щось не так, перше, що потрібно зробити, це просканувати її для визначення проблем.
Це можна зробити, передавши параметр -n
до xfs_repair
, а потім назву пристрою, що містить файлову систему. Параметр -n
означає “no modify”: файлову систему буде перевірено, повідомлено про помилки, але не буде виправлено:
# xfs_repair -n /dev/sdb1 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan (but do not clear) agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 1 - agno = 3 - agno = 0 - agno = 2 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity... - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify link counts... No modify flag set, skipping filesystem flush and exiting.
Якщо виявлено помилки, ви можете перейти до їх виправлення без параметра -n
, наприклад: xfs_repair /dev/sdb1
.
xfs_repair
приймає ряд параметрів командного рядка. Серед них:
-l LOGDEV
та-r RTDEV
-
Вони потрібні, якщо у файловій системі є зовнішні розділи журналу та реального часу. У цьому випадку замініть LOGDEV та RTDEV відповідними пристроями.
-m N
-
Використовується для обмеження використання пам’яті
xfs_repair
доN
мегабайт, що може бути корисним у налаштуваннях сервера. Згідно з man-сторінкою, за замовчуваннямxfs_repair
буде збільшувати використання пам’яті за потреби до 75% фізичного ОЗП системи. -d
-
«Небезпечний» режим дозволить відновити файлові системи, які змонтовані лише для читання.
-v
-
Ви, можливо, здогадалися: verbose режим. Кожного разу, коли використовується цей параметр, «кількість інформації» збільшується (наприклад,
-v -v
надрукує більше інформації, ніж просто-v
).
Зауважте, що xfs_repair
не може відновити файлові системи з «брудним» журналом. Ви можете «відключити» пошкоджений журнал за допомогою параметра -L
, але майте на увазі, що це останній засіб, оскільки це може призвести до пошкодження файлової системи та втрати даних.
Для налагодження файлової системи XFS можна використовувати утиліту xfs_db
, наприклад, xfs_db /dev/sdb1
. Здебільшого це використовується для перевірки різних елементів і параметрів файлової системи.
Ця утиліта має інтерактивну підказку, таку як parted
, з багатьма внутрішніми командами. Також доступна довідкова система: введіть help
, щоб побачити список усіх команд, і help
, а потім назву команди, щоб побачити більше інформації про команду.
Іншою корисною утилітою є xfs_fsr
, яку можна використовувати для реорганізації («дефрагментації») файлової системи XFS. При виконанні без будь-яких додаткових аргументів вона працюватиме протягом двох годин і намагатиметься дефрагментувати всі змонтовані, доступні для запису файлові системи XFS, перераховані у файлі /etc/mtab/
. Можливо, вам знадобиться інсталювати цю утиліту за допомогою менеджера пакунків для вашого дистрибутива Linux, оскільки вона може не входити до стандартної установки. Для отримання додаткової інформації зверніться до відповідної man-сторінки.
Вправи до посібника
-
Використовуючи
du
, як ми можемо перевірити, скільки місця використовують лише файли в поточному каталозі? -
Використовуючи
df
, виведіть інформацію для кожної файлової системи ext4, а вихідні дані мають містити наступні поля за таким порядком: пристрій, точка монтування, загальна кількість inode, кількість доступних inode, відсоток вільного місця. -
Яка команда запускає
e2fsck
на/dev/sdc1
в неінтерактивному режимі, намагаючись автоматично виправити більшість помилок? -
Припустимо,
/dev/sdb1
є файловою системою ext2. Як ви можете перетворити її на ext3 і в той же час скинути її кількість підключень і змінити її мітку наUserData
? -
Як перевірити наявність помилок у файловій системі XFS, не виправивши будь-які виявлені пошкодження?
Дослідницькі вправи
-
Вважайте, що у вас є файлова система ext4 на
/dev/sda1
з такими параметрами, отриманими за допомогоюtune2fs
:Mount count: 8 Maximum mount count: -1
Що станеться при наступному завантаженні, якщо буде введена команда
tune2fs -c 9 /dev/sda1
? -
Розглянемо наступний результат команди
du -h
:$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
Скільки місця займають лише файли в поточному каталозі? Як ми можемо переписати команду, щоб показати цю інформацію більш чітко?
-
Що станеться з файловою системою ext2
/dev/sdb1
, якщо буде виконана наведена нижче команда?# tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
-
Як ми можемо перевірити наявність помилок у файловій системі XFS на
/dev/sda1
, яка має розділ журналу на/dev/sdc1
, фактично не роблячи жодних дій щодо виправлення помилок? -
Яка різниця між параметрами
-T
та-t
дляdf
?
Підсумки
На цьому уроці ви дізналися:
-
Як перевірити використане та вільне місце у файловій системі.
-
Як налаштувати вихідні дані команди
df
відповідно до ваших потреб. -
Як перевірити цілісність і відновити файлову систему за допомогою
fsck
таe2fsck
. -
Як точно налаштувати файлову систему ext за допомогою
tune2fs
. -
Як перевірити та виправити файлові системи XFS за допомогою
xfs_repair
.
На цьому уроці обговорювалися такі команди:
du
-
Перегляд обсягу дискового простору, який використовується у файловій системі.
df
-
Перегляд обсягу дискового простору, доступного (вільного) у файловій системі.
fsck
-
Утиліта для перевірки та відновлення файлової системи.
e2fsck
-
Утиліта для перевірки та відновлення файлової системи, специфічна для розширених (ext2/3/4) файлових систем.
tune2fs
-
Змінює параметри файлової системи на розширеній (ext2/3/4) файловій системі.
xfs_repair
-
Еквівалент
fsck
для файлових систем XFS. xfs_db
-
Використовується для перегляду різних параметрів файлової системи XFS.
Відповіді на вправи до посібника
-
Використовуючи
du
, як ми можемо перевірити, скільки місця використовують лише файли в поточному каталозі?Спочатку скористайтеся параметром
-S
, щоб відокремити вихідні дані поточного каталогу від його підкаталогів. Потім використайте-d 0
, щоб обмежити глибину виводу до нуля, що означає «без підкаталогів». Не забудьте-h
, щоб отримати вихід у форматі, зручному для сприйняття людиною:$ du -S -h -d 0
або
$ du -Shd 0
-
Використовуючи
df
, виведіть інформацію для кожної файлової системи ext4, а вихідні дані мають містити наступні поля за таким порядком: пристрій, точка монтування, загальна кількість inode, кількість доступних inode, відсоток вільного місця.Ви можете фільтрувати файлові системи за допомогою параметра
-t
, за яким слідує ім’я файлової системи. Щоб отримати необхідний результат, використовуйте--output=source,target,itotal,iavail,pcent
. Отже, відповідь така:$ df -t ext4 --output=source,target,itotal,iavail,pcent
-
Яка команда запускає
e2fsck
на/dev/sdc1
в неінтерактивному режимі, намагаючись автоматично виправити більшість помилок?Параметром, який автоматично намагається виправити більшість помилок, є
-p
. Тож відповідь така:# e2fsck -p /dev/sdc1
-
Припустимо,
/dev/sdb1
є файловою системою ext2. Як ви можете перетворити її на ext3 і в той же час скинути її кількість підключень і змінити її мітку наUserData
?Пам’ятайте, що перетворення файлової системи ext2 в ext3 – це лише питання додавання журналу, що можна зробити за допомогою параметра
-j
. Щоб скинути лічильник монтування, використовуйте-C 0
. Щоб змінити мітку, використовуйте-L UserData
. Правильна відповідь:# tune2fs -j -C 0 -L UserData /dev/sdb1
-
Як перевірити наявність помилок у файловій системі XFS, не виправивши будь-які виявлені пошкодження?
Використовуйте параметр
-n
, наприклад,xfs -n
, а потім вкажіть відповідний пристрій.
Відповіді до дослідницьких вправ
-
Вважайте, що у вас є файлова система ext4 на
/dev/sda1
з такими параметрами, отриманими за допомогоюtune2fs
:Mount count: 8 Maximum mount count: -1
Що станеться при наступному завантаженні, якщо буде введена команда
tune2fs -c 9 /dev/sda1
?Команда встановить лічильник монтування для файлової системи на максимальне значення 9. Оскільки значення лічильника монтування наразі дорівнює 8, наступне завантаження системи спричинить перевірку файлової системи.
-
Розглянемо наступний результат команди
du -h
:$ du -h 216K ./somedir/anotherdir 224K ./somedir 232K .
Скільки місця займають лише файли в поточному каталозі? Як ми можемо переписати команду, щоб показати цю інформацію більш чітко?
Із загальної кількості використаних 232 КБ 224 КБ використовуються підкаталогом
somedir
та його підкаталогами. Отже, за винятком цих файлів у поточному каталозі ми маємо файлів 8K. Цю інформацію можна відобразити більш чітко за допомогою параметра-S
, який розділить каталоги під час підрахунку. -
Що станеться з файловою системою ext2
/dev/sdb1
, якщо буде виконана наведена нижче команда?# tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
Журнал буде додано до
/dev/sdb1
і перетворено на ext3. Журнал буде зберігатися на пристрої/dev/sdc1
, а файлова система перевірятиметься кожні 30 днів. -
Як ми можемо перевірити наявність помилок у файловій системі XFS на
/dev/sda1
, яка має розділ журналу на/dev/sdc1
, фактично не роблячи жодних дій щодо виправлення помилок?Використовуйте
xfs_repair
, за яким введіть-l /dev/sdc1
, щоб вказати пристрій, де буде розміщено розділ журналу, і-n
, щоб уникнути будь-яких змін.# xfs_repair -l /dev/sdc1 -n
-
Яка різниця між параметрами
-T
та-t
дляdf
?Параметр
-T
включатиме тип кожної файлової системи у виведенніdf
.-t
є фільтром і показуватиме у вихідних даних лише файлові системи даного типу, виключаючи всі інші.