Управление транзакционной встраиваемой файловой системой
etfsctl [опции]
- -c
- Определить принудительное продолжение или возоновление работы файловой системы на устройстве.
- -d устройство
- Подключиться к указанному устройству:
- /dev/etfs1
- Неформатированный раздел для пользовательских расширений (например загрузочных образов).
- /dev/etfs2
- Раздел файловой системы для файлов etfs.
- -D
- Запросить дефрагментацию по
.filetable
для ETFS файловой системы. По мере необходимости файловая система ETFS выполняет фоновую дефрагментацию. Эта опция позволяет выполнить ее по требованию.
- -e
- Стереть данные устройства. Для флэш-памяти типа NAND данные в отмеченных производителем поврежденных блоках не стираются. Поврежденные во время нормальной эксплуатации блоки (изношенные блоки) во время стирания также пропускаются.
- -f
- Стереть, как с опцией -e, после чего форматировать пустую файловую систему. Эту опцию не следует использовать с -w, поскольку опция -w принимает стертый раздел без файловой системы.
- -i
- Вывести информацию о файловой системе. См. далее "Описание".
- -l размер
- Указать размер для последующих опций -e, -R или -r. размер задается в байтах, но можно также использовать суффиксы K, M или G
- -o смещение
- Стартовое смещение для последующих опций -e, -E, -r, -W или -w. смещение задается в байтах, но можно также использовать суффиксы K, M или G
- -p
- Использовать программно-обновляемый режим.
- -r файл
- Считать все данные с устройства и сохранить их в указанном файле. Данные сохраняются как последовательность транзакций. Эти данные могут быть записаны в другую часть флэш-памяти в том случае, если у неё такие же
- размер кластера
- размер блока (число кластеров в блоке).
Формат данных не зависит от порядка следования байтов и от любых зависящих от устройств характеристик, например способов хранения циклических избыточных кодов (CRC) или корректирующих кодов (ECC). Можно выполнять чтение и запись сохранённых файловых систем на различных классах устройств, например на флэш-памяти типа NAND и ОЗУ.
Можно задавать опции -l и -o для указания смещения и размера считываемых данных. Опции -l и -o должны предшествовать опциям -r или -R. Если задана опция -l то данные не считываются после указанного размера.
- -R файл
- Считать все данные с устройства, включая пустые или стертые блоки, и сохранить их в указанном файле. То же, что и опция -r, но данные сохраняются в необработанном виде.
- -s
- Остановить файловую систему на устройстве.
- -S
- Аналогично опции -s, но с ожиданием остановки файловой системы перед возвратом.
- -w файл
- Записать транзакции из указанного файла на устройство. Этот файл транзакций может быть создан путем чтения его с того или иного устройства при помощи опции -r утилиты etfsctl или утилитой mketfs. Транзакции не зависят от расположения блоков на устройстве. Таким образом, возможно выполнение массового программирования устройств с любым расположением поврежденных блоков. Единственным требованием является наличие достаточного для хранения всех транзакций числа неповрежденных блоков.
Можно задавать опцию -o для указания смещения. Опция -o должна предшествовать опциям -w или -W.
- -W файл
- Записать транзакции из указанного файла на устройство. Кроме этого, скопировать все пустые и стертые блоки. Эта опция представляет собой вариант опции -w для необработанных входных данных
ЗОСРВ «Нейтрино»
arm, armv7, e2k, mips, ppc, x86
Утилита etfsctl используется для управления встраиваемой транзакционной файловой системой (ETFS). Утилита взаимодействует с выполняющейся файловой системой с помощью сообщений devctl(). При помощи утилиты etfsctl можно стереть и форматировать раздел, считать или записать весь журнал транзакций (и, таким образом, всю его файловую систему) с устройства или на него, остановить или продолжить работу файловой системы, получить статистическую информацию.
Опции обрабатываются в очередности слева направо. Первой опцией должно быть устройство -d, где:
- /dev/etfs1
- Неформатированный раздел для пользовательских расширений (например загрузочных образов).
- /dev/etfs2
- Раздел файловой системы для файлов etfs.
Используемый для хранения пользовательских расширений, например загрузочных образов, неформатированный раздел всегда расположен в начале устройства. Он может иметь размер ноль байт если необходимость в нем отсутствует. Раздел файловой системы состоит из последовательности транзакций, которые вместе формируют файловую систему. Опцию -r можно использовать для чтения транзакций с устройства и сохранения их в стандартном файле, как правило, в другой файловой системе. Затем можно использовать опцию -w для записи этого журнала транзакций в другую файловую систему ETFS.
| При записи сначала необходимо стереть данные файловой системы; в противном случае данные на устройстве будут повреждены. |
Опция -w чаще всего используется для записи журналов транзакций, созданных утилитой mketfs.
Можно запросить у файловой системы прекращение принятия новых открытых запросов при помощи опции -s или -S. При закрытии последнего файла, в настоящее время открытого любым приложением, файловая система переходит в остановленное состояние. Для записи журнала транзакций в раздел файловой системы последний должен быть остановлен. Файловую систему можно запустить повторно при помощи опции -c.
Опция -i предоставляет полезную статистическую информацию о выполняющейся файловой системе. По умолчанию используется раздел /dev/etfs2
, таким образом нет необходимости указывать опцию -d. Информация отображается в следующих группах:
- Device
Предоставляемые сведения:
- Name
- Имя устройства. В имени обычно закодирован номер устройства или размер.
- Blocks
- Количество блоков в устройстве.
- Clusters/Block
- Количество кластеров на блок в устройстве.
- Clustersize
- Размер кластера. Как правило, 1 Kбайт или 2 Kбайта.
- Totalsize
- Полный размер устройства, в байтах.
- Pools
Предоставляемые сведения:
- Clean
- Количество стертых блоков, которые готовы к немедленной записи.
- Spare
- Количество резервных блоков.
- Filthy
- Количество свободных блоков, которые ожидают операции стирания.
- Inactive
- Количество кластеров, которые не используются, но блокированы.
- Xpool
- Количество кэш-буферов.
- Cache
- Количество кэш-буферов кластера.
- Counts
Предоставляемые сведения:
- Erase
- Количество операций стирания (при выполнении).
- Avg
- Среднее количество операций стирания на блок.
- Read
- Количество операций чтения кластера с устройства.
- Cache
- Количество операций чтения кластера из кэша.
- Write
- Количество операций записи кластера в устройство.
- Mine
- Количество операций сбора данных для восстановления неиспользуемой области в блоке. Таким образом, после очищения неактивных кластеров образуются чистые блоки.
- Copy
- Количество операций копирования блоков. Возможно два варианта копирования. Первый вариант заключается в чтении блока с некритичной ошибкой корректирующего кода (ECC), что является признаком неустойчивости блока. Блок копируется в новый блок, а блок с ошибкой корректирующего кода ECC стирается. Во втором варианте блок с низким числом операций стирания вводится в использование путем копирования его данных в новый блок, стирания данных из блока и последующим вводом его в использование.
- Defrag
- Количество дефрагментированных файлов.
- BadBlks
- Количество блоков, отмеченных как поврежденные и выведенных из использования.
- Errors
Предоставляемые сведения:
- Ecc
- Количество CRC ошибок, исправленых корректирующим кодом ECC.
- Chksum
- Количество CRC ошибок.
- Device
- Количество аппаратных ошибок устройства. Обычно свидетельствует о неполадках оборудования.
| Cтатистика по ошибкам в настоящее время не собирается, эти значения всегда равны 0. |
Вывод информации о файловой системе. Если опция -d не указана, то утилита etfsctl автоматически использует /dev/etfs2
.
etfsctl -i
etfsctl -d /dev/etfs2 -i
Форматирование пустой файловой системы:
etfsctl -d /dev/etfs2 -S -f -c
Запись файловой системы, созданной утилитой mketfs:
etfsctl -d /dev/etfs2 -S -e -w fsys.etfs -c
Сохранение файловой системы в файл. Стирание и восстановление файловой системы:
etfsctl -d /dev/etfs2 -r debug.etfs
etfsctl -d /dev/etfs2 -S -e -w debug.etfs -c
Стереть часть загрузочного раздела ETFS, не нарушая целостность программы-загрузчика:
etfsctl -d /dev/etfs1 -o 3M -l 6M -e
Считать часть загрузочного раздела ETFS:
etfsctl -d /dev/etfs1 -o 3m -l 2k -R /temp/raw.stuff
Базовые подсистемы ЗОСРВ «Нейтрино»
fs-etfs-ram, mkefs, mketfs, mkifs
Предыдущий раздел: Утилиты