Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 16

Автор АлСксСй Π‘Ρ‚Π°Ρ…Π½ΠΎΠ²

Ext2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² супСрблокС для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ состояния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Если файловая систСма смонтирована Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ read/write, Ρ‚ΠΎ Π΅Π΅ состояниС устанавливаСтся ΠΊΠ°ΠΊ Not Clean. Если ΠΆΠ΅ ΠΎΠ½Π° Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ»ΠΈ смонтирована Π·Π°Π½ΠΎΠ²ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ read-only, Ρ‚ΠΎ Π΅Π΅ состояниС устанавливаСтся Π² Clean. Π’ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы эта информация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния нСобходимости Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π―Π΄Ρ€ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² это ΠΏΠΎΠ»Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки. ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ядром ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ нСсоотвСтствия файловая систСма помСчаСтся ΠΊΠ°ΠΊ Erroneous.

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ отсутствиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ функционирования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, поэтому Ext2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’ супСрблокС содСрТится счСтчик монтирования систСмы. Π­Ρ‚ΠΎΡ‚ счСтчик увСличиваСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° систСма монтируСтся Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ read/write. Если Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ достигаСт максимального значСния (ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ хранится Π² супСрблокС), Ρ‚ΠΎ запускаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Π΄Π°ΠΆΠ΅ Ссли Π΅Π΅ состояниС являСтся Clean. Π’ супСрблокС Ρ‚Π°ΠΊΠΆΠ΅ хранится послСднСС врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ этого ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ запускаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Π’ систСмС Ext2 ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Π΅Π΅ настройки. Π’Π°ΠΊ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tune2fs ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния порядка дСйствий ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ошибки. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

β€’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ выполнСния;

β€’ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π·Π°Π½ΠΎΠ²ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ read-only;

β€’ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° систСмы для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ:

β€’ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

β€’ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

β€’ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ логичСских Π±Π»ΠΎΠΊΠΎΠ², Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root.

ЀизичСская структура Ext2

Как ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах, Π² Ext2 сущСствуСт загрузочная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. На ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ (primary, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Fdisk Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft) ΠΎΠ½Π° содСрТит Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΡƒΡŽ запись – Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΡ€ΠΈ запускС. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ пространство Ρ€Π°Π·Π΄Π΅Π»Π° дСлится Π½Π° Π±Π»ΠΎΠΊΠΈ стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π‘Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ 1, 2 ΠΈΠ»ΠΈ 4 ΠšΠ±Π°ΠΉΡ‚. Π‘Π»ΠΎΠΊ являСтся минимальной логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ дискового пространства (Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ кластСром). Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСста Ρ„Π°ΠΉΠ»Π°ΠΌ осущСствляСтся Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.

Π‘Π»ΠΎΠΊΠΈ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ². КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ строСниС. Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΡ… структуру (рис. 4.1).

Рис. 4.1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ²

Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ (Superblock) ОписаниС Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ² (Group Descriptors) Битовая ΠΊΠ°Ρ€Ρ‚Π° Π±Π»ΠΎΠΊΠ° (Block Bitmap) Битовая ΠΊΠ°Ρ€Ρ‚Π° индСксного дСскриптора (Inode Bitmap) Π’Π°Π±Π»ΠΈΡ†Π° индСксных дСскрипторов (Inode Table) Π‘Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² для всСх Π³Ρ€ΡƒΠΏΠΏ, всС ΠΆΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ поля ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ хранится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ², являСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 1024 Π±Π°ΠΉΡ‚Π° ΠΈ располагаСтся ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 1024 Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Копии супСрблока ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ восстановлСнии Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы послС сбоСв.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π² супСрблокС слуТит для доступа ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° дискС. Π’ супСрблокС опрСдСляСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, максимальноС число Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π·Π΄Π΅Π»Π΅, объСм свободного пространства. ΠŸΡ€ΠΈ стартС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы супСрблок считываСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈ всС измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы сначала Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² копию супСрблока, Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° дискС. ΠŸΡ€ΠΈ описании структуры супСрблока ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

β€’ SHORT – ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ – 1 Π±Π°ΠΉΡ‚;

β€’ USHORT – Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ – 1 Π±Π°ΠΉΡ‚;

β€’ LONG – Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ – 4 Π±Π°ΠΉΡ‚Π°;

β€’ ULONG – Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ – 4 Π±Π°ΠΉΡ‚Π°.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° супСрблока ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ I (Ρ‚Π°Π±Π». П1.1).

ПослС супСрблока слСдуСт ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ массивом описаниС Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ² (Group Descriptors). Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° описания Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ I (Ρ‚Π°Π±Π». ΠŸ1.2).

Битовая ΠΊΠ°Ρ€Ρ‚Π° Π±Π»ΠΎΠΊΠΎΠ² (Block Bitmap) β€“ это структура, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΎΡ‚Π²Π΅Π΄Π΅Π½ Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ Π±Π»ΠΎΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ»Ρƒ. Если Π±ΠΈΡ‚ Ρ€Π°Π²Π΅Π½ 1, Ρ‚ΠΎ Π±Π»ΠΎΠΊ занят. Π­Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Π° слуТит для поиска свободных Π±Π»ΠΎΠΊΠΎΠ² Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ мСсто ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ».

Битовая ΠΊΠ°Ρ€Ρ‚Π° индСксных дСскрипторов (Inode Bitmap) выполняСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ индСксных дСскрипторов – ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ дСскрипторы заняты.

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ дСскрипторы Ρ„Π°ΠΉΠ»ΠΎΠ²

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ дСскрипторы Ρ„Π°ΠΉΠ»ΠΎΠ² содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ². ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° дискС соотвСтствуСт ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ индСксный дСскриптор Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ идСнтифицируСтся своим порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ – индСксом Ρ„Π°ΠΉΠ»Π°. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт, Ρ‡Ρ‚ΠΎ число Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ числом индСксных дСскрипторов. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° индСксного дСскриптора Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 (Ρ‚Π°Π±Π». П1.3).

ПолС Ρ‚ΠΈΠΏΠ° ΠΈ ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ (i_mode) прСдставляСт собой слово, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слуТит Ρ„Π»Π°Π³ΠΎΠΌ. Бписок Ρ„Π»Π°Π³ΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏ ΠΈ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 (Ρ‚Π°Π±Π». П1.4).

НСкоторыС индСксныС дСскрипторы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… цСлях. ОписаниС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… индСксных дСскрипторов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 (Ρ‚Π°Π±Π». П1.5).

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΠΎ сути, являСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ состоит ΠΈΠ· записСй ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ структуры. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 (Ρ‚Π°Π±Π». П1.6).

БистСма адрСсации Π΄Π°Π½Π½Ρ‹Ρ…

БистСма адрСсации Π΄Π°Π½Π½Ρ‹Ρ… позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» срСди Π±Π»ΠΎΠΊΠΎΠ² Π½Π° дискС. Π’ Ext2 систСма адрСсации рСализуСтся ΠΏΠΎΠ»Π΅ΠΌ i_block индСксного дСскриптора Ρ„Π°ΠΉΠ»Π°.

ПолС i_block Π² индСксном дСскрипторС Ρ„Π°ΠΉΠ»Π° прСдставляСт собой массив ΠΈΠ· 15 адрСсов Π±Π»ΠΎΠΊΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 12 адрСсов Π² этом массивС (EXT2 NDIR BLOCKS [12]) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой прямыС ссылки Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ адрСс Π² этом массивС являСтся косвСнной ссылкой (адрСсом Π±Π»ΠΎΠΊΠ°), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится список адрСсов ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ адрСс Π² ΠΏΠΎΠ»Π΅ i_block индСксного дСскриптора ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации (double indirect block). Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ содСрТит список адрСсов Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, содСрТат списки адрСсов ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся индСксным дСскриптором.

ПослСдний адрСс Π² ΠΏΠΎΠ»Π΅ i_block индСксного дСскриптора Π·Π°Π΄Π°Π΅Ρ‚ адрСс Π±Π»ΠΎΠΊΠ° Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, Ρ‚. Π΅. Π±Π»ΠΎΠΊΠ° со списком адрСсов Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Ѐайловая систСма Ext2 ΠΏΡ€ΠΈ опСрациях Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ считывании Π±Π»ΠΎΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ядро Π²Ρ‹Π΄Π°Π΅Ρ‚ запрос ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° нСсколько располоТСнных рядом Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΈΠ΅ oneΡ€Π°Ρ†ΠΈΠΈ сильно ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ считывании Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€ΠΈ занСсСнии Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ» файловая систСма Ext2, записывая Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ, Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ рядом Π΄ΠΎ 8 смСТных Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² смСТных Π±Π»ΠΎΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎ ускоряСт ΠΈΡ… Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы.

БрСдства управлСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ext2

БрСдства управлСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы слуТат для создания, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ Π»ΡŽΠ±Ρ‹Ρ… искаТСний Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структуры:

β€’ mke2fs – примСняСтся для установки дискового Ρ€Π°Π·Π΄Π΅Π»Π°, содСрТащСго ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Ext2;

β€’ tune2fs – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

β€’ e2fsck – ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для устранСния нСсоотвСтствий Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС;

β€’ ext2ed – примСняСтся для ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

β€’ debugfs – ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для опрСдСлСния ΠΈ установки состояния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° e2fsck спроСктирована Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ с максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ e2fsck просматриваСт всС индСксныС дСскрипторы Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ провСряСт ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты систСмы. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π±ΠΈΡ‚ΠΎΠ², ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ использованиС Π±Π»ΠΎΠΊΠΎΠ² ΠΈ дСскрипторов.

Если e2fsck Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТатся Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ дСскрипторС, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ с IB ΠΏΠΎ 1D для устранСния нСсоотвСтствия: Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ увСличСния раздСляСмых Π±Π»ΠΎΠΊΠΎΠ², Π»ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ дСскрипторов.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ производится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π‘Π»ΠΎΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° провСряСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π±Π΅Π· ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ дСскрипторС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, провСряСтся сущСствованиС записСй "." (ссылка Π½Π° сСбя) ΠΈ ".." (ссылка Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³), ΠΈ соотвСтствиС Π½ΠΎΠΌΠ΅Ρ€Π° дСскриптора для записи "." Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ связи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° e2fsck провСряСт ΠΏΡƒΡ‚ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ. Π’ этом ΠΆΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ провСряСтся запись ".." для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ВсС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ связи с ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /lost+found.