Portál AbcLinuxu, 30. dubna 2025 15:25
Nejprve je potřeba říct, že NTFS není opensource a není známa jeho celá specifikace. Z toho vyplývají určité omezení a možné problémy. Připojit disk s NTFS lze ale nyní v linuxu velmi snadno. Můžeme použít několik ovladačů pro připojení :
ntfs-3g
Projekt ntfs-3g (3g = třetí generace) je mezi projekty zabývajícími se přístupem na NTFS nejnovější a nabízí plnou podporu čtení/zápis, vysokou stabilitu a oproti ostatním projektům odstraňuje některé chyby a má také velmi dobrý výkon. Umožňuje také připojení disku i s poškozeným souborovým systémem NTFS (třeba při výpadku proudu), kdy již není potřeba nabootovat do Windows a chybu nechat opravit příkazem chkdsk.
Připojení disku se provádí příkazem
mount -t ntfs-3g váš oddíl /media/přípojné místo # např. mount -t ntfs-3g /dev/hda1 /media/windows
nebo přidáním příslušné řádky do souboru
/etc/fstab
váš oddíl /media/přípojné místo ntfs-3g defaults,locale=cs_CZ.utf8,fmask=111 0 0
Samozřejmě, místo
váš oddíl
tam bude název vašeho NTFS disku, místo
přípojné místo
tam bude adresář, kam se váš disk připojuje.
V případě onoho "poškozeného" souborového systému NTFS lze přidat ještě volbu 'force':
mount -t ntfs-3g -o force váš oddíl /media/přípojné místo
nebo
váš oddíl /media/přípojné místo ntfs-3g defaults,locale=cs_CZ.utf8,fmask=111,force 0 0
ntfs
Modul pro práci s NTFS (ntfs.ko) který se vyskytuje v distribučních jádrech umožnuje pouze jeho čtení. Pokud je tento modul zkompilován s podporou pro zápis, tak pozor na jeho omezení - nelze měnit názvy souborů ani vytvářet soubory nové. Chcete-li tedy nějaký soubor přesunout na disk s NTFS, pak jej musíte nakopírovat do již existujícího souboru. Připojit diskový oddíl s NTFS můžete zcela běžným způsobem pomocí příkazu mount
.
# mount -t ntfs /dev/hda2 /mnt/disk_c -o nls=utf8
Připojí váš druhý primární oddíl na prvním IDE disku do adresáře /mnt/disk_c
(ten před použitím příkazu mount
musí existovat a měl by být prázdný - po připojení diskového oddílu se totiž k jeho obsahu nedostanete, dokud jej neodpojíte).
Pokud chcete k tomuto diskovému oddílu přistupovat i jako běžný uživatel, přidejte do parametru "-o" hodnotu uid="vaše_uid". Všem uživatelům povolíte přístup hodnotou umask=000, což je celkem nebezpečné. Rozumné řešení spočívá ve vytvoření skupiny např. ntfsdisk, přidání uživatelů, kteří mají mít přístup k disku do této skupiny a při připojování disku uvédst parametry uid=root,gid=ntfsdisk,umask=007. Pak soubory sice budou patřit nejen rootovi, ale i skupině ntfsdisk a všichni v této skupině budou moci zapisovat dle libosti. Pokud bude používat disk jen jeden uživatel, stačí nastavit parametr uid na jeho jméno a umask na 077.
Aby nebylo nutné připojovat disk manuálně po každém restartu, přidejte řádek s příslušně upravenými hodnotami do souboru /etc/fstab
/dev/hda2 /mnt/disk_c ntfs auto,nls=utf8,umask=007 0 0
Více man fstab.
FUSE
Kompletní podporu NTFS (čtení i zápis) poskytuje řešení přes ntfsprogs s využitím FUSE. Modul pro FUSE (fuse.ko) se vyskytuje v jádře od verze 2.6.14 (starší verze jádra je nutno patchovat), lze přes něj lokálně připojovat nejenom diskové oddíly s NTFS, ale také např. vzdálené adresáře přes SSH, FTP, WebDAV, atd..
Nejprve si ověřte, obsahuje-li vaše distribuce balíky pro práci s fuse (fuse-utils
či libfuse2
) a ntfs (libntfs8
čintfsprogs
).Názvy balíků těchto nástrojů se mohou v jednotlivých distribucích lišit. Pak si zkontrolujte zda-li je máte nainstalovány ve vašem systému.
## V balíčkovacím systému postaveném na DEB dpkg -l | grep "\(ntfs\|fuse\)" ## V balíčkovacím systému postaveném na RPM rpm -qa | grep "\(ntfs\|fuse\)" ## V balíčkovacím systému Portage epm -qa | grep -e ntfsprogs -e fuse # pokud nemáte epm, tak emerge epm## V balíčkovacím systému Pacman pacman -Q ntfsprogs
FUSE
natahoval ihned při startu, takže přidáme jeho název do souboru /etc/modules
(Ubuntu) nebo /etc/modprobe.conf
(pro jádra 2.6)
echo fuse | tee -a /etc/modules nebo echo alias fuse fuse | tee -a /etc/modprobe.conf
ntfs
addgroup ntfsPři vytváření skupiny by mělo vyléz něco podobného:
Adding group `ntfs' (1001)... Done.Tu nastavíme všem uživatelům, co by měli mít zápis do diskového oddílu s NTFS povolen
adduser uzivatel ntfs
/etc/fstab
přidáme patřičně upravený následující řádek
/dev/hda1 /mnt/disk_c ntfs-fuse auto,gid=1001,umask=0002 0 0Pokud chcete zablokovat přístup uživatelům co nejsou ve skupině
ntfs
tak nastavte umask=0007
Pozn.: V Ubuntu Dapper se vyskytuje bug. Je třeba opravit symlink /sbin/mount.ntfs-fuse
bash:~$ sudo rm /sbin/mount.ntfs-fuse && sudo ln /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
Po restartu by mělo být možné disk s NTFS nejen číst, ale také na něj zapisovat.
Zde odkaz na stránku s postupem nastavení ntfs-fuse ze které jsem čerpal.
captive
Podporu pro zápis nabízí také třeba projekt captive. Jelikož používá originální ovladač ntfs.sys
z Windows, je podpora NTFS zcela kompletní. Nevýhodou je nižší rychlost ovladače (cca 500kB/s), který funguje podobným způsobem jako Wine. Také pravděpodobně budete potřebovat licenci na MS Windows abyste originální ovladač mohli použít. Toto řešení je již zastaralé a překonané.
Dokument vytvořil: Käyttäjä 11133, 21.7.2005 01:54 | Poslední úprava: Leoš Literák, 7.1.2009 12:16 | Další přispěvatelé: alium, jose17 | Historie změn | Zobrazeno: 15125×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.