Мой ответ на эту проблему является результатом объединения ответов, взятых из нескольких других сообщений (большое спасибо), и моего собственного опыта.
Предыстория: у меня есть внешний жесткий диск с файловой системой NTFS. Я хочу подключить его время от времени. Ранее том монтировался как «только для чтения». Как только я это исправил, файлы на томе были в непригодном для использования состоянии. чтобы правильно смонтировать том и получить доступ к файлам, мне пришлось сделать следующее:
К вашему сведению: я пользователь kornshell. Настройте эти команды для вашей предпочитаемой оболочки.
$ sudo ksh
<password>
$ mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
$ vi /sbin/mount_ntfs
Затем вставьте содержимое ниже:
#!/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
Затем:
$ chmod a+x /sbin/mount_ntfs
$ chown root:wheel /sbin/mount_ntfs
Теперь, каждый раз, когда я подключаю диск, он монтируется на «чтение / запись», а файлы на диске сбрасываются в состояние «brok». Этот сценарий хорошо работает для меня. Ваш пробег может отличаться.
Наслаждаться --