Minha resposta para esse problema é o resultado de reunir respostas de vários outros posts (muito obrigado) e minha própria experiência.
O fundo: Eu tenho um disco rígido externo com um sistema de arquivos NTFS. Eu quero ligar de vez em quando. Anteriormente, o volume montava 'somente leitura'. Depois de consertar isso, os arquivos no volume estavam em um estado inutilizável. a fim de obter o volume montado corretamente e ter os arquivos acessíveis, eu tive que fazer o seguinte:
FYI: Sou um usuário de kornshell. Ajuste esses comandos para o seu shell preferido.
$ sudo ksh
<password>
$ mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
$ vi /sbin/mount_ntfs
Em seguida, cole o conteúdo abaixo:
#!/bin/ksh
# --- direct all script stdout to a temp file for examination
exec > /tmp/ntfs
# --- connect all stderr to stdout
exec 2>&1
# --- get the last argument on the command line - this is the mount point
eval echo \$$# |
read MOUNT_PT
echo "\${MOUNT_PT} = \"${MOUNT_PT}\""
echo
echo "Mounting $@"
# --- call the original ntfs mounter with the arguments handed in
/sbin/mount_ntfs.orig -o rw "$@"
echo "Mounted $@"
# --- show the result of the mounting operation
mount
# --- fix files at the newly mounted MOUNT_PT that are in the 'brok' state
find "${MOUNT_PT}" -type f |
while read FILE; do
# ---
# --- use 'SetFile' to modify the file status
# ---
# --- this command line assumes the 'SetFile' command has been installed
# --- and is available in your PATH
# ---
SetFile -c "" -t "" "${FILE}"
done
Então:
$ chmod a+x /sbin/mount_ntfs
$ chown root:wheel /sbin/mount_ntfs
Agora, sempre que eu conecto o disco, ele é montado 'read / write' e os arquivos no disco têm sua redefinição de status 'brok'. Este script funciona bem para mim. Sua milhagem pode variar.
Aproveite -