Come posso montare correttamente una partizione NTFS in / etc / fstab?


73

Dopo un brutto episodio (il mio secondo, penseresti di imparare) causato da download di podcast automatizzati senza supervisione che riempiono la mia intera partizione, sono finalmente passato ~/Musicalla sua stessa partizione. La partizione che sto usando era già formattata NTFS (questa è la parte geniale: quando ho avuto questo computer tre anni fa, l'ho effettivamente impostato con una partizione musicale 20G proprio perché avevo avuto questo problema prima, ma non ho mai effettivamente mi sono organizzato per archiviare la musica su di esso. Quindi questo è il mio retroscena. Ecco di cosa ho bisogno ora:

Ho due partizioni che voglio iniziare a montare all'avvio:

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

La partizione ext4 monta bene (di proprietà di me, scrivibile solo da me), ma l'ntfs monta di proprietà di root con il permesso di lettura e scrittura per tutti. Non sono sicuro di come risolvere questo problema. C'è qualcosa di strano in NTFS o ho fatto qualcosa altrove che sta causando questo problema?

drwxr-xr-x  7 amanda amanda 4096 2012-03-14 19:07 devel
drwxrwxrwx  1 root   root   4096 2012-03-14 22:38 excess

Le opzioni "noatime" o "relatime" sono disponibili e consigliate per il montaggio permanente di ntfs (vedi man mount.ntfs). Ho avuto alcuni problemi di affaticamento dell'hdd anche con ext3 / 4 e ntfs!

Risposte:


90

Permessi per NTFS e file vfat sistemi devono essere impostati con i dmask, fmaske le umaskopzioni. dmaskcontrolla le autorizzazioni per le directory, fmaskcontrolla le autorizzazioni per i file e umaskcontrolla entrambi. Poiché queste opzioni impostano maschere , dovrebbero essere il complemento delle autorizzazioni desiderate. Ad esempio, rwx per il proprietario e rx per gli altri è 022 anziché 755.

Per impostare il proprietario, utilizzare rispettivamente le opzioni uide gidper utente e gruppo. Puoi trovare il tuo UID con il comando id -u. Per trovare il tuo GID, usa id -g. Questi valori sono in genere entrambi 1000.

Un set comune di opzioni di mount per ntfs è uid=1000,gid=1000,dmask=027,fmask=137. Questo ti imposta come proprietario dell'unità e imposta le autorizzazioni su drwxr-x---.

Ecco due righe dal mio funzionamento / 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

Se dopo il riavvio non viene visualizzato alcun errore visibile e le partizioni rimangono di sola lettura o si verifica un errore simile a:

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

Questo perché Windows 8 e 10 offrono un'opzione "Avvio rapido" che dipende da un arresto "non completo". È possibile disabilitare l'avvio rapido seguendo questi passaggi in "Opzioni risparmio energia".



Questa è davvero la fonte di gran parte di quanto sopra. Ho anche incluso alcune spiegazioni più dettagliate su come funzionano le opzioni * maschera.
Bessman,

3
Potresti forse fornire un esempio più completo che mostra quelle opzioni usate in una riga da/etc/fstab
puk

3
@puk, l'ho fatto UUID=3030BD846F74E514 /media/iam/ntfspartition ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133 0 0, come ho incluso in askubuntu.com/a/507326/221448 (dove menziono anche bind).
Brady Trainor,

1
@ScottFuid=0,gid=0
wjandrea,

34

Se montate la partizione NTFS con l'opzione di permessi, allora chmod / chown funzionerà

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

Puoi quindi

sudo chown your_user:your_user /mnt/excess

Più facile da usare, smascherare, mascherare.


Qualche inconveniente / effetto collaterale di quel sudo chowncomando? Cosa fa esattamente?
ReneSac,

5
Il comando chown modifica il proprietario del punto di montaggio (/ mnt / eccesso) per l'utente desiderato. Questo passaggio dovrà essere ripetuto ogni volta che viene montata la partizione, nella mia esperienza (almeno dopo ogni riavvio) ... quindi, fai la cosa giusta, imposta uid / gid / umask ... Ho sempre pensato che fmask e dmask fossero opzionale - come quando volevi autorizzazioni diverse per file e directory.
thararpy,

7

Ho avuto qualche problema con questo perché quando riavvio il nome del disco cambia ... (da sda0 a sdb2 )

Ho risolto il problema montandoli tramite UUID in fstab, puoi visualizzare l'UUID per i tuoi hard disk inserendo: sudo blkid

Crea un backup del tuo file fstab:

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

Assicurati di inciampare controlla >>, se ne metti uno> sovrascrivi il tuo fstab!

sudo blkid >> /etc/fstab

Se hai ancora rovinato tutto puoi sostituire il tuo fstab con l'originale:

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

Quindi crea una cartella:

sudo mkdir /media/mydrivename

Configura fstab:

sudo vim /etc/fstab

Non dimenticare di commentare l'output del blkid con un '#' all'inizio delle righe!

Aggiungi questo al file fstab, puoi trovare l'UUID nel blocco in fondo che hai inserito con il comando sopra. media / mydrivename è il punto in cui deve essere montata la partizione.

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

Questo è il mio file 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" 

Riavvia il sistema digitando:

sudo reboot

Per verificare se la partizione è montata, è possibile digitare df -k.

Dai la proprietà a te stesso:

sudo chown -R USERNAME:USERNAME /media/mydrivename

Fatto questo su Ubuntu Server 14.04.01 !

Spero che questa risposta aiuti qualcuno ;-)


2
Mentre questo suona come un consiglio generalmente solido, troverei più elegante semplicemente copiare l'UUID dall'output sudo blkidinvece di scaricare tutto /etc/fstabe corromperlo temporaneamente. Un altro modo sarebbe quello di ottenere l'UUID dalla finestra di dialogo delle proprietà della partizione in GParted.
David Foerster,

Bene mentre lo sto facendo sul mio server non vedo davvero un modo per copiarlo ... Tutto quello che ho è una tastiera e bash.
Rotgers

La maggior parte degli emulatori di terminale consente di copiare elementi (supponendo che si stia utilizzando l'accesso remoto o un emulatore di terminale come screeno tmuxinvece di un terminale virtuale non elaborato).
David Foerster,

Brutto presupposto ahah, non stavo usando un emulatore terminale. Tuttavia, ho aggiunto alcune cose alla mia risposta per aver creato una copia del file fstab nel caso qualcuno rovinasse. :)
Rotgers

Sono passato dall'UUID all'ETICHETTA perché per qualche ragione l'UUID è cambiato quando ho modificato una partizione, ma i nomi delle etichette no. Inoltre trovo più facile vedere cosa sta succedendo in fstab con LABEL = "some-name" rispetto a UUID = "long random string".
Vista ellittica


4

Potrebbe non essere una buona soluzione, ma puoi sempre mappare l'ID utente al tuo o all'ID gruppo:

Solo un esempio qui, il mio ID utente era 1000

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

In tal caso, tutti i file montati di proprietà dell'utente hanno identificato 1000


1
Funziona, ma con o senza l'opzione "rw", si monta ancora con le autorizzazionidrwxrwxrwx
Amanda

Questo funziona per me. Per le autorizzazioni, ho aggiunto a fstab file_mode = 0770, dir_mode = 0770
Rui F Ribeiro

2

Nota che se monti il ​​tuo disco NTFS usando un'etichetta e desideri essere in grado di cambiare i permessi di directory o file su questo disco, allora il seguente funziona bene (modifica il file / etc / fstab ad esempio sudo nano / etc / fstab e poi aggiungi) :

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

Considerando che quanto segue NON consentirebbe di modificare le autorizzazioni di directory o file:

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

1

Uso quanto segue che trovo correttamente mi dà le autorizzazioni al momento del montaggio (unità NTFS da una configurazione di sistema a doppio avvio):

Modifica /etc/fstab:

Gli UUID sono disponibili in /dev/disk/by-uuid/(di solito mappati a /dev/sd*)

Sostituisci <your uuid>con il tuo UUID

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.