Como montar corretamente uma partição NTFS no / etc / fstab?

73

Depois de um episódio desagradável (o meu segundo, você acha que eu aprenderia) causado por downloads automáticos não supervisionados de podcast preenchendo toda a partição, finalmente passei apenas ~/Musicpara a sua própria partição. A partição que estou usando já estava formatada em NTFS (esta é a parte genial: quando eu comprei este computador há três anos, na verdade, configurei-o com uma partição de música 20G precisamente porque eu já tinha esse problema antes, mas nunca realmente me organizei para armazenar músicas nele, então essa é a minha história por trás. Aqui está o que eu preciso agora:

Eu tenho duas partições que quero começar a montar na inicialização:

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

A parte ext4 monta bem (de minha propriedade, somente gravável por mim), mas o ntfs monta de propriedade do root com permissão de leitura e gravação para todos. Não sei como consertar isso. Existe algo peculiar sobre o NTFS ou eu fiz algo em outro lugar que está causando esse 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
Amanda
fonte
As opções "noatime" ou "relatime" estão disponíveis e são recomendadas para montagem permanente de ntfs (consulte man mount.ntfs). Eu também tive alguns problemas de ocupação de disco rígido com ext3 / 4 e ntfs!

Respostas:

90

Permissões para NTFS e sistemas de arquivos vfat deve ser definido com as dmask, fmaske umaskopções. dmaskcontrola permissões para diretórios, fmaskcontrola permissões para arquivos e umaskcontrola ambos. Como essas opções configuram máscaras , elas devem ser o complemento das permissões que você deseja. Por exemplo, rwx para o proprietário e rx para outros é 022 em vez de 755.

Para definir o proprietário, use as opções uide gidpara usuário e grupo, respectivamente. Você pode encontrar o seu UID com o comando id -u. Para encontrar seu GID, use id -g. Esses valores geralmente são 1000.

Um conjunto comum de opções de montagem para o NTFS é uid=1000,gid=1000,dmask=027,fmask=137. Isso define você como o proprietário da unidade e define as permissões para drwxr-x---.

Aqui estão duas linhas do meu / etc / fstab trabalhando

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 você não receber nenhum erro visível após a reinicialização e as partições permanecerem somente leitura ou se ocorrer um erro semelhante 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

Isso ocorre porque o Windows 8 e 10 oferecem uma opção "Inicialização rápida" que depende de um desligamento "não completo". Você pode desativar a inicialização rápida seguindo estas etapas em "Opções de energia".

bessman
fonte
Essa é realmente a fonte de grande parte do exposto acima. Também incluí algumas explicações mais detalhadas de como as opções * mask funcionam.
Bessman
3
Você poderia fornecer um exemplo mais completo, mostrando as opções usadas em uma linha de/etc/fstab
puk
3
@uk, eu tenho UUID=3030BD846F74E514 /media/iam/ntfspartition ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133 0 0, como incluí no askubuntu.com/a/507326/221448 (onde também mencionei bind).
Brady Trainor
11
@ScottFuid=0,gid=0
wjandrea
34

Se você montar a partição ntfs com a opção de permissões, o chmod / chown funcionará

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

Você pode então

sudo chown your_user:your_user /mnt/excess

Mais fácil, então uid, dmask, fmask.

Pantera
fonte
Alguma desvantagem / efeito colateral desse sudo chowncomando? O que exatamente ele faz?
ReneSac
5
O comando chown altera o proprietário do ponto de montagem (/ mnt / excess) para o usuário desejado. Esta etapa terá que ser repetida toda vez que a partição for montada, na minha experiência (pelo menos após cada reinicialização) ... então, faça a coisa certa, configure uid / gid / umask ... Eu sempre achei que fmask e dmask eram opcional - como quando você queria permissões diferentes para arquivos e diretórios.
Thecarpy
7

Eu tive alguns problemas com isso, porque quando eu reinicio o nome do disco muda ... ( sda0 para sdb2 )

Corrigi o problema montando-os por UUID no fstab, você pode visualizar o UUID para seus discos rígidos digitando: sudo blkid

Faça um backup do seu arquivo fstab:

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

Verifique triplamente o >>, se você colocar um> substitua o fstab!

sudo blkid >> /etc/fstab

Se você ainda errou, pode substituir o fstab pelo original:

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

Em seguida, crie uma pasta:

sudo mkdir /media/mydrivename

Configure o fstab:

sudo vim /etc/fstab

Não se esqueça de comentar a saída do blkid com um '#' no início das linhas!

Adicione isso ao arquivo fstab, você pode encontrar o UUID no bloco na parte inferior que você inseriu com o comando acima. media / mydrivename é onde a partição deve ser montada.

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

Este é o meu arquivo 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" 

Reinicie o sistema digitando:

sudo reboot

Para verificar se a partição está montada, você pode digitar df -k.

Dê propriedade a si mesmo:

sudo chown -R USERNAME:USERNAME /media/mydrivename

Fiz isso no Ubuntu Server 14.04.01 !

Espero que esta resposta ajude alguém ;-)

rotgers
fonte
2
Embora isso pareça um conselho geralmente sólido, eu acho mais elegante simplesmente copiar o UUID da saída em sudo blkidvez de descarregar a coisa toda /etc/fstabe corrompê-la temporariamente. Outra maneira seria obter o UUID a partir do diálogo de propriedades da partição no GParted.
David Foerster
Bem, enquanto estou fazendo isso no meu servidor, não vejo uma maneira de copiá-lo ... Tudo o que tenho é um teclado e uma festança.
Outras aves
A maioria dos emuladores de terminal permite copiar coisas (supondo que você esteja usando acesso remoto ou um emulador de terminal como screenou em tmuxvez de um terminal virtual bruto).
precisa
Suposição ruim haha, eu não estava usando um emulador de terminal. No entanto, adicionei algumas coisas à minha resposta para fazer uma cópia do arquivo fstab, caso alguém estrague tudo. :)
rotgers
Eu mudei de usar UUID para LABEL porque, por algum motivo, os UUIDs mudaram quando ajustei uma partição, mas os nomes dos rótulos não. Também acho mais fácil ver o que está acontecendo no fstab com um LABEL = "some-name" do que um UUID = "long random string".
Visualização elíptica
6

Você pode usar o utilitário GUI ntfs-config para montar partições NTFS no fstab. E pode ativar / desativar facilmente os recursos de leitura e gravação.

Montar a partição NTFS do Windows FSTAB

Guia mais detalhado: Montando partições do Windows no Ubuntu na inicialização

Gayan Weerakutti
fonte
Obrigado! Como você criou esse belo gif animado?
Hans-Peter Störr
11
@hstoerr de byzanz-record . agora existem alternativas melhores.
Gayan Weerakutti
4

Pode não ser uma boa solução, mas você sempre pode mapear o ID do usuário para o seu ou para o grupo:

Apenas um exemplo aqui, meu ID de usuário era 1000

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

Nesse caso, todos os arquivos montados pertencentes ao usuário com ID 1000

margarida
fonte
11
Isso funciona, mas com ou sem a opção "rw", ele ainda monta com permissõesdrwxrwxrwx
Amanda
Isso funciona para mim. Para as permissões, adicionei ao fstab file_mode = 0770, dir_mode = 0770
Rui F Ribeiro
2

Observe que se você montar sua unidade ntfs usando um rótulo e desejar alterar as permissões de diretórios ou arquivos nessa unidade, o seguinte funcionará bem (edite o / etc / fstab, por exemplo, sudo nano / etc / fstab e adicione) :

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

Considerando que o abaixo NÃO permitiria alterar as permissões de diretórios ou arquivos:

LABEL=Portable_HD_2TB      /media/mintbox2/Portable_HD_2TB ntfs    defaults        0       2
CMP
fonte
1

Eu uso o seguinte que acho corretamente me concede permissões na montagem (unidade NTFS de uma instalação do sistema de inicialização dupla):

Editar /etc/fstab:

Os UUIDs podem ser encontrados em /dev/disk/by-uuid/(geralmente mapear para /dev/sd*)

Substitua <your uuid>por seu UUID

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

Jonathan
fonte