Mac bilgisayarda NTFS işlemleri nasıl tekrar edilmeden nasıl kullanılır?

Katılım
4 Mart 2019
Mesajlar
7.233
Makaleler
23
Çözümler
14
Yer
Aydın
Daha fazla  
Sistem Özellikleri
Anakart: ECS H81H3-M7
İşlemci: Intel Core i7 4790
HDD: Western Digital WD10EZEX 1 TB 7200 RPM
RAM: Crucial CT102446BA160B.C16FER 1x8GB DDR3 1600MHZ
Kasa: Casper NSH.4790-8T75A-W (CD.VTI4790A) Hazır kasa.
Ekran kartı: Galaxy GT730
PSU: Casper Fsp250-50hmn
Monitör: AOC G2868PQU 28" 4K 3840×2160 1 MS 60 Hz TN panel
UPS: Tunçmatik TSK5208
Mouse: Casper B309
Klavye: Casper K1500
Akım korumalı priz: Monster MPEXP100U
Yazıcı: Epson L4160
Cinsiyet
Erkek
Meslek
Espiri mühendisi
Merhaba arkadaşlar. Mac bilgisayarda terminal üstünden kodlar yazarak Mac bilgisayarda Windows NTFS dosya sistemini sanki macOS değilmiş Windowsmuş gibi kullanmayı başardım.

Ama her NTFS dosya sistemli disk taktığımda işlemleri en baştan tekrar yapmak gerekiyor.

Tek seferde tüm işlemleri yapıp Mac bilgisayarda NTFS nasıl işlemleri tekrar tekrar yapılmadan tekrar edilmeden nasıl kullanılır?
 
@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:


    1. sütun: device / uuid / label
    1. 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.
 
Hocam ben bu yöntemleri bilmiyorum. Her defasında komut girmek istemiyorsanız bir yazılım kullanmalısınız.
Dediğim gibi, dediğim şekilde her defasında komut girmeye hiçbir şekilde gerek kalmıyor.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı