Author Topic: Монтирование USB HDD с NTFS в режиме чтения/записи  (Read 23329 times)

0 Members and 1 Guest are viewing this topic.

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
Подключение внешнего харддиска с файловой системой NTFS в режиме чтения/записи.


Желание использовать именно NTFS, а не ext3, думаю вполне объяснимо. Это возможность использования винчестера и в Дримбоксе и на Windows машинах.
Для тестов использовался Seagate Free Agent Go 102D (320Гб 2.5"). Для начала рекомендую закоментировать строку

#* -fstype=auto,ro :/dev/&

в файле /etc/auto.hotplug, чтоб не мешало.
Первым делом убедитесь, что у вас установлен ntfs модуль кернела. В большинстве имиджей он присутствует, нужно только его активировать. Для проверки набираем

lsmod

Если в выдаче команды присутствует ntfs 255888 0 - Live 0xc01a8000, значить порядок. Для уверенности можно проверить еще командой

modprobe ntfs

Если модуль не установлен, то скачиваем с експериментального фида и устанавливаем

kernel-module-ntfs_2.6.12.6-s6_dm7025.ipk
kernel-module-ntfs_2.6.12-r13_dm800.ipk
kernel-module-ntfs_2.6.12-r10_dm8000.ipk

После установки в /etc/init.d/bootup находим строки типа

for mod in isofs cifs usb-storage sd_mod autofs4 vfat ide-cd cdfs; do
   modprobe $mod


и дописываем туда ntfs модуль

for mod in isofs cifs usb-storage sd_mod autofs4 vfat ide-cd cdfs ntfs; do
   modprobe $mod


Теперь самая главная задача, включить в Дриме поддержу записи в NTFS. Для этого нужно установить ntfs-3g драйвер. Устанавливаем по очереди следующие пакеты:

fuse-module_2.7.3-r4 (для каждой модели Дрима свой)

 fuse-module_2.7.3-r4_dm7025.ipk
 fuse-module_2.7.3-r4_dm800.ipk
 fuse-module_2.7.3-r4_dm8000.ipk

Теперь устанавливаем
 fuse_2.7.3-r2_mipsel.ipk

И напоследок сам ntfs-3g драйвер.
 ntfs-3g_1.5012-r0_mipsel.ipk

Если нужно, чтоб харддиск монтировался каждый раз при загрузке, открываем снова /etc/init.d/bootup (дело вкуса каждого, можно использовать и другие методы) и пишем следующие строки:

mount /dev/scsi/host1/bus0/target0/lun0/part1 /media/usb
umount /media/usb && ntfs-3g /dev/scsi/host1/bus0/target0/lun0/part1 /media/usb -o force


где /media/usb точка монтирования (пишем свою), а /dev/scsi/host1/bus0/target0/lun0/part1 нижний USB слот. Кстати в верхнем слоте диск отказывался заводиться, хотя флешка на 4Гб работает на ура. Это на 8000-ом. Позже проверю на 800-м. У каждого возникнет резонный вопрос, зачем делать mount, а потом umount? По другому не монтируется. Выдает ошибку, что не может прочитать bootsector.

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

Теперь о плохом. При уходе диска в стэндбай, он отваливается полностью, т.е. он просто становиться недоступным через некоторое время. Подобный баг судя по информации из Интернета, присутствует не только на Seagate Free Agent но и на Maxtor OneTouch4. Насчет последних утверждать не буду, так как сам не пробовал.

Ну что делать, надо фиксить. Устанавливаем sdparm_0.98-1_mipsel.ipk (типа аналог hdparm). После установки даем команду:

sdparm /dev/scsi/host1/bus0/target0/lun0/disc -a –l

Quote
root@dm8000:~# sdparm /dev/scsi/host1/bus0/target0/lun0/disc -a -l
    /dev/scsi/host1/bus0/target0/lun0/disc: Seagate   FreeAgent Go     102D
    Direct access device specific parameters: WP=0  DPOFUA=0
Power condition mode page:
  IDLE        0  [cha: n, def:  0, sav:  0]  Idle timer active
  STANDBY     1  [cha: y, def:  1, sav:  1]  Standby timer active
  ICT         0  [cha: n, def:  0, sav:  0]  Idle condition timer (100 ms)
  SCT       3000  [cha: y, def:3000, sav:3000]  Standby condition timer (100 ms)

Наша задача отключить Standby timer. Выполняем следующую команду:

sdparm --clear STANDBY -6 /dev/scsi/host1/bus0/target0/lun0/disc

Quote
root@dm8000:~# sdparm --clear STANDBY -6 /dev/scsi/host1/bus0/target0/lun0/disc
    /dev/scsi/host1/bus0/target0/lun0/disc: Seagate   FreeAgent Go     102D

Проверяем изменения:

Quote
root@dm8000:~# sdparm /dev/scsi/host1/bus0/target0/lun0/disc -a -l
    /dev/scsi/host1/bus0/target0/lun0/disc: Seagate   FreeAgent Go     102D
    Direct access device specific parameters: WP=0  DPOFUA=0
Power condition mode page:
  IDLE        0  [cha: n, def:  0, sav:  0]  Idle timer active
  STANDBY     0  [cha: n, def:  1, sav:  0]  Standby timer active
  ICT         0  [cha: n, def:  0, sav:  0]  Idle condition timer (100 ms)
  SCT         0  [cha: n, def:3000, sav:  0]  Standby condition timer (100 ms)

Если получилось, как у меня (нужное выделено красным), значит порядок. Это придется сделать всего один раз, т.к. параметр записывается в BIOS жесткого диска. Откатиться обратно можно командой

sdparm -D --page=po -6 /dev/scsi/host1/bus0/target0/lun0/disc

Есть еще одно решение. “Пинать” диск постоянно через 4 минуты. Например скриптом

Quote
#!/bin/sh
while [ true ]
do
touch /media/usb/.activity
sleep 4m
done

Можно также использовать cron

Quote
*/4 * * * * ls  /media/usb
*/4 * * * * touch /media/usb/.activity

Но есть единственное но. Диск теперь будет молотить постоянно. Авто включалку-выключалку придумать пока не удалось , пришлось писать 2 скрипта. Для работы скриптов обязателен sdparm. Возможно они не идеальны, но работают.

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


Quote
#!/bin/sh
#DESCRIPTION=Safely Remove USB Harddrive

MOUNTPOINT=/media/usb
USBHDD=/dev/scsi/host1/bus0/target0/lun0/disc

echo "======================================="
 echo Umount the harddrive
umount $MOUNTPOINT
 echo Wait for mtab to be updated...
sleep 5
UMOUNTCHECK=`grep '$MOUNTPOINT' /etc/mtab | wc -c`
if [ $UMOUNTCHECK -eq 0 ]
then
 echo Sync the harddrive
 sdparm --command=sync $USBHDD > /dev/null 2>&1
 echo Stopping heads
 sdparm --command=stop $USBHDD > /dev/null 2>&1
 echo You can unplug your Harddrive !!!
echo "======================================="
else
echo "======================================="
 echo Umount Failed !!!
echo "======================================="
fi




Второй скрипт стартует отключенный жесткий диск и монтирует его в нужную директорию.

Quote
#!/bin/sh
#DESCRIPTION=Starting and Mounting USB Harddrive

MOUNTPOINT=/media/usb
USBPART=/dev/scsi/host1/bus0/target0/lun0/part1
USBHDD=/dev/scsi/host1/bus0/target0/lun0/disc


if [ -b $USBHDD ] ; then
echo "======================================="
echo Starting harddrive ...
sdparm --command=start $USBHDD > /dev/null 2>&1
echo Mount harddrive
mount $USBPART $MOUNTPOINT
sleep 5
echo Remount filesystem to ntfs-3g
umount $MOUNTPOINT && ntfs-3g $USBPART $MOUNTPOINT &&
echo HDD ready to use !!!
echo "======================================="
else
echo "======================================="
echo External HDD not found !!!
echo "======================================="
fi



Где выделено красным пишем свои данные. И не забываем установить права 755


0,9m - 5E+13E+19Е+4W

Offline BlackBat

  • Новичек
  • *
  • Posts: 3
  • Karma: 0
  • Удачи ВСЕМ !
DreamBox DM800 -> Gemini 4.40

Возникли осложнения :
1. В каталоге "/etc" нет файла "auto.hotplug"
2. При установке "fuse_2.7.3-r2_mipsel.ipk" возникает ошибка - какая-то "неразрешимая ссылка"
В результате внешний NTFS-диск для записи остается недоступен.

Подскажите, буду благодарен.

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
Все выше описанные действия проводились на Набило 11-й версии. Не возникло никаких проблем. Gemini не пользуюсь принципиально, так что не в курсе :(
0,9m - 5E+13E+19Е+4W

Offline zuriuslev

  • Новичек
  • *
  • Posts: 3
  • Karma: 6
DreamBox DM800 -> Gemini 4.40
Возникли осложнения :
1. В каталоге "/etc" нет файла "auto.hotplug"
2. При установке "fuse_2.7.3-r2_mipsel.ipk" возникает ошибка - какая-то "неразрешимая ссылка"
1. Если очень хочется ... можно раскоментировать строку #/autofs /etc/auto.hotplug в файле /etc/auto.master , потом создать файл  /etc/auto.hotplug, в него записать * -fstype=auto,ro :/dev/&, а уж потом  :ab: ... эту строку закоментировать.
Это что-бы жизнь мёдом не казалась  ;D
А серьёзно - ничего делать не надо.   :avh:


2. Всё остальное, на DM800 -> Gemini 4.40, прошло без сучка и задоринки.
И естественно работает !  yippee_)

Offline BlackBat

  • Новичек
  • *
  • Posts: 3
  • Karma: 0
  • Удачи ВСЕМ !
1. Если очень хочется ... можно раскоментировать строку #/autofs /etc/auto.hotplug в файле /etc/auto.master , потом создать файл  /etc/auto.hotplug, в него записать * -fstype=auto,ro :/dev/&, а уж потом  ... эту строку закоментировать.
Это что-бы жизнь мёдом не казалась
А серьёзно - ничего делать не надо.
Было очень смешно, спасибо !

2. Всё остальное, на DM800 -> Gemini 4.40, прошло без сучка и задоринки.
И естественно работает !
А эта информация внушает надежду. В выходные попробую на "чистой" Gemini.
Два спасибо !

Offline GenaBon

  • Новичек
  • *
  • Posts: 31
  • Karma: 4
Дилинжер, где ты был раньше с этим делом. У меня есть ZIV80 (в коробочке 2,5 диск по ЮСБи) Так вот. Это было еще 6 месяцев назад. Воткнул я в ЮСБи тюнера этот ЗиВ..  ;D Че то там пошаманило, диск зашумел но.....Ди сих пор лежит мертвым грузо. Его ни на тюнере не видно ни в компе. Коротче наверно спалился. А жаль.. раньге он стоил 120 баксов. cry''

Offline GenaBon

  • Новичек
  • *
  • Posts: 31
  • Karma: 4
Дилинджер а скажи пож, вся эта байдала с диском NTFS будет работать если у меня Нобилло БХ 0.12 установлен через БА на флешку...(сам же учил :ab:)

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
Нормально будет работать, только скорость записи небольшая.
0,9m - 5E+13E+19Е+4W

Offline GenaBon

  • Новичек
  • *
  • Posts: 31
  • Karma: 4
Нормально будет работать, только скорость записи небольшая.
Боязно мне что то, особенно как то мутно по поводу записи на него. (У меня WD 2,5 500гб ЮСБи) Во будет номер если все там грохнет, как в ЗИВе..

Offline berator

  • Новичек
  • *
  • Posts: 3
  • Karma: 0
Подключение внешнего харддиска с файловой системой NTFS в режиме чтения/записи.


Если модуль не установлен, то скачиваем с експериментального фида и устанавливаем

kernel-module-ntfs_2.6.12.6-s6_dm7025.ipk
kernel-module-ntfs_2.6.12-r13_dm800.ipk
kernel-module-ntfs_2.6.12-r10_dm8000.ipk

После установки в /etc/init.d/bootup находим строки типа



подскажите пожалуйста новичку как установить модуль?

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
ipkg install http://dreamboxupdate.com/opendreambox/1.5/dm800/experimental/kernel-module-ntfs_2.6.12-r13_dm800.ipk

или скачать, а потом установить как обычный ipk пакет, скопировав его в /tmp Дрима

ipkg install /tmp/*ipk

В зависимости от имиджа, модуль уже может присутствовать и останется только его активировать. В последней Gemini NTFS монтируется в режиме чтения-записи автоматом. Так по крайней мере было заявлено, сам не проверял.
0,9m - 5E+13E+19Е+4W

Offline berator

  • Новичек
  • *
  • Posts: 3
  • Karma: 0
подойдет этот модуль для дримбокса 7000?


-sh: ipkg - not found
 

вот что имеется:

Built-in commands:
-------------------
        . : alias bg break cd chdir command continue eval exec exit export
        false fg getopts hash help jobs kill let local pwd read readonly
        return set shift times trap true type ulimit umask unalias unset
        wait


Нужно каким -то образом установить ipkg. Каким?
« Last Edit: March 27, 2010, 06:38:47 PM by berator »

Offline Арчи®

  • АСС
  • *
  • Posts: 327
  • Karma: 270
    • Sat-Universe
Quote
подойдет этот модуль для дримбокса 7000?
Нет
Процессоры разные.
1.1м-5E+13E+19Е+4W+5W/0,9m-1W+9E/0,9m-85E/0,9m-36E+39E/ VU+(Duo2 & Duo & Solo)

Offline berator

  • Новичек
  • *
  • Posts: 3
  • Karma: 0
Quote
подойдет этот модуль для дримбокса 7000?
Нет
Процессоры разные.

а что можно придумать для дб7000? интересно смотреть кино с  USB HDD, или установить браузер и смотреть кино с инета.

Offline EagleSH

  • Новичек
  • *
  • Posts: 1
  • Karma: 0
господа, у меня проблем с USBHDD с нтфс нет, а вот по eSata этотже девайс с нтфс - винт виден, но не примонтирован, доступна токо опция "инициализация", если ее замутить, то понятное дело винт в ext3 превратиться и будет чудесно работать. как побороть вопрос по еСата?

Offline Shmatko

  • Новичек
  • *
  • Posts: 9
  • Karma: 0
Привязываю USB Seagate 320 Gb с файловой системой NTFS к Дриму 800HD с имиджем Nabilosat Enigma2 Black Hole v0.12 for DM800 Всё делаю чётко по инструкции. Правда в этом имиджи модуль ntfs уже установлен и активный. Устанавливаю все остальные модули, которые предназначены для 800 дрима, модули устанавливаются вроде нормально, но после команды lsmod вижу что модуль ntfs, а других добавленных модулей нет. Или они не должны отображаться в этом списке? Начинаю перезагружать Дрим и он зависает при загрузке намертво. Лечится только сменой имиджа. Не хочется сдаваться. Мне просто необходимо использовать внешний USB накопитель как в Дриме так и на ноутбуке. Если у кого есть мысли по поводу моих проблем помогите плис. :ab:

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
А сам диск Дрим видит до установки модулей и отключения автомонтирования (он должен появиться в директории /autofs)? Может харддиск просто не стартует из-за нехватки питания?
0,9m - 5E+13E+19Е+4W

Offline Shmatko

  • Новичек
  • *
  • Posts: 9
  • Karma: 0
Диск видит, я на него писал неоднократно, правда пройдя инициализацию, а это значит после форматирования в файловую систему ext3 После перезагрузки диск отваливается и его надо обратно форматировать, по другому не работает запись. Мне кажется, что Дрим подвисает сразу после того, как я добавляю в файле /etc/init.d/bootup  возможность работать с ntfs

Да я прав. Сейчас залил новый имидж и ничего ещё не настраивая сделал изменения в файле /etc/init.d/bootup Как только в эту строчку
 for mod in cifs usb-storage sd_mod autofs4 vfat ntfs; do
   modprobe $mod
 добавил ntfs система просто не загружается.

Вот так выглядит у меня этот файл:
Quote
echo 10 > /proc/progress
[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0

mount -t sysfs sysfs /sys
echo 12 > /proc/progress

depmod -Ae
echo 13 > /proc/progress

for mod in cifs usb-storage sd_mod autofs4 vfat ntfs; do
   modprobe $mod
done

#Nabilo
[ -e "/usr/bin/nabextramod" ] && /usr/bin/nabextramod

mount -at nonfs,nosmbfs,noncpfs,nocifs
echo 14 > /proc/progress

swapon -a
echo 15 > /proc/progress

tar xzf /etc/var.tar.gz -C /
echo 16 > /proc/progress

# sleep after 10min
hdparm -S 120 /dev/discs/disc0/disc

echo 17 > /proc/progress

# set UDMA66, enable dma
hdparm -d 1 /dev/discs/disc0/disc
hdparm -X66 /dev/discs/disc0/disc

# accustic management
hdparm -M 128 /dev/discs/disc0/disc

echo 18 > /proc/progress
for mod in dreambox_keyboard fp bcm7401; do
   modprobe $mod
done

echo 19 > /proc/progress

cat /etc/videomode > /proc/stb/video/videomode

echo 20 > /proc/progress

for mod in rt73 zd1211b; do
   modprobe $mod
done

echo 21 > /proc/progress

[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi

hostname -F /etc/hostname

#Nabilo
echo 22 > /proc/progress

mount /dev/scsi/host0/bus0/target0/lun0/part1 /media/usb || mount /dev/scsi/host0/bus0/target0/lun0/disc /media/usb
mount /dev/scsi/host1/bus0/target0/lun0/part1 /media/usb2 || mount /dev/scsi/host1/bus0/target0/lun0/disc /media/usb2

echo 23 > /proc/progress

[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"

echo 24 > /proc/progress

ldconfig

echo 25 > /proc/progress

ipkg-cl configure

#Nabilo
echo 26 > /proc/progress
[ -e "/usr/bin/openvpn_script.sh" ] && /usr/bin/openvpn_script.sh start

#Nabilo
echo 27 > /proc/progress
[ -e "/usr/bin/nfs_server_script.sh" ] && /usr/bin/nfs_server_script.sh start

#Nabilo
echo 28 > /proc/progress
[ -e "/usr/bin/inadyn_script.sh" ] && /usr/bin/inadyn_script.sh start


#Nabilo
echo 29 > /proc/progress
[ -e "/usr/bin/.Nabiloautoswap" ] && /usr/bin/.Nabiloautoswap

#Nabilo
echo 30 > /proc/progress
[ -e "/usr/bin/blackholesocker" ] && /usr/bin/blackholesocker &

#Nabilo
echo 31 > /proc/progress
/usr/sbin/crond -c /etc/bhcron/
mount /media/ba
mount /media/cf
mount /media/usb
mount /media/hdd

Offline Shmatko

  • Новичек
  • *
  • Posts: 9
  • Karma: 0
Мысль у меня появилась бредовая, а не делает ли Windows7 формат этого файла неудобоваримым для Линукса. Открывал файл WordPad и блокнотом.  :(

Offline dillinger

  • Администратор
  • *
  • Posts: 1629
  • Karma: 1081
Открывал файл WordPad и блокнотом.  :(

Конфигурационные файлы в unix-формате и нужны редакторы которые его "понимают". Ни WordPad ни Блокнот к ним не относятся. AkelPad можешь использовать http://akelpad.sourceforge.net/ru/download.php
0,9m - 5E+13E+19Е+4W