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).
- 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
- 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". - 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' - 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 - 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čí.



Komentáře
jumbo odpověděl -Perfekt! :o)
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!
Neznámý odpověděl -Nechapu ty reci o tom, ze
Nechapu ty reci o tom, ze potreba obcasne prace ve Windows nemine temer zadneho Linuxaka. Kuprikladu ja i cela rada mych kolegu jsme nemeli na svych pocitacich cosi jako Windows nainstalovano uz nejmin 10 let. :) A to presto, ze denne resime i problemy u uzivatelu s Windows (zkusebni "laboratorni" pocitac nepovazuji za svuj).
mayo odpověděl -Načo windows?
Presne tak. Na mojom notebooku windows vôbec nemám a nechýba mi.
jumbo odpověděl -Však já také ve
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 -Jaká omezení FAT?
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
jumbo odpověděl -Omezení je ve velikosti jednotlivých souborů
Omezení je ve velikosti jednotlivých souborů - jedna kazeta miniDV po stažení dá soubor o velikosti cca 11-15 GB, to prostě pod FAT32 (MS) neuložím.
micska odpověděl -Tak to bude ono
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 ?
Neznámý odpověděl -Neuloží se nic. Bude to
Neuloží se nic. Bude to hlásit plný disk
JPetr odpověděl -Ahoj, koukni se sem
Ahoj, koukni se sem
Neznámý odpověděl -Pardon. mela to byt reakce
Pardon. mela to byt reakce na clanek, ne na vas prispevek...
Srigi odpověděl -Pekny clanocek, len by som
Pekny clanocek, len by som nepouzival
make installalecheckinstall, aby dany jedinec vedel co ma v systeme.
CobrA odpověděl -NTFS-3g - uplna parada
na NTFS-3g som narazil nedavno a akonahle som si precital popis na stranke uz aj som kompiloval. Sice musim pripajat disky s "force" (ze vraj ma Win naplanovanu udrzbu) ale zatial 100% spolahlive. Rychlost zapisu ma prekvapila (8MB/s) a vyzera to slubne. Len zatial som neprisiel na sposob ako donutit linux aby pouzival tento modul ked pripojim usb disk na ktorom je NTFS. Kto by vedel ako, budem mu povdacny ;)
Neznámý odpověděl -pri prekladu mi to pise
pri prekladu mi to pise "autoreconf: command not found", nevite nekdo jak zprovoznit ten autoreconf? dikec
Dundee odpověděl -error
pri instalaci rpmbuild --rebuild fuse-2.6.3-6.src.rpm mi to hodi chybu:
configure.in:6: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
Nevite nekdo, co s tim?
ulejm odpověděl -autoreconf = autoconf-2.60-21
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ů.
honzaS odpověděl -NTFS-3G stable verze 1.0
Již je na světě stabilní verze NTFS-3G driveru, viz: http://www.ntfs-3g.org/.
george.george odpověděl -Co s tim URL v bode 1. To
Co s tim URL v bode 1. To patri do zdroju do yastu, nebo se odtamtud ma neco stahnout?
Luke7 odpověděl -tam se to dá
tam se to dá stáhnout.
jako zdroj by se to dalo použít bez toho konce, tuším http://download.opensuse.org/distribution/SL-OSS-factory/
ulejm odpověděl -YaST nebo download
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í.
Neznámý odpověděl -Lama potrebuje radu
niekde mám chybu ale neviem kde (začiatočník) mohli by ste mi poradiť prosím??
linux-33dm:/fuse-2.6.3/kernel # ./configure --enable-kernel-module
checking for a BSD-compatible install... /usr/bin/install -c
checking kernel source directory... /usr/src/linux-2.6.18.8-0.3
checking kernel build directory... /usr/src/linux-2.6.18.8-0.3-obj/i386/default
checking kernel source version... 2.6.18.8-0.3-default
checking if FUSE is configured in the kernel... yes
checking if kernel defines kzalloc function... yes
checking if kernel defines fs_subsys... yes
checking whether lookup_instantiate_filp is defined... yes
checking if umount_begin is passed a vfsmount... yes
checking if inode has i_blksize field... yes
checking if inode has i_private field... no
checking if inode has i_mutex field ... yes
checking if kernel has mutex.h ... yes
checking if kernel has BLOCK option ... no
checking if this is user mode linux... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
linux-33dm:/fuse-2.6.3/kernel # make
make -C /usr/src/linux-2.6.18.8-0.3 SUBDIRS=`pwd` O=/usr/src/linux-2.6.18.8-0.3 -obj/i386/default modules
make[1]: Entering directory `/usr/src/linux-2.6.18.8-0.3'
/usr/src/linux-2.6.18.8-0.3/scripts/gcc-version.sh: line 11: gcc: command not fo und
/usr/src/linux-2.6.18.8-0.3/scripts/gcc-version.sh: line 12: gcc: command not fo und
make[2]: gcc: Command not found
CC [M] /fuse-2.6.3/kernel/dev.o
/bin/sh: gcc: command not found
make[3]: *** [/fuse-2.6.3/kernel/dev.o] Error 127
make[2]: *** [_module_/fuse-2.6.3/kernel] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18.8-0.3'
make: *** [all-spec] Error 2
linux-33dm:/fuse-2.6.3/kernel #
linux-33dm:/fuse-2.6.3/kernel #
ĎAKUJEM
JPetr odpověděl -Nemas nainstalovanej
Nemas nainstalovanej prekladac c
Neznámý odpověděl -ešte mám problémik (lama)
linux-33dm:/fuse-2.6.3 # rpm -Uhv /usr/src/packages/RPMS/i586/fuse-2.6.3-13.i586 .rpm
error: Failed dependencies:
fuse = 2.6.0 is needed by (installed) fuse-devel-2.6.0-9.i586
chýba mi niečo??
Neznámý odpověděl -už to mám
už to mám