Portál AbcLinuxu, 29. března 2024 16:46

Jaká je podpora NTFS pod Linuxem?

Úvod do problému

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í :

  1. ntfs-3g
  2. modul ntfs obsažený v jádru
  3. ntfsprogs
  4. captive

Zápis na disk s NTFS přes 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

 

Připojení disku s NTFS s využitím jaderného modulu 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.

 

Připojení disku s NTFS s využitím jaderného modulu 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
  1. Nejprve je nutno zajistit, aby se modul 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
    
  2. Pak vytvoříme skupinu ntfs
    addgroup ntfs
    
    Př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
    
  3. Do souboru /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    0
    
    Pokud 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.

 

Zápis na disk s NTFS přes 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é.

Související dokumenty

Na co se často ptáme: /etc/fstab (článek)
FEDORA CORE 3 + NTFS (diskuse)
Balíčky s NTFS podporou pro Fedoru a Red Hat (externí dokument)
FUSE (externí dokument)
Captive (externí dokument)
Zážitky s ntfsprogs (blog)
Článek pro LinuxExpres s jednoduchým návodem (externí dokument)
ntfs-3g pod obyčejným uživatelem (diskuse)

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: 14748×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.