ntfs-3g — драйвер NTFS с открытым исходным кодом, который разрабатывается компанией Tuxera. В состав данного драйвера входит утилита ntfsfix, которая позволяет проверить раздел жесткого диска с файловой системой NTFS на ошибки в Linux-системах.
В репозитории Entware утилита ntfsfix выделана в отдельный пакет ntfs-3g-utils.
Утилита ntfsfix даст возможность физически не отключать USB-накопитель от роутера и сделать все проверки на ошибки удаленно в командной строки (CLI).
Если в новом веб-интерфейсе (доступно с версии KeeneticOS 2.12) появилось предупреждение "Требует проверки" у раздела жесткого диска с файловой системой NTFS - это значит, что нарушена целостность файловой системы или выставлен флаг/бит "dirty flag / dirty bit".
В старом веб-интерфейсе такие предупреждения не поддерживаются. Если раздел не загрузился, то стоит проверить журнал на наличие ошибок:
[E] [May 21 11:21:45] ndm: FileSystem::Native: failed to mount "FLS" drive: filesystem is dirty, please perform a chkdsk maintenance of this drive on your Windows computer.
[E] [May 21 11:21:45] ndm: FileSystem::Ext: failed to mount a dirty partition.
"Грязный флаг / грязный бит" — означает, что у раздела выставлена особая пометка тома, которая требует проверки диска при загрузке системы. Данная метка тома возникает потому, что раздел USB-накопителя имеет незаконченные изменения или ошибки в файловой системе, которые возникли из-за некорректного извлечения раздела из роутера, перезагрузки роутера в момент работы с файловой системой.
Рассмотрим вариант установки утилиты ntfs-3g-utils из репозитория Entware.
1. Предварительно нужно подготовить внешний USB-накопитель и установить на него систему пакетов репозитория Entware. Как это сделать, подробно показано в инструкции "Установка системы пакетов репозитория Entware на USB-накопитель".
2. Установите пакет ntfs-3g-utils.
Для этого выполните команду opkg install ntfs-3g-utils:
/ # opkg install ntfs-3g-utils
Installing ntfs-3g-utils (2017.3.23-1-fuseext) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/ntfs-3g-utils_2017.3.23-1-fuseext_mipsel-3.4.ipk
Installing ntfs-3g (2017.3.23-1-fuseext) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/ntfs-3g_2017.3.23-1-fuseext_mipsel-3.4.ipk
Installing libfuse (2.9.7-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libfuse_2.9.7-1_mipsel-3.4.ipk
Installing libgcrypt (1.6.6-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libgcrypt_1.6.6-2_mipsel-3.4.ipk
Installing libgpg-error (1.31-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libgpg-error_1.31-1_mipsel-3.4.ipk
Installing libuuid (2.32-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libuuid_2.32-2_mipsel-3.4.ipk
Configuring libfuse.
Configuring ntfs-3g.
Configuring libgpg-error.
Configuring libgcrypt.
Configuring libuuid.
Configuring ntfs-3g-utils.
3. Проверьте доступность утилиты ntfsfix:
/ # ntfsfix -h
ntfsfix v2017.3.23 (libntfs-3g)
Usage: ntfsfix [options] device
Attempt to fix an NTFS partition.
-b, --clear-bad-sectors Clear the bad sector list
-d, --clear-dirty Clear the volume dirty flag
-h, --help Display this help
-n, --no-action Do not write anything
-V, --version Display version information
For example: ntfsfix /dev/hda6
Developers' email address: ntfs-3g-devel@lists.sf.net
News, support and information: http://tuxera.com
4. Перейдите к проверке раздела жесткого диска с файловой системой NTFS.
Для начала проверим доступность всех разделов жесткого диска:
/ # mount | grep sd
/dev/sdb1 on /tmp/mnt/OPKG type ext4 (rw,relatime,data=ordered)
/dev/sdb2 on /tmp/mnt/FILES type tntfs (rw,nosuid,noexec,noatime,uid=0,gid=1000,umask=02,allow_utime=0020,nls=utf8,min_prealloc_size=64k,max_prealloc_size=5914620,readahead=4M,perm,user_xattr,case_sensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1)
/dev/sdb1 on /opt type ext4 (rw,relatime,data=ordered)
5. Выбираем нужный раздел жесткого диска с файловой системой NTFS и отмонтируем его:
/ # umount /dev/sdb2
6. Проверяем отмонтированный раздел жесткого диска с файловой системой NTFS на ошибки:
/ # ntfsfix -b -d /dev/sdb2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK
NTFS partition /dev/sdb2 was processed successfully.
Проверка на ошибки проходит со следующими однобуквенными ключами (опциями):
-b, --clear-bad-sectors Clear the bad sector list
-d, --clear-dirty Clear the volume dirty flag
7. После проверки монтируем раздел с файловой системой NTFS обратно:
/ # mount /dev/sdb2 /tmp/mnt/FILES/
NOTE: Важно! Обязательно указываем точку монтирования. В нашем примере это mount /dev/sdb2 /tmp/mnt/FILES/
У вас точка монтирования будет другой.
8. Проверяем, корректно ли примонтировался раздел:
/ # mount | grep sd
/dev/sdb1 on /tmp/mnt/OPKG type ext4 (rw,relatime,data=ordered)
/dev/sdb1 on /opt type ext4 (rw,relatime,data=ordered)
/dev/sdb2 on /tmp/mnt/FILES type tntfs (rw,relatime,uid=0,gid=0,umask=022,nls=utf8,min_prealloc_size=64k,max_prealloc_size=5914620,readahead=4M,perm,user_xattr,case_sensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1)
9. В системном журнале будут следующие записи:
[I] Jun 5 18:55:46 ndm: Core::Syslog: the system log has been cleared.
[I] Jun 5 18:56:13 ndm: kernel: tntfs info (device sdb2, pid 3311): ntfs_fill_super(): fail_safe is enabled.
[I] Jun 5 18:56:13 ndm: kernel: tntfs info (device sdb2, pid 3311): load_system_files(): NTFS volume name 'FILES', version 3.1 (cluster_size 4096, PAGE_SIZE 4096).
10. После исправления ошибок, раздел жесткого диска с файловой системой NTFS удачно зарегистрируется в NDMS роутера без ошибок, "грязного флага / грязного бита":
NOTE: Важно! Поддержка пакета осуществляется в теме форума разработчиков — ntfs-3g-utils-набор утилит для работы с файловой системой NTFS.