Fiziksel swap'i kapatarak 90 saniyelik systemd boot gecikmesini çözmek
Problem
NixOS kurulumumda fiziksel swap alanı için randomEncryption.enable = true açtığımda, sistem boot olurken graphical.target aşamasına geçmeden önce tam 90 saniye siyah ekranda bekliyordu.
Loglara baktığımda şu hatayı gördüm:
Timed out waiting for device /dev/mapper/dev-disk-byx2dpartuuid...
Neden
Sistem açılırken systemd, disk üzerindeki swap bölümünü rastgele şifreleyip hazırlamaya çalışıyor. Fakat zamanlama veya modül sırası yüzünden cihaz hazır olamayınca, systemd cihazın gelmesi için varsayılan bekleme süresi olan 90 saniye boyunca tüm boot sürecini askıya alıyor.
Çözüm
Zaten sistemimde yeterli RAM olduğu için sorunlu fiziksel swap’i tamamen silip, yerine bellekte sıkıştırma yapan zram’i aktif ettim.
hardware.nix içinde fiziksel swap listesini boşaltın:
swapDevices = [];
system.nix (veya configuration.nix) içinde zram’i aktif edin:
zramSwap = {
enable = true;
algorithm = "zstd";
memoryPercent = 100;
priority = 10;
};
Bu değişiklik sonrası 1.5 dakika süren boot sürem saniyelere düştü. Ayrıca zram, bellekten belleğe sıkıştırma yaptığı için diske yazmaktan çok daha performanslı.
Kaynaklar: