การตอบสนองต่อปัญหานี้ของฉันเป็นผลมาจากการปูด้วยกันคำตอบที่นำมาจากการโพสต์อื่น ๆ (ขอบคุณมาก) และประสบการณ์ของฉันเอง
พื้นหลัง: ฉันมีฮาร์ดไดรฟ์ภายนอกที่มีระบบไฟล์ NTFS ฉันต้องการที่จะเสียบมันเป็นครั้งคราว ก่อนหน้านี้ปริมาณจะเมานต์ 'อ่านอย่างเดียว' เมื่อฉันได้รับการแก้ไขแล้วไฟล์ในโวลุ่มนั้นอยู่ในสถานะที่ใช้ไม่ได้ เพื่อให้ไดรฟ์ข้อมูลติดตั้งอย่างถูกต้องและสามารถเข้าถึงไฟล์ได้ฉันต้องทำสิ่งต่อไปนี้:
FYI: ฉันเป็นผู้ใช้ 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' รีเซ็ต สคริปต์นี้ทำงานได้ดีสำหรับฉัน ไมล์สะสมของคุณอาจแตกต่างกันไป
สนุก --