Jak poprawnie zamontować partycję NTFS w / etc / fstab?

72

Po nieprzyjemnym odcinku (moim drugim, pomyślałbyś, że się dowiem) spowodowanym przez bez nadzoru automatyczne pobieranie podcastów wypełniające całą moją partycję, w końcu przeniosłem ~/Musicsię na własną partycję. Partycja, której używam, była już sformatowana jako NTFS (jest to genialna część: kiedy dostałem ten komputer trzy lata temu, właściwie skonfigurowałem go z partycją muzyczną 20G właśnie dlatego, że miałem ten problem wcześniej, ale nigdy tak naprawdę zorganizowałem się, żeby przechowywać na nim muzykę. Więc to moja historia. Oto, czego teraz potrzebuję:

Mam dwie partycje, które chcę zacząć montować podczas uruchamiania:

/dev/sda3   /mnt/devel  ext4    defaults    0   2
/dev/sda2   /mnt/excess ntfs    defaults    0   2

Część ext4 montuje się dobrze (własność przeze mnie, tylko do zapisu przeze mnie), ale ntfs montuje przez roota z uprawnieniami do odczytu i zapisu dla wszystkich. Nie jestem pewien, jak to naprawić. Czy jest coś dziwnego w NTFS lub czy zrobiłem coś innego, co powoduje ten problem?

drwxr-xr-x  7 amanda amanda 4096 2012-03-14 19:07 devel
drwxrwxrwx  1 root   root   4096 2012-03-14 22:38 excess
Amanda
źródło
Opcje „noatime” lub „relatime” są dostępne i zalecane do stałego montowania NTFS (patrz man mount.ntfs). Miałem też problemy z zajętością dysku twardego z ext3 / 4 i NTFS!

Odpowiedzi:

89

Uprawnienia NTFS i systemów plików vfat muszą być ustawione z dmask, fmaski umaskopcji. dmaskkontroluje uprawnienia do katalogów, fmaskkontroluje uprawnienia do plików i umaskkontroluje oba. Ponieważ te opcje ustawiają maski , powinny one stanowić uzupełnienie wymaganych uprawnień. Na przykład rwx dla właściciela i rx dla innych to 022 zamiast 755.

Aby ustawić właściciela, użyj odpowiednio opcji uidi giddla użytkownika i grupy. Możesz znaleźć swój UID za pomocą polecenia id -u. Aby znaleźć swój GID, użyj id -g. Obie wartości wynoszą zwykle 1000.

Typowym zestawem opcji montowania dla NTFS jest uid=1000,gid=1000,dmask=027,fmask=137. To ustawia cię jako właściciela dysku i ustawia uprawnienia na drwxr-x---.

Oto dwie linie z mojego działającego pliku / etc / fstab

UUID=EEA2B69CA2B668AB        /WIN_C     ntfs-3g   defaults,nls=utf8,umask=000,dmask=027,fmask=137,uid=1000,gid=1000,windows_names 0 0 
UUID=65AEC0E830EA0497        /WIN_D     ntfs-3g   rw 0 0

Jeśli po ponownym uruchomieniu nie pojawi się żaden widoczny błąd, a partycje pozostaną tylko do odczytu lub pojawi się błąd podobny do:

Error mounting /dev/sda6 at /media/WindowsDrive: 
Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sda6" "/media/rolindroy/Media Center"' exited with non-zero exit status 14: The disk contains an unclean file system (0, 0). 
Metadata kept in Windows cache, refused to mount. 
Failed to mount '/dev/sda6': Operation not permitted The NTFS partition is in an unsafe state. 
Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option

Wynika to z faktu, że systemy Windows 8 i 10 oferują opcję „szybkiego uruchamiania”, która zależy od „niepełnego” zamknięcia. Możesz wyłączyć szybkie uruchamianie, wykonując następujące czynności w „Opcjach zasilania”.

bessman
źródło
To jest rzeczywiście źródłem wielu z powyższych. Podałem także bardziej szczegółowe wyjaśnienia dotyczące działania * opcji maski.
bessman,
3
Czy mógłbyś podać bardziej kompletny przykład pokazujący opcje użyte w linii z/etc/fstab
puk
3
@puk, mam UUID=3030BD846F74E514 /media/iam/ntfspartition ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133 0 0, jak to zawarłem na askubuntu.com/a/507326/221448 (gdzie również wspominam bind).
Brady Trainor,
1
@ScottFuid=0,gid=0
wjandrea
34

Jeśli zamontujesz partycję NTFS z opcją uprawnienia, to chmod / chown będzie działać

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

Możesz wtedy

sudo chown your_user:your_user /mnt/excess

Łatwiej niż uid, dmask, fmask.

Pantera
źródło
Jakikolwiek minus / efekt uboczny tego sudo chownpolecenia? Co to dokładnie robi?
ReneSac,
5
Polecenie chown zmienia właściciela punktu montowania (/ mnt / nadmiarem) na żądanego użytkownika. Ten krok będzie musiał być powtarzany za każdym razem, gdy partycja zostanie zamontowana, z mojego doświadczenia (przynajmniej po każdym ponownym uruchomieniu) ... więc zrób właściwą rzecz, ustaw uid / gid / umask ... Zawsze myślałem, że fmask i dmask to opcjonalne - na przykład gdy chcesz mieć różne uprawnienia do plików i katalogów.
thecarpy
7

Miałem z tym pewne problemy, ponieważ po ponownym uruchomieniu komputera zmienia się nazwa dysku ... ( sda0 na sdb2 )

Rozwiązałem problem, montując je za pomocą UUID w fstab, możesz wyświetlić UUID dla swoich dysków twardych, wpisując: sudo blkid

Utwórz kopię zapasową pliku fstab:

sudo cp /etc/fstab /etc/fstab.orig

Upewnij się, że trzykrotnie sprawdź >>, jeśli go umieścisz> nadpiszesz swoje fstab!

sudo blkid >> /etc/fstab

Jeśli nadal masz problemy, możesz zastąpić swój plik fstab oryginalnym:

sudo cp /etc/fstab.orig /etc/fstab

Następnie utwórz folder:

sudo mkdir /media/mydrivename

Skonfiguruj fstab:

sudo vim /etc/fstab

Nie zapomnij skomentować wyniku z blkid za pomocą „#” na początku wiersza!

Dodaj to do pliku fstab, możesz znaleźć UUID w bloku na dole wstawionym za pomocą powyższego polecenia. media / mydrivename to miejsce, w którym należy zamontować partycję.

UUID=xxxxxxxxxxxxxxxxx   /media/mydrivename ntfs    permissions,locale=en_US.utf8    0   2

To jest mój plik fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=5d4940cf-5cf5-443a-be11-1f7e551962d1 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=84b7e5e9-08c3-4641-b28b-99e0255e604d none            swap    sw              0       0

# 500 GB Webserver harddisk from lr-serv-01
UUID=BA9A48D39A488E37 /media/hdd1 ntfs permissions,locale=en_US.utf8 0 2

# 2 TB Movie share harddisk from lr-serv-01
UUID=7EB09666B09624A5 /media/hdd2 ntfs permissions,locale-en_US.utf8 0 2

#/dev/sda1: UUID="10EC004DEC003010" TYPE="ntfs" 
#/dev/sda2: LABEL="system" UUID="88A4FE47A4FE3772" TYPE="ntfs" 
#/dev/sda3: LABEL="storage_01" UUID="BA9A48D39A488E37" TYPE="ntfs" 
#/dev/sdb1: LABEL="storage_02" UUID="7EB09666B09624A5" TYPE="ntfs" 
#/dev/sdc1: UUID="84b7e5e9-08c3-4641-b28b-99e0255e604d" TYPE="swap" 
#/dev/sdc2: UUID="5d4940cf-5cf5-443a-be11-1f7e551962d1" TYPE="ext4" 
#/dev/sdd1: LABEL="storage_spotnet" UUID="EC6E8F416E8F0394" TYPE="ntfs" 
#/dev/sdd2: LABEL="storage_backup_pcs" UUID="6C2699D026999BA0" TYPE="ntfs" 
#/dev/sdd5: LABEL="storage_series" UUID="7670ABF770ABBC6D" TYPE="ntfs" 
#/dev/sdd6: LABEL="storage_winmx" UUID="564AB81B4AB7F5B9" TYPE="ntfs" 

Uruchom ponownie system, wpisując:

sudo reboot

Aby sprawdzić, czy partycja jest zamontowana, możesz wpisać df -k.

Daj sobie prawo własności:

sudo chown -R USERNAME:USERNAME /media/mydrivename

Zrobił to na Ubuntu Server 14.04.01 !

Mam nadzieję, że ta odpowiedź pomoże komuś ;-)

rotgers
źródło
2
Chociaż brzmi to jak ogólnie solidna rada, uważam, że bardziej elegancko byłoby po prostu skopiować UUID z wyjścia, sudo blkidzamiast zrzucać całą rzecz /etc/fstabi przejściowo ją uszkadzać. Innym sposobem byłoby uzyskanie UUID z okna właściwości partycji w GParted.
David Foerster,
Kiedy robię to na moim serwerze, tak naprawdę nie widzę sposobu, aby to skopiować ... Wszystko, co mam, to klawiatura i bash.
rotgers
Większość emulatorów terminali pozwala kopiować rzeczy (zakładając, że używasz dostępu zdalnego lub emulatora terminala, takiego jak screenlub tmuxzamiast surowego terminala wirtualnego).
David Foerster,
Złe założenie haha, nie używałem emulatora terminala. Dodałem jednak trochę do mojej odpowiedzi na temat wykonania kopii pliku fstab na wypadek, gdyby ktoś coś spieprzył. :)
rotgers
Zmieniłem używanie UUID na LABEL, ponieważ z jakiegoś powodu UUID zmienił się, kiedy dostosowałem partycję, ale nazwy etykiet się nie zmieniły. Łatwiej mi też zobaczyć, co się dzieje w fstab z LABEL = „some-name” niż UUID = „długi ciąg losowy”.
Widok eliptyczny
6

Do montowania partycji NTFS w fstab można użyć narzędzia graficznego ntfs-config . I może łatwo włączyć / wyłączyć możliwości odczytu i zapisu.

Zamontuj partycję Windows NTFS FSTAB

Bardziej szczegółowy przewodnik: Montowanie partycji Windows w Ubuntu podczas uruchamiania

Gayan Weerakutti
źródło
Dzięki! Jak stworzyłeś ten fajny animowany gif?
Hans-Peter Störr
1
@hstoerr z byzanz-record . teraz są jednak lepsze alternatywy.
Gayan Weerakutti
4

To może nie być dobre rozwiązanie, ale zawsze możesz odwzorować identyfikator użytkownika na swój własny lub identyfikator grupy:

Oto przykład, mój identyfikator użytkownika to 1000

/dev/sda5 /mnt/excess ntfs defaults,uid=1000,rw 0 0

W takim przypadku wszystkie zamontowane pliki należące do użytkownika o identyfikatorze 1000

stokrotka
źródło
1
To działa, ale z opcją „rw” lub bez niej, nadal montuje się z uprawnieniamidrwxrwxrwx
Amanda
To działa dla mnie. Dla uprawnień dodałem do fstab file_mode = 0770, dir_mode = 0770
Rui F Ribeiro
2

Zauważ, że jeśli zamontujesz dysk NTFS za pomocą etykiety i chcesz zmienić uprawnienia do katalogów lub plików na tym dysku, następujące działania działają dobrze (edytuj plik / etc / fstab np. Sudo nano / etc / fstab, a następnie dodaj) :

LABEL=Portable_HD_2TB      /media/mintbox2/Portable_HD_2TB ntfs    permissions,defaults        0       2

Podczas gdy poniższe NIE pozwolą ci zmieniać uprawnień do katalogów lub plików:

LABEL=Portable_HD_2TB      /media/mintbox2/Portable_HD_2TB ntfs    defaults        0       2
CMP
źródło
1

Używam następujących, które uważam poprawnie, daje mi uprawnienia po zamontowaniu (dysk NTFS z instalacji systemu z podwójnym uruchomieniem):

Edytuj /etc/fstab:

Identyfikatory UUID można znaleźć w /dev/disk/by-uuid/(zwykle odwzorować na /dev/sd*)

Zamień na <your uuid>swój UUID

UUID=<your uuid> /mnt/e ntfs auto,users,uid=1000,gid=1000,dmask=027,fmask=137 0 0

Jonathan
źródło