@turko35408
Yazılım olmadan zor hocam.
Şu nasıl? Detaylı açıklama ve yorum yapar mısınız lütfen?
kısa cevap:
/etc/fstab ile “her gelen ntfs’i şu opsiyonlarla ntfs-3g ile bağla” diye wildcard yazamıyorsun. fstab tarafı hep volume-volume çalışıyor (uuid/label/ aygıt).
ama
sistem seviyesinde bir hack yaparsan
takılan her ntfs’i otomatik ntfs-3g + istediğin option’larla mount ettirebilirsin.
aşağıyı iki parça düşün:
1. fstab ile: uuid bağımsız “tüm ntfs” diye kural yazamazsın
/etc/fstab şöyle çalışıyor:
- sütun: device / uuid / label
- sütun: filesystem türü (ntfs, ntfs-3g, fusefs vs.)
- wildcard (“her ntfs için geçerli olsun”) yok.
yani şunlar mümkün:
UUID=AAAA-BBBB /Volumes/DISK1 ntfs-3g ...
LABEL=FOO /Volumes/FOO ntfs-3g ...
ama şöyle bir şey
yok:
* /Volumes/%N ntfs-3g local,allow_other,auto_xattr
dolayısıyla sadece fstab kullanarak:
“hangi ntfs takılırsa takılsın, hepsini ntfs-3g ile -o local -o allow_other -o auto_xattr bağla”
diyemiyorsun.
2. sistemin kendi mount_ntfs aracını ntfs-3g wrapper’ıyla değiştirme (tüm ntfs’ler için)
bunu yapan klasik yöntem şu mantıkta:
- macos bir ntfs disk gördüğünde /sbin/mount_ntfs’i çağırıyor.
- biz de diyoruz ki: “tamam, o dosya aslında ntfs-3g çağıran bir script olsun”.
- böylece hangi ntfs gelirse gelsin → arada hep bizim ntfs-3g wrapper çalışıyor.
ama: modern macos’ta /sbin sistemi read-only; bunu yapmak için çoğu zaman
sip (system integrity protection) kapatmak gerekiyor. bu da güvenlik açısından tavsiye edilen bir şey değil.
mantık şöyle:
adım 1: ntfs-3g’yi ve macfuse’u kur
(çoğunu yaptın ama yine de yazayım)
brew install macfuse
brew install ntfs-3g
adım 2: eski mount_ntfs’i yedekle
recovery / sip kapalı durumdaysan:
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.apple
adım 3: yeni mount_ntfs wrapper script’i oluştur
sudo nano /sbin/mount_ntfs
içine mesela şunu koy:
#!/bin/sh
# tüm ntfs volume’leri ntfs-3g ile full erişimle mount et
# argümanlar: device, mountpoint, flags vs.
DEVICE="$1"
MOUNTPOINT="$2"
# mountpoint yoksa oluştur
[ -d "$MOUNTPOINT" ] || mkdir -p "$MOUNTPOINT"
# ntfs-3g’yi senin istediğin parametrelerle çağır
/usr/local/bin/ntfs-3g \
"$DEVICE" "$MOUNTPOINT" \
-o local \
-o allow_other \
-o auto_xattr \
-o fullaccess
kaydedip çık (ctrl+o, enter, ctrl+x).
izinleri düzelt:
sudo chmod 755 /sbin/mount_ntfs
bu noktadan sonra:
- mac “aa ntfs disk geldi” dediğinde yine /sbin/mount_ntfs çağırıyor
- ama bu sefer arkada ntfs-3g senin yazdığın -o local -o allow_other -o auto_xattr -o fullaccess ile çalışıyor
- yani uuid, label hiçbir şey yazmadan tüm ntfs diskler aynı parametrelerle bağlanıyor.
not: bazı rehberler /usr/local/sbin/mount_ntfs’i ntfs-3g’nin kendi helper’ıyla değiştirip oradan script yazdırıyor; mantık aynı.
3. bu yöntemin dezavantajları
- sip kapatma / sistem dosyası oynama işi riskli ve update’lerde bozulmaya açık
- büyük macos güncellemesinde apple tekrar kendi /sbin/mount_ntfs’ini yazıp senin değişikliği silebiliyor
- hatalı bir script yazarsan tüm ntfs mount’ların çöker.
o yüzden “çok pratik ama biraz kirli hack” kategorisinde.
4. “daha temiz ama uğraştırıcı” alternatifler
isteyip de sistem dosyasına dokunmak istemezsen teoride şunlar yapılabiliyor:
- launchd + script:
- yeni disk event’ini dinleyip (diskutil list external / diskutil info -plist vs.)
- otomatik diskutil unmount → sonra ntfs-3g ... ile remount.
- her disk için tek satır fstab (uuid / label) yazmak.
ama “her ntfs ne olursa olsun aynı opsiyonlarla bağlansın” diyorsan en direkt yol gerçekten
mount_ntfs wrapper yaklaşımı.
özet
- fstab tarafında: uuid’siz, generic “her ntfs” kuralı yok.
- komple otomasyon istiyorsan:
→ /sbin/mount_ntfs → ntfs-3g wrapper yaparsın, içine
-o local -o allow_other -o auto_xattr -o fullaccess gömersin.
- bunun için muhtemelen sip oynaman gerekecek, bu da “bilinçli risk” kategorisi.
istersen bir sonraki adım olarak
tam senin sistemine göre (os sürümü, cpu (intel/arm), brew path vs.) uyarlanmış, kopyala-yapıştır script setini de yazabilirim.