Представь ситуацию: у тебя есть старый внешний жесткий диск с файлами в формате NTFS, и ты хочешь интегрировать его в свою новую систему TrueNAS. Или, может быть, ты мигрируешь с Windows-сервера и тебе нужно перенести терабайты данных. В этой статье мы разберем все аспекты работы с NTFS в экосистеме TrueNAS — от базового монтирования до профессиональной миграции на ZFS.
Что такое NTFS и как TrueNAS с ним работает
NTFS (New Technology File System) — это проприетарная файловая система от Microsoft, стандарт для Windows. TrueNAS, основанный на FreeBSD, использует драйвер ntfs-3g (FUSE-based) для чтения и записи NTFS разделов. Это важно понимать, потому что:
- Только чтение по умолчанию: Базовый драйвер в ядре FreeBSD обеспечивает только чтение
- Полный доступ через FUSE: Для записи нужен пользовательский драйвер ntfs-3g
- Не родная система: NTFS не является оптимальным выбором для постоянного использования в TrueNAS
Как смонтировать NTFS диск в TrueNAS
Давай разберем пошаговый процесс монтирования внешнего NTFS накопителя через веб-интерфейс и командную строку.
Способ 1: Через веб-интерфейс (GUI)
- Подключи NTFS диск к серверу TrueNAS (SATA, USB или SAS)
- Перейди в раздел Storage → Disks
- Найди свой диск в списке и запомни его идентификатор (например,
ada2илиsdb) - Перейди в System → Tunables и добавь параметр для автоматического монтирования:
# Для автоматического монтирования при загрузке
Variable: fstab
Value: /dev/ada2p1 /mnt/ntfs_data ntfs rw,noauto 0 0
Type: loader
Способ 2: Через командную строку (Shell)
Для разовых операций или отладки используй Shell:
# 1. Установи пакет ntfs-3g (если не установлен)
pkg install fusefs-ntfs
# 2. Создай точку монтирования
mkdir -p /mnt/ntfs_drive
# 3. Определи раздел диска
geom disk list # Просмотр всех дисков
gpart show # Просмотр разделов
# 4. Смонтируй раздел NTFS
ntfs-3g /dev/ada2p1 /mnt/ntfs_drive -o permissions,uid=0,gid=0
# 5. Проверь монтирование
df -h | grep ntfs
ls -la /mnt/ntfs_drive/
Миграция данных с NTFS на ZFS
Вот правильный workflow для переноса данных со старого NTFS диска в экосистему TrueNAS:
Шаг 1: Подготовка ZFS пула
# Создай новый пул (если еще нет)
zpool create tank mirror /dev/ada0 /dev/ada1
# Создай dataset для данных
zfs create tank/ntfs_migration
zfs set compression=lz4 tank/ntfs_migration
zfs set atime=off tank/ntfs_migration
Шаг 2: Копирование данных с сохранением атрибутов
# Используй rsync для сохранения прав и метаданных
rsync -avhP --progress /mnt/ntfs_drive/ /mnt/tank/ntfs_migration/
# Альтернатива: tar с сохранением всего
tar -cf - -C /mnt/ntfs_drive . | tar -xf - -C /mnt/tank/ntfs_migration
# Для очень больших объемов используй mbuffer
mbuffer -i /mnt/ntfs_drive/file.bin | mbuffer -o /mnt/tank/ntfs_migration/file.bin
Шаг 3: Верификация данных
# Проверка контрольных сумм
find /mnt/ntfs_drive -type f -exec md5 {} \; > /tmp/ntfs.md5
find /mnt/tank/ntfs_migration -type f -exec md5 {} \; > /tmp/zfs.md5
diff /tmp/ntfs.md5 /tmp/zfs.md5
# Проверка размера
du -sh /mnt/ntfs_drive/
du -sh /mnt/tank/ntfs_migration/
Настройка общего доступа к NTFS через SMB
Если тебе нужно временно расшарить NTFS диск по сети через TrueNAS:
- В веб-интерфейсе перейди в Sharing → Windows Shares (SMB)
- Нажми Add и выбери путь к смонтированному NTFS (
/mnt/ntfs_drive) - Настрой параметры:
- Name:
NTFS_Transfer - Purpose:
No presets - Enable ACL:
Отключено(NTFS уже имеет свои права)
- Name:
- Перезапусти SMB службу
# Проверка SMB конфигурации
midclt call smb.config
# Принудительный рестарт SMB
service samba_server restart
# Проверка доступности из Windows
net use \\TRUENAS_IP\NTFS_Transfer
Сравнение NTFS и ZFS для TrueNAS
| Характеристика | NTFS в TrueNAS | ZFS (родной) |
|---|---|---|
| Производительность | Средняя, через FUSE | Высокая, нативная |
| Целостность данных | Без проверки контрольных сумм | End-to-end checksumming |
| Снимки (snapshots) | Недоступны | Мгновенные снимки |
| Сжатие | Только на уровне файлов | Прозрачное сжатие блоками |
| Использование в TrueNAS | Только для миграции/временного доступа | Основная файловая система |
Частые проблемы и их решение
Проблема 1: «Read-only file system» при записи
Решение: Убедись, что используешь ntfs-3g, а не стандартный драйвер:
# Проверь, какой драйвер используется
mount | grep ntfs
# Перемонтируй с ntfs-3g
umount /mnt/ntfs_drive
ntfs-3g /dev/ada2p1 /mnt/ntfs_drive -o windows_names,uid=0,gid=0
# Установи права на запись
chmod -R 777 /mnt/ntfs_drive # Временное решение для миграции
Проблема 2: Диск не определяется после гибернации Windows
# Принудительно сними флаги гибернации
ntfsfix -d /dev/ada2p1
# Или в Windows выполни:
# powercfg.exe /h off
# shutdown /s /f /t 0
Проблема 3: Медленная скорость копирования
- Используй
rsyncс флагом-Wдля копирования целых файлов - Отключи журналирование при монтировании:
-o disable_sparse - Увеличь размер буфера ntfs-3g:
-o big_writes
Автоматизация монтирования NTFS при загрузке
Для постоянного доступа к NTFS диску создай скрипт инициализации:
#!/bin/bash
# /usr/local/etc/rc.d/mount_ntfs.sh
case "$1" in
start)
if [ -e /dev/ada2p1 ]; then
mkdir -p /mnt/ntfs_archive
ntfs-3g /dev/ada2p1 /mnt/ntfs_archive \
-o windows_names,uid=0,gid=0,noatime
echo "NTFS mounted"
fi
;;
stop)
umount /mnt/ntfs_archive
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
# Сделай скрипт исполняемым и добавь в автозагрузку
chmod +x /usr/local/etc/rc.d/mount_ntfs.sh
sysrc mount_ntfs_enable="YES"
service mount_ntfs start
FAQ: Ответы на частые вопросы
Можно ли использовать NTFS как основной пул в TrueNAS?
Нет, и вот почему: TrueNAS спроектирован вокруг ZFS. NTFS не поддерживает функции ZFS: снапшоты, компрессию, дедупликацию, самовосстановление. Использование NTFS приведет к потере всех преимуществ TrueNAS.
Как перенести данные с NTFS, если диск больше 4TB?
Используй инструмент pv (pipe viewer) для отслеживания прогресса:
# Установи pv
pkg install pv
# Копирование с прогресс-баром
tar -cf - -C /mnt/ntfs_large . | pv -s $(du -sb /mnt/ntfs_large | cut -f1) | \
tar -xf - -C /mnt/tank/migration_large
Сохранятся ли права Windows ACL при копировании?
Частично. Базовые права (read/write/execute) сохранятся через rsync -a. Однако сложные Windows ACL (списки управления доступом) могут быть потеряны. Для полного сохранения ACL используй инструмент getfacl/setfacl или копируй данные через SMB.
TrueNAS Core или Scale для работы с NTFS?
TrueNAS Scale (Linux-based) имеет лучшую поддержку NTFS из коробки благодаря современному ядру Linux. TrueNAS Core (FreeBSD-based) требует установки дополнительных пакетов. Для частой работы с NTFS дисками выбирай Scale.
Как проверить целостность NTFS диска в TrueNAS?
# Проверка файловой системы NTFS
ntfsfix -n /dev/ada2p1 # Только проверка
ntfsfix -d /dev/ada2p1 # Проверка и исправление
# Проверка bad-блоков
smartctl -t long /dev/ada2
smartctl -a /dev/ada2 | grep -A 10 "SMART overall-health"
Заключение и лучшие практики
Работа с NTFS в TrueNAS — это временный мост между мирами Windows и ZFS. Запомни ключевые принципы:
- Используй NTFS только для миграции данных, а не для постоянного хранения
- Всегда проверяй целостность после копирования (контрольные суммы, размеры)
- Для записи используй ntfs-3g с правильными опциями монтирования
- После миграции отформатируй диск в ZFS и добавь в пул хранения
- Документируй процесс — создай скрипты для повторяющихся операций
TrueNAS — это мощная ZFS-машина. NTFS в ней подобен гостевому пропуску: полезен для временного доступа, но не для постоянного проживания. Освоив миграцию данных с NTFS, ты откроешь все преимущества ZFS: от снапшотов до прозрачного сжатия и защиты от битового распада.