NTFS-3g aneb úplný přístup do Windows NTFS svazku

Protože potřeba občasné práce v "oblíbeném" Windowsu nemine téměř žádného linuxáka, přidávám návod jak jsem se se zápisem do NTFS z Linuxu popral já. Návod by měl fungovat na každém (Open)SuSE10 a výše, nicméně já ho úspěšně používám v posledních dvou verzích (10.1, 10.2). Postup zachovává integraci vyměněných balíčků do distribuce přes RPM kvůli závislostem a evidenci, který nainstalovaný soubor k čemu patří, proto ta zdánlivá komplikovanost. Co tedy k tomu potřebujeme: - zdrojové balíčky jádra a kompilátor (pokud jste to ještě nepotřebovali, jděte do YaSTu a zatrhněte v profilech 'Vývoj Jádra' a vítejte do klubu).

  1. Dále stáhneme FUSE a to v nejposlednější verzi. Aktuální zdrojové balíčky jsou na vývojové verzi OpenSuSE Factory (momentálně je tam fuse-2.6.5-16.src.rpm a doporučuji k němu stáhnout i fuse_kio-0.0.cvs2005.12.08-103.src.rpm (pro vlastní zápis není nezbytný ale pomáhá integraci FUSE do KDE, pokud ho používáte). Vše je na URL http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src
  2. Protože FUSE má modul i v jádře musíme přikompilovat tento modul do aktuálního jádra, stáhněte si tedy i originální zdrojáky FUSE !! dbejte aby jste měli shodnou verzi s výše uvedeným fuse***src.rpm !! Zdrojáky jsou k mání na http://fuse.sourceforge.net v sekci download v našem případě stahnete tedy http://switch.dl.sourceforge.net/sourceforge/fuse/fuse-2.6.5.tar.gz a rozbalíte 'tar xvf fuse-2.6.5.tar.gz' a jdeme kompilovat. Přejděte v rozbaleném souboru do adresáře fuse-2.6.5/kernel/ a spusťte konfiguraci pomocí příkazu './configure --enable-kernel-module' a kouknete na průběh konfigurace jestli vám něco nechybí (zdrojáky jádra, kompilátor například). Pokud proběhla konfigurace OK spusťte kompilaci příkazem 'make' a v adresáři se vám objeví vytoužený modul jádra fuse.ko tento přesunete (pozor teď potřebujete práva roota!) mezi moduly jádra a to buď příkazem
    'make install' nebo příkazem
    'mv -v fuse.ko /lib/modules/`uname -r`/kernel/fs/fuse/
    jako root si vyzkoušejte jestli je modul tam kde má být příkazy 'modinfo fuse' (zkontrolujte jeho verzi) a zatahněte do paměti ''modprobe fuse'. Tento postup budete muset opakovat při každé aktualizaci jádra. Aby se vám vždy zaváděl modul do paměti po startu systému zaeditujte v textovém souboru /etc/sysconfig/kernel řádek MODULES_LOADED_ON_BOOT="fuse".
  3. Dále už to bude jednodušší, zkompilujeme a nainstalujeme samotné FUSE ze stažených src.rpm balíčků. Kompilace je jednoduchá příkazy 'rpmbuild --rebuild --target=i686 fuse-2.6.5-16.src.rpm' a nainstalujte výsledné balíčky (opět jako root) 'rpm -Uhv /usr/src/packages/RPMS/i586/fuse-2.6.5-16.i686.rpm' a také 'rpm -Uhv /usr/src/packages/RPMS/i586/fuse-devel-2.6.5-16.i686.rpm' Uživatelé KDE si mohou stejným postupem nainstalovat FUSE-KIO tedy
    'rpmbuild --rebuild fuse_kio-0.0.cvs2005.12.08-1.src.rpm' a
    'rpm -Uhv /usr/src/packages/RPMS/i586/fuse_kio-0.0.cvs2005.12.08-1.rpm'
  4. FUSE je tedy celé hotové a jdeme na NTFS-3g. Ten se rychle vyvíjí ale aktuálně byl už uvolněn v první stable verzi. Nově je k dispozici i ve vývojovém repozitáři OpenSUSE Factory v balíčku ntfs-3g*src.rp--target=i686m nejnovější verzi lze stáhnout a rekompilovat zdrojáky buď z domácích stránek projektu http://www.ntfs-3g.org (aktuální verze je http://www.ntfs-3g.org/ntfs-3g-1.616.tgz) rozbalíte, zkonfigurujete a jako root nainstalujte:
    'tar xvf ntfs-3g-1.616.tgz'
    'cd ntfs-3g-1.616'
    './configure'
    'make'
    'make install'
    Další možnost - vezmete a překompilujete zdrojový src.rpm balíček z vývojové distribuce např.: http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/ntfs-3g-1.516-7.src.rpm
    a známým postupem sestavíte a nainstalujete - tedy:
    rpmbuild --rebuild --target=i686 ntfs-3g-1.516-7.src.rpm
    rpm -Uhv /usr/src/packages/RPMS/i686/ntfs-3g-1.516-7.rpm
  5. Odmountujte předchozí připojení NTFS svazku 'umount -v /windows/C' Posledním krokem je (opět jako root) editace souboru /etc/fstab, odkomentujte předchozí připojení NTFS svazku a nahraďte ho novým, já to mám takto:
    #/dev/hda1 /windows/C ntfs ro,users,gid=users,umask=0002,nls=utf8 0 0
    /dev/hda1 /windows/C ntfs-3g silent,umask=0000,no_def_opts,allow_other,locale=cs_CZ.utf8 0 0
    Nakonec připojíte NTFS 'mount -v /windows/C'

Vyzkoušejte zápis a mazání do nově připojeného svazku, pokud používáte KDE nainstalujte i fuse-kio pro integraci souborového systému fuseblk (tj. cokoli přes FUSE) do QT aplikací. Mě funguje bezproblémově i zápis do komprimovaných NTFS svazků, jinak ale samozřejmě vše aplikujete na vlastní nebezpečí.

Autor: ulejm

Komentáře

jumbo odpověděl -

Jen škoda, žes to nanepsal o den dřív - včera jsem po lamovsku rozchodil aspoň poloviční funkčnost, ale podle tvého návodu to zkusím rozchodit komplet! Takže díky!

jumbo odpověděl -

Však já také ve Windowsech nepracuji - počítač máme doma jeden a žena Linux odmítla :o) Takže to řeším dvěma výměnými HDD (každý 40 GB) a jedním datovým, stogigovým (slave). A protože jej používám jako úložiště pro video ke střihu a žena zase pro fotky a podobnou havěť, musíme mít naformátováno tak, aby byl umožněn přístup z obou OS. FAT32 je kvůli svým omezením pasé, takže NTFS. Howgh. :o)

micska odpověděl -

Zajímalo by mne, která omezení FAT 32 v běžné praxi tolik vadí? Mám na FAT též něco a zatím žádný problém, tak abych se připravil, co by mne mohlo potkat. Pravda, disk je FAT 32 a ne FAT 32 M$.
Díky

micska odpověděl -

Tak to bude ono, 15 GB file jsem ještě nepotřeboval. :-) Filmy jen nahrávám z DVB-T a zatím jsem problém neměl.
Jo, link je informativní, díky.
BTW, co to provede, kdybych se snažil uložit soubor větší než 4GB? Neuloží se nic nebo nekorektně skončí v limitu velikosti ?

ulejm odpověděl -

Příkaz je součástí výše uvedeného balíčku autoconf, který najdeš na inst. zdroji (CD/DVD apod.). Pokud něco chybí, nejlepší je před aplikací celého návodu vlézt do YaST --> Správce balíčků --> a zatrhnou Vývoj jádra (to vybere všechny potřebné (ale i některé nepotřebné) balíčky pro rekompilaci zdrojů.

ulejm odpověděl -

V celém popisu není nikde počítáno se změnou instalačních zdrojů v YaSTu i když u zdroje http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/sus... to možné je. Ten SL-OSS-factory je vývojová distribuce a neměla by být jako celek používána v inst. zdrojích nikým jiným, než vývojáři openSUSE. Jednotl. balíčky ale lze přenášet do předchozích verzí (já ale volím raději rekompilaci). Takže download src.rpm balíčku a rebuild, pokud není určen přímo pro danou verzi distribuce. Nutné to ale ve většině případů není.