Софт-Портал

Ext2fs

Рейтинг: 4.9/5.0 (917 проголосовавших)

Категория: Windows

Описание

Ограничение ext2fs по количеству файлов - Admin

Re: Ограничение ext2fs по количеству файлов

Если глянуть структуру ехт2, то можно сделать следующие выводы. Наиболее глобальными ограничивающими фактороми являются _число индексных дескрипторов_(2^32) и _число блоков в файловой системе_(2^32). Каждому файлу соотв. один индексный дескриптор (inode), размер которого сост 128 байт. Несколько имён файлов могут ссылатся на один и тот же inode, т.н. жёсткие ссылки. Запись имени файла в катологе составляет минимум 10 байт. Макс размер католога где-то, 4гб. Теперь если представить что на разделе (300+сист.инф) мб корневой каталог занимает все 300мб, то в нём может содержатся 30*1024*1024=31,457,280 имён файлов, длинной не более 4-х символов. Если записывать симлинки, то их будет гораздо меньше. Теперь про сектора. На сколько я помню, в линуксе есть такое понятие как фрагмент сектора, т.е. сектор делится на несколько фрагментов, которые могут использоваться разными файлами. Сделано это для уменшения потерь своб.диск.простр-ва. Поддержка этой фичи, имхмо, должно быть на уровне ядра, но конкретного случая использования этого, я нигде ещё не встречал. Всё это справедливо для ext2fs rev.0, в rev.1 были какие-то незначительные изменения каталога и ещё чего-там, разбираться времени не было. Вот, вроде так.

anonymous ( 24.12.2001 9:53:31 )

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Ext2fs:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Ext2fs

    A.4. Файловая система EXT2 (The Second Extended File System) A.4.1. Предпосылки создания

    Файловая система EXT2 была pазpаботана с целью устpанения ошибок, обнаpуженных в пpедыдущей системе EXT (Extended File System). Пpи ее создании стояла цель pазpаботать мощную файловую систему, поддеpживающую файловую стpуктуpу системы Unix и пpедоставляющую дополнительные возможности.

    Пpедполагалось, что у системы EXT2 будет неплохая пpоизводительность. Также пpедполагалось, что это будет очень пpочная система, что уменьшит pиск потеpи данных пpи ее интенсивном использовании. К тому же, EXT2 должна иметь возможность pасшиpения без фоpматиpования файловой системы.

    A.4.2. Стандаpтные возможности EXT2fs

    Система EXT2fs поддеpживает стандаpтные типы файлов Unix: обычные файлы, каталоги, файлы устpойств и символические ссылки.

    EXT2fs может упpавлять файловыми системами, установленными на очень больших дисковых pазделах. В то вpемя как ядpо изначально огpаничивает максимальный объем файловой системы до 2 Гб, то новый код VFS увеличивает этот пpедел до 4 Тб. Таким обpазом, тепеpь является возможным пpименение дисков большого объема без необходимости создания большого количества pазделов.

    EXT2fs поддеpживает имена файлов большой длины. Она использует пеpеменную длину записей в каталоге. Максимальный pазмеp имени файла pавен 255 символам. Пpи необходимости этот пpедел может быть увеличен до 1012.

    EXT2fs pезеpвиpует некотоpое количество блоков для пользователя root. Обычно это 5 % от общего количества, что позволяет системному администpатоpу избегать нехватки объема жесткого диска пpи его заполнении pаботой пpоцессов дpугих пользователей.

    A.4.3. Дополнительные возможности EXT2fs

    В дополнение к стандаpтным возможностям Unix, EXT2fs пpедоставляет некотоpые дополнительные возможности, обычно не поддеpживаемые файловыми системами Unix.

    Файловые атpибуты позволяют изменять pеакцию ядpа пpи pаботе с набоpами файлов. Можно установить атpибуты на файл или каталог. Во втоpом случае, файлы, создаваемые в этом каталоге, наследуют эти атpибуты.

    Во вpемя монтиpования системы могут быть установлены некотоpые особенности, связанные с файловыми атpибутами. Опция mount позволяет администpатоpу выбpать особенности создания файлов. В файловой системе с особенностями BSD, файлы создаются с тем же идентификатоpом гpуппы, как и у pодительского каталога. Особенности System V несколько сложнее. Если у каталога бит setgid установен, то создаваемые файлы наседуют идентификатоp гpуппы этого каталога, а подкаталоги наследуют идентификатоp гpуппы и бит setgid. В пpотивном случае, файлы и каталоги создаются с основным идентификатоpом гpуппы вызывающего пpоцесса.

    В системе EXT2fs может использоваться синхpонная модификация данных, подобная системе BSD. Опция mount позволяет администpатоpу указывать чтобы все данные (индексные дескpиптоpы, блоки битов, косвенные блоки и блоки каталогов) записывались на диск синхpонно пpи их модификации. Это может быть использовано для достижения высокой потности записи инфоpмации, но также пpиводит к ухудшению пpоизводительности. В действительности, эта функция обычно не используется, так как кpоме ухудшения пpоизводительности, это может пpивести к потеpе данных пользователей, котоpые не помечаются пpи пpовеpке файловой системы.

    EXT2fs позволяет пpи создании файловой системы выбpать pазмеp логического блока. Он может быть pазмеpом 1024, 2048 или 4096 байт. Использование блоков большого объема пpиводит к ускоpению опеpаций ввода/вывода (так как уменьшается количество запpосов к диску), и, следовательно, к меньшему пеpемещению головок. С дpугой стоpоны, использование блоков большого объема пpиводит к потеpе дискового пpостpанства. Обычно последний блок файла используется не полностью для хpанения инфоpмации, поэтому с увеличением объема блока, повышается объем теpяемого дискового пpостpанства.

    EXT2fs позволяет использовать ускоpенные символические ссылки. Пpи пpименении таких ссылок, блоки данных файловой системы не используются. Имя файла назначения хpанится не в блоке данных, а в самом индексном дескpиптоpе. Такая стpуктуpа позволяет сохpанить дисковое пpостpанство и ускоpить обpаботку символических ссылок. Конечно, пpостpанство, заpезеpвиpованное под дескpиптоp, огpаничено, поэтому не каждая ссылка может быть пpедставлена как ускоpенная. Максимальная длина имени файла в ускоpенной ссылке pавна 60 символам. В ближайшем будующем планиpуется pасшиpить эту схему для файлов небольшого объема.

    EXT2fs следит за состоянием файловой системы. Ядpо использует отдельное поле в супеpблоке для индикации состояния файловой системы. Если файловая система смонтиpована в pежиме read/write, то ее состояние устанавливается как 'Not Clean'. Если же она демонтиpована или смонтиpована заново в pежиме read-only, то ее состояние устанавливается в 'Clean'. Во вpемя загpузки системы и пpовеpке состояния файловой системы, эта инфоpмация используется для опpеделения необходимости пpовеpки файловой системы. Ядpо также помещает в это поле некотоpые ошибки. Пpи опpеделении ядpом несоответствия, файловая система помечается как 'Erroneous'. Пpогpамма пpовеpки файловой системы тестиpует эту инфоpмацию для пpовеpки системы, даже если ее состояние является в действительности 'Clean'.

    Длительное игноpиpование тестиpования файловой системы иногда может пpивести к некотоpым тpудностям, поэтому EXT2fs включает в себя два метода для pегуляpной пpовеpки системы. В супеpблоке содеpжится счетчик монтиpования системы. Этот счетчик увеличивается каждый pаз, когда система монтиpуется в pежиме read/write. Если его значение достигает максимального (оно также хpанится в супеpблоке), то пpогpамма тестиpования файловой системы запускает ее пpовеpку, даже если ее состояние является 'Clean'. Последнее вpемя пpовеpки и максимальный интеpвал между пpовеpками также хpанится в супеpблоке. Когда же достигается максимальный интеpвал между пpовеpками, то состояние файловой системы игноpиpуется и запускается ее пpовеpка.

    Система EXT2fs содеpжит сpедства для ее настpойки. Пpогpамма tune2fs может использоваться для изменения: действий пpи обнаpужении ошибки. Пpи опpеделении ядpом несоответствия, файловая система помечается как 'Erroneous' и может быть выполнено одно из тpех следующих действий: пpодолжение выполнения, монтиpование заново файловой системы в pежиме read-only во избежание ее повpеждения, пеpезагpузка системы для пpовеpки файловой системы. максимального значения монтиpования. максимального интеpвала между пpовеpками.количества логических блоков, заpезеpвиpованных для пользователя root.

    Опции, указываемые пpи монтиpовании, могут также использоваться для изменения действий пpи опpеделении ошибки ядpом.

    Использование атpибутов позволяет пользователям удалять секpетные файлы. Пpи удалении подобного файла, в блоки, котоpые pанее использовались для pазмещения этого файла, записывается случайная инфоpмация. Это пpедотвpащает получение доступа к пpедыдущему содеpжимому этого файла постоpонним, пpи помощи дискового pедактоpа.

    В систему EXT2fs недавно были добавлены новые типы файлов, взятые из файловой системы 4.4 BSD. Файлы пеpвого типа могут использоваться только для чтения: никто не имеет пpава их изменять или удалять. Это может использоваться для защиты важных конфигуpационных файлов. Дpугой тип файлов, это файлы, котоpые могут быть откpыты в pежиме записи, и данные могут быть только добавлены в конец этого файла. Файлы такого типа также не могут быть удалены или пеpеименованы. Они могут использоваться в качестве жуpнальных файлов, котоpые могут только увеличиваться в объеме.

    Ext2fs, ext3fs - Студопедия

    Ext2fs, ext3fs

    Наиболее распространенные файловые системы

    Классификация файловых систем

    По предназначению файловые системы можно классифицировать на следующие категории:

    1) Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется журналирование – это ведение журнала, хранящего список изменений, в той или иной степени помогающего сохранить целостность файловой системы, например в ext3, NTFS, XFS и др .

    2) Для носителей с последовательным доступом (например, магнитные ленты): QIC и др .

    3) Для оптических носителей – CD и DVD: ISO9660, HFS, UDF и др .

    4) Виртуальные файловые системы: AEFS и др .

    5) Сетевые файловые системы: NFS, SSHFS, GmailFS и др .

    FAT (File Allocation Table – таблица размещения файлов ) – это файловая система, используемая в операционных системах DOS и Windows. Получила свое название благодаря таблице, в которой указываются:

    1) непосредственно адресуемые участки логического диска, отведенные для размещения в них файлов или их фрагментов

    2) свободные области дискового пространства

    3) дефектные области диска

    Для хранения файлов всё доступное для них пространство разбивается на кластеры – это логическая единица хранения данных в таблице размещения файлов. Максимальный размер кластера, который поддерживается в FAT, составляет 32 Кб. Существует три версии: FAT12, FAT16 и FAT32. Они отличаются количеством бит, отведённых для хранения номера кластера.

    New Technology File System (файловая система новой технологии) – это стандартная файловая система для семейства операционных систем Microsoft Windows NT. NTFS заменила файловую систему FAT. NTFS поддерживает систему метаданных и использует специализированные структуры данных для хранения информации о файлах для улучшения производительности, надёжности и эффективности использования дискового пространства. NTFS имеет встроенные возможности разграничивать доступ к данным для различных пользователей и групп пользователей. Поскольку NTFS разрабатывалась как файловая система для серверов, то она обладает повышенной надежностью, поскольку содержит средства самовосстановления.

    Размер кластеров от 512 до 64 Кбайт. Теоретически максимально возможные размеры тома и размеры файла составляют 16 Эбайт (1 Эбайт (экзабайт) = 2 64 байт или 16000 млрд. гигабайт). На практике рекомендуется создавать тома, размеры которых не превышают 2 Тб .

    Ext2FS (second extended filesystem) – файловая система для ядра Linux. в составе можно выделить следующие составляющие:

    1) блоки и группы блоков;

    2) индексный дескриптор;

    Всё пространство раздела диска разбивается на блоки фиксированного размера, кратные размеру сектора – 1024, 2048 и 4096 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет экономить место на жестком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера. С целью уменьшения фрагментации и количества перемещений головок жесткого диска при чтении больших массивов данных блоки объединяются в группы блоков.

    Базовым понятием файловой системы является индексный дескриптор (информационный узел), information node, или inode. Это специальная структура, которая содержит информацию об атрибутах и физическом расположении файла.

    Каждая группа блоков имеет одинаковое строение. Суперблок – это основной элемент файловой системы ext2. Он содержит общую информацию о файловой системе.

    При максимальном размере блока 4 Кб размер файлов достигает до 2 Тб .

    Восстановление структуры каталогов файловой системы Ext2fs

    Восстановление структуры каталогов файловой системы Ext2fs

    Очень важно, чтобы вы сразу отключили необходимый раздел командой umount, не производя с ним больше никаких операций. Если вы после удаления необходимых файлов запишите на этот раздел что-нибудь, то ваши шансы на успешное восстановление файлов резко уменьшаются.

    Также вам понадобится достаточно новая версия ядра, потому что ядра 2.0.x и ниже очищают блоки косвенной адресации, что не позволит вам восстановить файлы длиной больше 12 блоков.

    Я опишу лишь один метод восстановления, и не уделю большого внимания ошибкам, которые могут возникнуть в процессе восстановления. Если вы решите, что какой-то из нижеописанных шагов привел к ошибке, то я не рекомендую вам продолжать следовать этим советам.

    Приготовления

    Отключите раздел, на котором находились удаленные файлы. Назовем этот раздел /dev/hdx1:

    Узнайте размер /dev/hdx1 в блоках командой:

    Теперь для дальнейшей работы вам понадобится дополнительный раздел того же размера, что и /dev/hdx1. Предположим, что у вас есть пустой жесткий диск /dev/hdy:

    Создайте на нем раздел того же размера, что и /dev/hdx1. Здесь и ниже размер - это размер раздела /dev/hdx1 в блоках (каждый блок - это 1024 байта), который вы узнали ранее.

    Я использую fdisk версии 2.10f. Если вы используете другую версию fdisk, то работа с ней может различаться.

    fdisk: n <- Создать новый раздел.
    fdisk: p <- Основной раздел.
    fdisk: <- Просто нажмите Enter, чтобы использовать предложенный начальный цилиндр.
    fdisk: +размерK <- создайте раздел, имеющий тот же размер, что и /dev/hdx1.
    fdisk: w <- Запишите таблицу разделов на диск и выйдите из программы.

    Теперь скопируем содержимое исходного раздела на новый диск:

    # dd if=/dev/hdx1 of=/dev/hdy1 bs=1k

    Это может занять дительное время, в зависимости от размера раздела. Вы можете ускорить процесс, увеличив размер блока bs, но вам придется сделать его таким, чтобы раздел состоял из целого количества этих блоков.

    С этого момента мы будем работать только с этой копией исходного раздела, чтобы мы всегда могли откатиться назад, если что-то пойдет не так.

    Находим номера inode удаленных каталогов

    Мы попытаемся выяснить номера inode удаленных каталогов:

    Перейдите к тому месту, где были удаленные каталоги. Внутри debugfs вы можете обычным образом использовать команды ls и cd:

    Эа команда выдаст на экран примерно следующее:

    179289 20600 0 0 0 17-Feb-100 18:26 file-1
    918209 40700 500 500 4096 16-Jan-100 15:18 file-2
    160321 41777 0 0 4096 3-Jun-100 06:13 file-3
    177275 60660 0 6 0 5-May-98 22:32 file-4
    229380 100600 500 500 89891 19-Dec-99 15:40 file-5
    213379 120777 0 0 17 16-Jan-100 14:24 file-6

    Номер inode.

    Первые две (или одна) цифры означают вид inode:

    2 = Символьное устройство

    6 = Блочное устройство

    10 = Обычный файл

    12 = Символьная ссылка

    Следующие четыре цифры - это обычные права доступа к файлу в формате Unix.

    Владелец файла (в числовой форме).

    Группа файла (в числовой форме).

    Размер в байтах.

    Дата (Вы наверно уже заметили здесь "Проблему-2000" в действии =)).

    Теперь выгрузим родительский каталог на диск. Здесь и ниже inode - это соответствующий номер inode (не забудьте символы '<' и '>').

    debugfs: dump <inode> debugfs-dump

    Выйдите из debugfs:

    Анализируем содержимое каталога

    Просмотрите выгруженное содержимое каталога в читаемом формате:

    # xxd debugfs-dump | less

    Каждая запись состоит из пяти полей. Байты первых двух полей представлены в обратном порядке. Это значит, что первый байт - самый младший.

    4 байта - номер inode.

    2 байта - длина этой записи.

    1 байт - длина имени файла (1-255).

    1 байт - тип файла (0-7).

    1 = Обычный файл

    3 = Символьное устройство

    4 = Блочное устройство

    7 = Символьная ссылка

    Имя файла (1-255 символов).

    Если запись удаляется из каталога, то размер предыдущей записи увеличивается на размер удаляемой записи (предыдущая запись как бы "съедает" следующую).

    Если файл переименовывается в более короткое имя, то уменьшается значение третьего поля.

    Первая запись, которую вы увидите - это сам каталог, представляемый одной точкой.

    Предположим, что у нас есть следующая запись в каталоге:

    c1 02 0e 00 40 00 05 01 'u' 't' 'i' 'l' 's'

    В ней номер inode будет "e02c1" (в шестнадцатиричной форме) или 918209 (в десятичной). Следующая запись находится через 64 байте (шестнадцатиричное 40). Мы также видим, что имя файла состоит из 5 байт ("utils") и что тип файла (01) соответствует обычному файлу.

    Теперь пересчитаем номера inode подкаталогов в десятичную форму.

    Если вы не любите производить такие операции вручную, то я для вас написал небольшую программу на C. Программа берет содержимое каталога (созданное debugfs, как описано ранее в разделе Разд. Находим номера inode удаленных каталогов). На стандартном выводе вы получаете список имен файлов и номеров inode.

    Перед запуском этой программы вам надо загрузить записанное содержимое каталога в двоичный редактор и изменить поле "длина записи каталога" в записи, предшествующей восстанавливаемой. Это просто: если мы обозначим длину предшествующей записи как x, а длину записи, которую вы хотите восстановить как y, то вам надо заменить поле, содержащее x на x-y.

    Программа называется e2dirana (ext2fs directory analyse), и ее можно найти по адресу http://www.matematik.su.se/

    Находим удаленные inode

    Получаем список всех удаленных inode.

    # echo lsdel | debugfs /dev/hdy1 > lsdel.out

    Одна проблема состоит в том, что debugfs не выдаст номера inode файлов, у которых была нулевая длина (у вас могли быть такие файлы, например, в каталоге /etc). Я опишу решение этой проблемы в разделах Разд. Пересчет и Разд. Последние коррективы.

    Загрузите "lsdel.out" в текстовый редактор. Список inode должен быть отсортирован по времени удаления. Попробуйте точно вспомнить время, когда вы дали команду rm -rf. Скорее всего, это была последняя команда, и удаленные inode будут находиться в конце списка. Удалите все не интересующие вас строки. Запишите этот файл как "lsdel.out-selected".

    Теперь мы удалим из этого файла все, кроме номеров inode:

    # cut -b 1-8 lsdel.out-selected | tr -d " " > inodes

    Для полной уверенности проверьте, что удаленные каталоги, номера которых мы нашли ранее, находятся в этом списке.

    # grep ^inode$ inodes

    где inode - это соответствующий номер inode.

    Теперь пришло время изменить некоторые флаги удаленных inode.

    Скопируйте следующие 6 строк в файл, назвав его "make-debugfs-input".

    Этим мы имитируем ручное исправление inode. Мы устанавливаем время удаления в 0 и количество ссылок в 1.

    Я использую debugfs версии 1.18, и, если у вас другая версия, то вам, возможно, придется изменить количество "нажатий" клавиши Enter в вышеприведенном скрипте.

    Теперь изменяем inode:

    # ./make-debugfs-input < inodes | debugfs -w /dev/hdy1 | tail -c 40

    Если все пройдет хорошо, то последнее сообщение должно быть таким: "Triple Indirect Block [0] debugfs:".

    Добавляем записи в каталоги

    Запустите debugfs в режиме чтения-записи.

    # debugfs -w /dev/hdy1

    Теперь вым надо добавить удаленные каталоги в каталог, где они ранее находились:

    debugfs: link <inode> directoryname

    Здесь inode - это номер inode, а directoryname - это номер каталога.

    После того, как вы добавите ссылки, вы заметите, что удаленные каталоги появились в текущем каталоге. Вы можете теперь просмотреть его содержимое (при помощи debugfs).

    Правда, размер каждого каталога равен 0, и это надо исправить, иначе они будут выглядеть пустыми в команде ls.

    Выйдите из debugfs:

    Пересчет

    Теперь наступило время вызвать e2fsck для пересчета размеров и контрольных сумм.

    Я использую e2fsck версии 1.18. Если у вас другая версия, то, возможно, ее параметры или сама работа с программой могли измениться.

    Если вы точно знаете, что у вас НЕ было файлов с нулевой длиной, то вы можете сделать следующее: (см. ниже); и пропустить все остальное (Вы, конечно, можете не использовать параметр y, но вам придется вручную отвечать на все вопросы - это может занять длительное время.).

    # e2fsck -f -y /dev/hdy1 > e2fsck.out 2>&1

    Если же вы хотите восстановить файлы с нулевой длиной, то вам надо ответить n на все вопросы об удалении записей и y на все остальные.

    Скопируйте следующие 7 строк в файл "e2fsck-wrapper".

    # ./e2fsck-wrapper /dev/hdy1 > e2fsck.out 2>&1

    Просмотрите файл "e2fsck.out", чтобы узнать, что сообщил e2fsck о вашем разделе.

    Если каталог /lost+found не пуст

    Некоторые из ваших каталогов или файлов могут не появиться в обычных местах. Вместо этого они могут появиться в каталоге /lost+found под именами, состоящими из их номеров inode и старых имен.

    В этом случае указатель в элементе ".." каталога скорее всего изменился, и указывает на один из последних файлов каталога (я не знаю, почему это происходит - возможно, это ошибка в драйвере файловой системы).

    Изучите 3-ю фазу файла "e2fsck.out" (в ней проверяется связность каталогов). Там вы увидите названия каталогов, которые были затронуты e2fsck. Запишите их на диск (как было описано в главе Разд. Находим номера inode удаленных каталогов).

    Запустите e2dirana как с флагом p, так и без него (так вы измените указатель на ".."). Здесь и ниже dump - это записанное на диск содержимое каталога.

    # ext2fs-directory-analyse dump > dump1
    # ext2fs-directory-analyse -p dump > dump2

    Сравните результат работы программ

    # diff dump1 dump2

    Если эти файлы не равны, значит в этом каталоге есть пропавшие файлы. Переместите данные файлы из каталога /lost+found в правильное место. Здесь dest - это симвользная ссылка на каталог-приемник. Поместите результат работы этого мини-скрипта в файл, и запустите его, если там все правильно.

    # diff dump1 dump2 |\
    tail -n $[`diff dump1 dump2 | wc -l`-1] | cut -b 3- |\
    sed -e 's/^\([^ ]*\) \(.*\)$/mv lost+found\/#\1 dest\/"\2"/' |\
    sed -e 's/!/"\\\!"/g'

    Повторяйте эти действия до тех пор, пока каталог /lost+found не будет пуст.

    Что такое?

    Что такое " ext2fs.sys " ?

    В нашей базе содержится 18 разных файлов с именем ext2fs.sys. You can also check most distributed file variants with name ext2fs.sys. Чаще всего эти файлы принадлежат продукту Ext2 IFS for Windows XP/2003 (x86). Наиболее частый разработчик - компания Stephan Schreiber. Самое частое описание этих файлов - Ext2 File System Driver. Этот файл содержит драйвер. Вы можете найти его в разделе драйверов в System Explorer.

    Подробности о наиболее часто используемом файле с именем "ext2fs.sys"

    Продукт: Ext2 IFS for Windows XP/2003 (x86) Компания: Stephan Schreiber Описание: Ext2 File System Driver Версия: 1.11.0.2 MD5: fbc0e085a5becba5dd3c401eeb6e45bb SHA1: a24ee16012d0c6a5ac949dd524e4d187a0fdaa05 SHA256: b23a0123fff43bf56e31c88dee00ed2e2b91529fd53da806a37163f91675bc85 Размер: 181120 Папка: C:\Windows\System32\DRIVERS ОС: Windows XP Частота: Высокая

    Проверьте свой ПК с помощью нашей бесплатной программы

    System Explorer это наша бесплатная. удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем.

    Драйвер "ext2fs.sys" безопасный или опасный?

    Последний новый вариант файла "ext2fs.sys" был обнаружен 68 дн. назад. В нашей базе содержится 12 шт. вариантов файла "ext2fs.sys" с окончательной оценкой Безопасный и ноль вариантов с окончательной оценкой Опасный. Окончательные оценки основаны на комментариях, дате обнаружения, частоте инцидентов и результатах антивирусных проверок.

    Драйвер с именем "ext2fs.sys" может быть безопасным или опасным. Чтобы дать правильную оценку, вы должны определить больше атрибутов файла. Самый простой способ это сделать - воспользоваться нашей бесплатной утилитой для проверки файлов посредством нашей базы данных. Эта утилита содержит множество функций для контролирования вашего ПК и потребляет минимум системных ресурсов.
    Щёлкните здесь, чтобы загрузить System Explorer.

    Комментарии пользователей для "ext2fs.sys"

    У нас пока нет комментариев пользователей к файлам с именем "ext2fs.sys".

    Добавить комментарий для "ext2fs.sys"

    Для добавления комментария требуется дополнительная информация об этом файле. Если вам известны размер, контрольные суммы md5/sha1/sha256 или другие атрибуты файла, который вы хотите прокомментировать, то вы можете воспользоваться расширенным поиском на главной странице.

    Если подробности о файле вам неизвестны, вы можете быстро проверить этот файл с помощью нашей бесплатной утилиты. Загрузить System Explorer .

    Проверьте свой ПК с помощью нашей бесплатной программы

    System Explorer это наша бесплатная. удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем. Программа действительно бесплатная, без рекламы и дополнительных включений, она доступна в виде установщика и как переносное приложение. Её рекомендуют много пользователей.

    Глава 4

    Теперь, когда вы научились запускать Linux и завершать работу с этой системой, надо познакомиться с устройством одной из основных ее частей — файловой системы. Файловая система — это структура, с помощью которой ядро операционной системы предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, т. е. памяти на различного вида долговременных носителях информации — жестких дисках, магнитных лентах. CD-ROM и т. п.

    Подобно луне, которая обращена к нам всегда одной стороной, файловая система тоже обращена к пользователю (может быть, лучше сказать — к приложениям) постоянно одной стороной. С этой, видимой для пользователей стороны, файловая система выглядит как логическая структура каталогов и файлов. Но у нее есть и другая сторона, обращенная к носителям, образующая внутреннее (с точки зрения пользователя) устройство файловой системы. Эта невидимая сторона файловой системы устроена далеко не просто. Дело в том, что она реализует механизмы записи файлов на различные носители, алгоритмы доступа (выборки нужной информации) и многое другое.

    В настоящем разделе мы рассмотрим файловые системы только с той стороны, которая обращена к пользователям. Обратную, невидимую для пользователей, сторону файловой системы мы будем изучать в гл. 16. Надо еще, может быть, отметить, что речь пойдет конкретно о файловой системе типа ext2fs, основном на данный момент типе файловых систем для Linux (существуют и другие типы файловых систем, об этом тоже будет сказано в гл. 16 ).

    4.1. Файлы и их имена

    Компьютер есть не что иное, как инструмент для обработки информации. А информация в любой ОС хранится на носителях в виде файлов. С точки зрения ОС файл представляет собой непрерывный поток (или последовательность) байтов определенной длины. Внутренний формат файла операционную систему не интересует. Но ОС должна дать файлу какое-то имя, с помощью которого пользователь, а точнее, программы-приложения, будут обращаться к файлу. Как организовать это обращение — дело файловой системы, пользователя это чаще всего не интересует. Поэтому с точки зрения пользователя файловая система выглядит как логическая структура каталогов и файлов.

    Имена файлов в Linux могут иметь длину до 255 символов и состоять из любых символов, кроме символа с кодом 0 и символа / (слэша). Однако имеется еще ряд символов, которые имеют в оболочке shell специальное значение и которые поэтому не рекомендуется включать в имена. Это следующие символы:

    Если имя файла содержит один из этих символов (это не рекомендуется, но возможно), то вы должны перед этим символом поставить символ обратного слэша "\" (в том числе и перед самим этим слэшем, т. е. повторить его дважды).

    [user]$ mkdir \\my\&his

    Можно также заключить имя файла или каталога с такими символами в двойные кавычки. Например, для создания каталога с именем "My old files" следует использовать команду:

    [user]$ mkdir "My old files"

    так как команда

    [user]$ mkdir My old files

    создаст каталог с именем "My".

    Аналогичным образом можно поступать и с другими символами, перечисленными выше, т. е. их можно включать в имена файлов, если имя файла взять в двойные кавычки или отменить специальное значение символа с помощью обратного слэша. Но все же предпочтительнее не использовать эти символы, включая пробел, в именах файлов и каталогов, потому что могут возникнуть проблемы при обращении к таким файлам из некоторых приложений, а также при переносе таких файлов в другие файловые системы.

    Но к точке сказанное не относится, и в Linux часто ставят более одной точки в именах файлов, например, This_is.a.forth-chapter_of_my_book.about.Linux. При этом теряет смысл такое понятие (принятое в DOS), как расширение имени файла, хотя все же часто последние части имени, отделенные точками, используют для обозначения файлов каких-то особых типов (например. tar.gz используется для обозначения сжатых архивов). Но исполняемые и неисполняемые файлы в Linux распознаются не по расширениям имен файлов. Для этого существуют другие признаки, о которых мы скажем чуть позже. Точка имеет особое значение в именах файлов. Если она является первым символом имени, то данный файл считается скрытым для некоторых команд, например, он не показывается при выполнении команды ls.

    В Linux различаются символы верхнего и нижнего регистра в именах файлов. Поэтому FILENAME.tar.gz и filename.tar.gz вполне могут существовать одновременно и являться именами разных файлов.

    Мы привыкли считать, что файл полностью определяется его именем. Однако с точки зрения ОС и файловой системы это немного не так (точнее, совсем не так). Хотя мы будем говорить о внутреннем устройстве файловой системы только в конце книги (гл. 16 ), кое-что надо сказать уже сейчас.

    Каждому файлу в Linux соответствует так называемый "индексный дескриптор" файла, или "inode", (однозначного перевода этого термина на русский язык не существует, в разных книгах эту структуру называют по-разному). Именно индексный дескриптор содержит всю необходимую файловой системе информацию о файле, включая информацию о расположении частей файла на носителе, типе файла и многое другое. Индексные дескрипторы файлов содержатся в специальной таблице (inode table), которая создается при создании файловой системы на носителе. Каждый логический и физический диск имеет собственную таблицу индексных дескрипторов. Дескрипторы в этой таблицы пронумерованы последовательно, и именно номер дескриптора файла является его истинным именем в системе (этот номер мы будем называть индексом файла). Однако для человека такая система имен неудобна. Сможете ли вы вспомнить, что сохранили в файле с номером 56734? Поэтому файлам даются еще "человеческие" имена, и помимо этого файлы группируются в каталоги.

    Приведенная выше информация нужна здесь только для того, чтобы сказать, что имя любого файла в Linux является ни чем иным, как ссылкой на индексный дескриптор файла. Поэтому каждый файл может иметь сколько угодно разных имен. Эти имена называют еще "жесткими" ссылками. Когда вы удаляете файл, имеющий несколько разных имен — жестких ссылок, то фактически удаляется только одна ссылка — та, которую вы указали в команде удаления файла. Даже когда вы удаляете последнюю ссылку, это еще может не означать удаления содержимого файла — если файл еще используется системой или каким-то приложением, то он сохраняется до тех пор, пока он не "освободится".

    Для того, чтобы дать файлу (или каталогу) дополнительное имя (создать жесткую ссылку), используется команда ln в следующем формате:

    ln имя_существующего_файла новое_имя

    [user]$ ln /home/howto/font-HOWTO-ru/Font-HOWTO.html

    здесь и вообще в системе означает домашний каталог пользователя, о котором будет сказано чуть дальше). Теперь можно вместо длинного имени /home/howto/font-HOWTO-ru/Font-HOWTO.html использовать просто

    /fonts.html. Подробнее о команде ln вы можете прочитать на странице интерактивного руководства man.

    Число жестких ссылок на файл (т. е. разных имен файла) можно узнать, выполнив команду ls с параметром –l. Сразу за перечислением прав доступа к файлу следует число, которое и обозначает число жестких ссылок на файл:

    drwxr-xr-x 2 user users 1024 Jul 1 2000 Autostart

    -rw-r--r-- 1 user users 230 Sep 14 1999 Printer.kdelnk

    -rw-r--r-- 1 user users 159 Sep 15 1999 Red Hat

    ФАЙЛОВАЯ СИСТЕМА ОС LINUX (Linux File System)

    Как уже было сказано. файловая система - одна из основных составных частей любой операционной системы, так как она обеспечивает хранение информации на физических носителях и доступ приложений к этой информации. В разделе 4 была достаточно подробно рассмотрена та сторона файловой системы, которая обращена к пользователю - логическая структура каталогов и файлов. В этом разделе мы рассмотрим внутренние механизмы работы файловых систем, то есть обратную (невидимую для пользователя) сторону файловой системы. Эта сторона обращена к физическим устройствам и определяет способ хранения информации на носителях и механизмы записи и извлечения этой информации по запросам приложений. Здесь в основе всего лежит способ адресации отдельных участков носителя и механизмы размещения отрезков файла по этим участкам.

    Но, прежде чем перейти к описанию конкретных механизмов, стоит отметить, что Линукс умеет работать с несколькими типами файловых систем. Основной файловой системой для Линукс является "вторая расширенная файловая система" (second extended filesystem), которую кратко обозначают как ext2fs. Именно ее механизмы будут подробно рассматриваться в настоящем разделе. Но прежде, чем перейти к ее рассмотрению, ненадолго отвлечемся для того, чтобы перечислить некоторые типы файловых систем, которые поддерживаются в Линукс. Эту табличку нельзя считать полной по той простой причине, что работа по созданию новых типов файловых систем для Линукс продолжается постоянно. Примером вновь разрабатываемых файловых систем являются журналируемая файловая система JFS фирмы IBM, файловая система ReiserFS. Эти системы и их отличия от основной на настоящий момент файловой системы Линукс, ext2fs. мы постараемся рассмотреть в конце этого раздела.

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

    В этой табличке мы просто кратко перечисляются основные типы файловых систем, с которыми может работать Линукс. А теперь подробнее рассмотрим основной на сегодняшний день тип файловой системы для Линукс - ext2fs .("Научить" Линукс использовать эти и другие ФС можно после переконфигурирования ядра ОС)

    Файловая система minix - это первая файловая система, которая использовалась в Линукс. Она имела массу недостатков: ограничения размера раздела жесткого диска 64 мегабайтами; длина имени файла была ограничена 30 символами и т.д. Она продолжает использоваться для дискет и RAM-дисков.

    Еще одна из ранних версий файловой системы для Linux, расширение файловой системы minix. В настоящее время заменена файловой системой ext2 и уже не используются

    Вторая расширенная файловая система (second extended filesystem) была создана как расширение расширенной файловой системы (extfs). ext2fs обеспечивает более высокую производительность (в части скорости и использования центрального процессора), поддерживаются длинные имена и большие размеры файлов.

    Файловая система Xiaf была создана на основе minix с целью обеспечения большей устойчивости и безопасности. Она обеспечивает выполнение основных функций файловой системы без излишней сложности.

    Файловая система, используемая для разделов, сформатированных в MS-DOS и Windows. Имена файлов в msdos должны удовлетворять стандарту 8.3.

    Файловая система UMS-DOS является расширением файловой системы DOS, используемым под Linux. В ней добавлено использование длинных имен файлов, идентификаторы пользователя и группы (UID/GID), разрешения в стиле POSIX и специальные файлы (устройства, именованные каналы и т.д.) при этом совместимость с DOS не потеряна.

    Файловая система для разделов OS/2. В Линукс обеспечивается только чтение из разделов hpfs.

    Это файловая система, которая используется для обращения к структурам данных ядра. Файлы этой системы не занимают дискового пространства. Подробнее см. man proc(5).

    Сетевая файловая система, используемая для доступа к дискам, расположенным на удаленных компьютерах.

    Размер описания группы блоков можно вычислить как (размер_группы_блоков_в_ext2 * число_групп) / размер_блока (при необходимости округляем).

    Информация, которая хранится в описании группы, используется для того, чтобы найти битовые карты блоков и индексных дескрипторов, а также таблицу индексных дескрипторов. Не забывайте, что блоки и группы блоков нумеруются начиная с 1.

    Битовая карта блоков (block bitmap) - это структура, каждый бит которой показывает, отведен ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда надо выделить место под файл, Битовая карта блоков занимает число блоков, равное (число_блоков_в_группе / 8) / размер_блока (при необходимости округляем).

    Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает какие именно дескрипторы заняты.

    Следующая область в структуре группы блоков служит для хранения таблицы индексных дескрипторов файлов. Структура самого индексного дескриптора подробнее рассматривается в следующем подразделе.

    Ну, и наконец, все оставшееся место в группе блоков отводится для хранения собственно файлов.

    2.3. Индексные дескрипторы файлов

    Каждому файлу на диске соответствует один и только один индексный дескриптор файла, который идентифицируется своим порядковым номером - индексом файла. Это означает, что число файлов, которые могут быть созданы в файловой системе, ограничено числом индексных дескрипторов, которое либо явно задается при создании файловой системы, либо вычисляется исходя из физического объема дискового раздела.

    Индексный дескриптор файла имеет следующее строение:

    Отдельная запись в каталоге не может пересекать границу блока (то есть должна быть расположена целиком внутри одного блока). Поэтому, если очередная запись не помещается целиком в данном блоке, она переносится в следующий блок, а предыдущая запись продолжается таким образом, чтобы она заполнила блок до конца.

    2.4. Система адресации данных

    Система адресации данных - это одна из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске. В ext2fs система адресации реализуется полем i_block индексного дескриптора файла.

    Поле i_block в индексном дескрипторе файла представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве (EXT2_NDIR_BLOCKS [12]) представляют собой прямые ссылки (адреса) на номера блоков, в которых хранятся данные из файла. Следующий адрес в этом массиве (EXT2_IND_BLOCK) является косвенной ссылкой, то есть адресом блока, в котором хранится список адресов следующих блоков с дан

    ными из этого файла. В этом блоке могут быть записаны адреса (размер_блока / размер_ULONG) блоков с данными файла.

    Следующий адрес в поле i_block индексного дескриптора (EXT2_DIND_BLOCK) указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые в свою очередь содержат списки адресов следующих блоков данных того файла, который задается данным индексным дескриптором.

    И, наконец, последний адрес (EXT2_TIND_BLOCK) в поле i_block индексного дескриптора задает адрес блока тройной косвенной адресации, то есть блока со списком адресов блоков, которые являются блоками двойной косвенной адресации.

    Теперь Вы знаете, как устроены индексные дескрипторы файлов, то есть знаете, как в файловой системе ext2fs осуществляется запись в файл и чтение из файла.

    Может быть здесь еще надо бы рассказать о команде mkfs. которая служит для создания файловой системы в разделе диска. а за более подробными пояснениями читатель может обратиться к интерактивным руководствам.

    2.5. Виртуальная файловая система VFS

    До сих пор наш рассказ о файловой системе касался только "статических", если можно так выразиться, составных частей файловой системы. Но, я думаю, Вы понимаете, что все это хозяйство обслуживается какими-то программными модулями. Эти программные части можно разделить на две составных части. Одна часть входит в состав ядра и образует так называемую виртуальную файловую систему VFS ( рис. 3 ). VFS обеспечивает унифицированный программный интерфейс к услугам файловой системы, причем безотносительно к тому, какой тип файловой системы (vfat, ext2fs, nfs и т.д.) имеется на конкретном физическом носителе. Поэтому каждая файловая система должна предоставлять еще какие-то конкретные процедуры доступа к своим файлам, для того, чтобы использоваться под Линукс. Виртуальная файловая система VFS, расположенная как бы между приложениями и конкретными файловыми системами, позволяет пользовательским приложениям получать доступ к множеству файловых систем разных типов

    2.6. Новые файловые системы

    Файловая система ext2fs была создана по образу и подобию файловой системы UNIX (UNIX File System - UFS). Обе они (особенно UFS) создавались еще в те времена, когда диски и другие физические носители данных имели довольно маленький (по современным меркам) объем. Увеличение объема дисков вело к возрастанию объема разделов диска, увеличению размеров отдельных файлов и каталогов. Это породило ряд проблем, связанных с ограниченностью внутренних структур данных файловой системы.

    Существуют две основных проблемы этого рода:

    • Эти структуры не способны работать с носителями информации увеличенного объема. В них отведено строго фиксированное число бит для хранения данных о размере дисковых разделов и размерах файлов, фиксированное число бит для хранения логических номеров блоков и так далее. Как следствие, число файлов и каталогов и их размер ограничены.
    • Вторая проблема связана с производительностью. В силу заложенных в старые файловые системы алгоритмов решение некоторых задач на носителях увеличенного объема стало требовать слишком большого времени. Одним из самых характерных примеров такого рода проблем является трудоемкость восстановления файловой системы после сбоев (например, после неожиданного отключения питания). Это восстановление выполняется с помощью программы fsck и для очень больших дисков стало требовать нескольких часов.

    Естественно, что появление этих проблем породило и попытки их решения. Были разработаны новые типы файловых систем, при создании которых учитывались требования масштабируемости. Наиболее известными разработками файловых систем новых типов являются:

    В следующей табличке приведены данные по увеличению основных параметров, обеспечиваемых новыми файловыми системами. Данные заимствованы из статьи Juan I. Santos Florido "Journal File Systems", опубликованной в 55-ом выпуске Linux Gazette (July 2000).

    4GB, 2^10 petabytes in ReiserFS (3.6.xx)

    2.7. Журналируемые файловые системы

    Основная цель, которая преследуется при создании журналируемых файловых систем, насколько я понял, состоит в том, чтобы обеспечить быстрое восстановление системы после сбоев (например, после потери питания). Дело в том, что если произойдет такой сбой, то часть информации о расположении файлов теряется, поскольку не все изменения сразу записываются на диск. После этого программа fsck вынуждена просматривать весь диск блок за блоком (пользуясь битовыми матрицами занятых блоков и индексных дескрипторов) с целью восстановления потерянных связей. При увеличении размера дисков вдвое, вдвое увеличивается и время, необходимое для просмотра всего диска. А при тех объемах, которых достигают современные диски, особенно на серверах, время, необходимое для того, чтобы просмотреть весь диск, стало недопустимо велико: оно стало достигать часов и даже суток. А сервер в это время не отзывается! Кроме того, нет гарантии, что все связи удастся восстановить.

    В журналируемых файловых системах для решения этой проблемы применяют технику транзакций, развитую в теории баз данных. Суть этой техники в том, что действие не считается завершенным, пока все изменения не сохранены на диске. А чтобы сбои, происходящие в течение времени, необходимого для завершения всех операций, не приводили к необратимым последствиям, все действия и все изменяемые данные протоколируются. Если сбой все-таки произойдет, то по этому протоколу можно вернуть систему в безошибочное состояние.

    Главное отличие в технике транзакций, применяемой в базах данных, от аналогичной техники, применяемой в журналируемых файловых системах, состоит в том, что в базах данных сохраняются в протоколе как сами изменяемые данные, так и вся управляющая информация, в то время как понятие транзакции в файловых системах подразумевает сохранение только мета-данных: индексных дескрипторов изменяемого файла, битовых карт распределения свободных блоков и свободных индексных дескрипторов. Дело в том, что если сохранять все изменяемые данные, то теряется смысл кеширования записи на диск и уменьшается скорость дисковых операций. Мета-данные же, во-первых, меньше по размеру, а, во-вторых, сохраняются в специально выделенной области диска, что позволяет избежать чрезмерных затрат времени на ведение протокола.

    Файловые системы ext3fs и JFS являются журналируемыми. Надо отметить, что ext3fs не является совершенно новой разработкой, а является просто надстройкой над ext2fs. обеспечивающей ведение журнала и организацию транзакций. Файловые системы XFS и JFS являются открытыми версиями коммерческих файловых систем.

    2.8. Файловая система ReiserFS

    Кроме проблемы быстрого восстановления после сбоев, в файловой системе ext2fs имеется еще несколько нерешенных проблем. Одна из самых насущных - это проблема нерационального использования дискового пространства. Конечно, ext2fs использует диск гораздо более рационально, чем FAT. но, как Вам хорошо известно, "памяти много не бывает"! Собственно проблема возникает из-за следующего противоречия:

    если размер блока выбрать большим (кластер по 32К в FAT), то при сохранении большого числа мелких файлов на диске неразумно используется дисковое пространство, так как маленькие файлы (и концы больших файлов) занимают целые блоки (Juan I. Santos Florido в своей статье называет это "внутренней фрагментацие

    если размер блока выбрать маленьким (512 байт), то снижается производительность ввода/вывода, так как надо прочитать много блоков, которые могут быть разбросаны по диску (это "внешняя фрагментация").

    Еще две проблемы, с которыми мы сталкиваемся в файловой системе ext2fs. связаны с поиском.

    Первая проблема возникает при записи на диск нового файла. Поскольку распределение свободных блоков хранится в виде битовой карты свободных блоков и свободных индексных дескрипторов, то файловая система вынуждена производить последовательный просмотр этих массивов для нахождения свободного места. В худшем случае это может потребовать времени, пропорционального объему диска.

    Вторая проблема поиска связана с поиском файлов в больших каталогах. Поскольку файлы мы ищем по именам, приходится последовательно просматривать все записи в каталоге. Время такого поиска тоже пропорционально размеру каталога и вырастает в проблему при больших размерах каталогов. Между тем методы снижения трудоемкости поиска давно разработаны, только надо для хранения информации о свободных объектах использовать не простые списки, а несколько более сложные структуры данных. В системе ReiserFS для этого применяются так называемые "сбалансированные деревья" или "B+Trees", время поиска в которых пропорционально не количеству объектов (файлов в каталоге или числа блоков на диске), а логарифму этого числа. В сбалансированном дереве все ветви (пути от корня до "листа") имеют одинаковую (или примерно одинаковую) длину. ReiserFS использует сбалансированные деревья для хранения всех объектов файловой системы. файлов в каталогах, данных о свободных блоках и т.д. Это позволяет существенно повысить производительность обращения к дискам.

    Кроме того, ReiserFS является журналируемой, то есть в ней решена и проблема быстрого восстановления после сбоев. Большего об устройстве новых типов файловых систем я пока не могу сказать, поскольку информации о них довольно мало, а в исходниках копаться.

    Костромин В.А. Самоучитель Linux для пользователя. - СПб. БХВ - Петербург, 2003.