exFAT dosya sistemi sembolik linkleri desteklemediği için Steam oyunlarını Proton ile çalıştırırken sorun yaşıyorsun. Bunu aşmanın birkaç yolu var ama en temizi, Proton'un compatdata dizinini exFAT dışında bir yere taşımak.
Neden sorun çıkıyor?
Proton her oyun için bir
Çözüm: Bind mount ile compatdata'yı ext4'e taşıma
1. Sisteminde ext4 veya başka bir Linux dosya sistemi olan bir bölüm/bölge seç. Örneğin
2. Her oyun için ayrı bir alt klasör oluşturabilirsin, ama tek bir klasör de kullanabilirsin. Steam her oyunun appid'sine göre alt klasör açtığı için tek bir ana klasör yeterli.
3. exFAT diskinin bağlı olduğu yolu bul. Diyelim ki
4. Şimdi bu dizini, ext4'teki klasörünle bind mount ile değiştir:
5. Bu mount işlemini kalıcı hale getirmek için
6. Artık Steam'i başlat. Oyunları yüklerken exFAT üzerindeki dosyalar okunur, ama compatdata ext4'te oluşur ve sembolik linkler sorunsuz çalışır.
Alternatif yöntemler
NTFS kullanma: Eğer diski formatlayabilirsen NTFS en iyi seçenek. Linux'ta ntfs-3g sürücüsü sembolik linkleri destekler (windows_names=1 ile mount etmen gerekebilir). Ama sen formatlamak istemiyorsun.
Symlink'i host'ta oluşturma: exFAT üzerinde symlink oluşturamazsın, ama host dosya sisteminde (örneğin /home) bir symlink oluşturup exFAT'teki bir klasörü gösterebilirsin. Ancak bu, compatdata'nın exFAT'te olması sorununu çözmez, sadece oyun dosyalarını farklı bir yere koymak için kullanılabilir.
Dikkat edilmesi gerekenler
- exFAT, küçük dosyalarda yavaş kalabilir. Proton prefix'leri binlerce küçük dosya içerir. Bu yüzden oyun açılış süreleri uzayabilir, ama çalışır.
- Bind mount'u her reboot'ta yeniden yapman gerekmez, fstab'a eklenince otomatik olur. Ancak exFAT diskinin önce mount edilmiş olması gerekir. Bunun için fstab'da
- Oyunu başka bir bilgisayarda (Windows) kullanacağın zaman compatdata klasörünü exFAT'teki eski haline geri getirmen gerekmez; Windows zaten compatdata'yı kullanmaz, sadece oyun dosyalarını okur.
Ben şahsen bu yöntemi kullanıyorum, tek sorun Steam'in güncellemeleri sırasında compatdata'nın taşınması olabiliyor. O zaman bind mount'u kaldırıp işlem yap, sonra yeniden mount et.
Neden sorun çıkıyor?
Proton her oyun için bir
steamapps/compatdata/<appid> dizini oluşturur ve içinde sembolik linkler kullanır. exFAT bunları desteklemediği için oyun başlatılamaz.Çözüm: Bind mount ile compatdata'yı ext4'e taşıma
1. Sisteminde ext4 veya başka bir Linux dosya sistemi olan bir bölüm/bölge seç. Örneğin
/home/kullanici/compatdata klasörünü oluştur.2. Her oyun için ayrı bir alt klasör oluşturabilirsin, ama tek bir klasör de kullanabilirsin. Steam her oyunun appid'sine göre alt klasör açtığı için tek bir ana klasör yeterli.
3. exFAT diskinin bağlı olduğu yolu bul. Diyelim ki
/media/exfat_disk altında. Steam kütüphanen oradaysa compatdata yolu /media/exfat_disk/steamapps/compatdata olur.4. Şimdi bu dizini, ext4'teki klasörünle bind mount ile değiştir:
Kod:
sudo mount --bind /home/kullanici/compatdata /media/exfat_disk/steamapps/compatdata
5. Bu mount işlemini kalıcı hale getirmek için
/etc/fstab'a şu satırı ekle:
Kod:
/home/kullanici/compatdata /media/exfat_disk/steamapps/compatdata none bind 0 0
6. Artık Steam'i başlat. Oyunları yüklerken exFAT üzerindeki dosyalar okunur, ama compatdata ext4'te oluşur ve sembolik linkler sorunsuz çalışır.
Alternatif yöntemler
NTFS kullanma: Eğer diski formatlayabilirsen NTFS en iyi seçenek. Linux'ta ntfs-3g sürücüsü sembolik linkleri destekler (windows_names=1 ile mount etmen gerekebilir). Ama sen formatlamak istemiyorsun.
Symlink'i host'ta oluşturma: exFAT üzerinde symlink oluşturamazsın, ama host dosya sisteminde (örneğin /home) bir symlink oluşturup exFAT'teki bir klasörü gösterebilirsin. Ancak bu, compatdata'nın exFAT'te olması sorununu çözmez, sadece oyun dosyalarını farklı bir yere koymak için kullanılabilir.
Dikkat edilmesi gerekenler
- exFAT, küçük dosyalarda yavaş kalabilir. Proton prefix'leri binlerce küçük dosya içerir. Bu yüzden oyun açılış süreleri uzayabilir, ama çalışır.
- Bind mount'u her reboot'ta yeniden yapman gerekmez, fstab'a eklenince otomatik olur. Ancak exFAT diskinin önce mount edilmiş olması gerekir. Bunun için fstab'da
noauto veya x-systemd.automount gibi seçenekler kullanabilirsin.- Oyunu başka bir bilgisayarda (Windows) kullanacağın zaman compatdata klasörünü exFAT'teki eski haline geri getirmen gerekmez; Windows zaten compatdata'yı kullanmaz, sadece oyun dosyalarını okur.
Ben şahsen bu yöntemi kullanıyorum, tek sorun Steam'in güncellemeleri sırasında compatdata'nın taşınması olabiliyor. O zaman bind mount'u kaldırıp işlem yap, sonra yeniden mount et.