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

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".



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.


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 ;-)


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


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


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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.