Systemd kullanıyorsunuz ve v256'nız var, şimdi güncelleyin çünkü ana dizinleri ortadan kaldıran bir hata içeriyor

systemd 256 kaldırıldı / ana sayfa

Birkaç gün önce blogumuzda systemd sürüm 256'nın yayınlandığı haberini paylaşmıştık . Bu sürüm, çok sayıda değişiklik ve yeni özellik getirmişti ve bunlar arasında, bu sürümün en büyük cazibesi diyebileceğimiz run0 yardımcı programı da yer alıyordu.

Systemd 256'dan bahsetmemizin sebebi, düzeltici sürüm olan systemd 256.1'in yayınlandığının duyurulmuş olmasıdır. Bu sürüm, 256 sürümünde ortaya çıkan kritik bir sorunu gidermek için yayınlanmıştır.

Bu sorun , systemd-tmpfiles --purge komutu çalıştırıldığında /home bölümünün içeriğinin yanlış bir şekilde silinmesini etkiliyordu . Başlangıçta bu seçenek, tmpfiles.d'deki yapılandırmalar aracılığıyla oluşturulan dosya ve dizinleri silmek için tasarlanmıştı , ancak davranış belgelere ve kullanıcı beklentilerine uymuyordu.

Asıl sorun , yardımcı programdaki "tmpfiles" adının yanıltıcı olmasıydı; çünkü `--purge` seçeneği yalnızca geçici dosyaları silmekle kalmıyor, aynı zamanda `tmpfiles.d` içindeki yapılandırmalar aracılığıyla otomatik olarak oluşturulan dizinleri ve dosyaları da etkiliyordu. Bu, `/home` içindeki ana dizin gibi veri dizinlerinin otomatik olarak oluşturulmasını da içeriyordu.

Örneğin, /usr/lib/tmpfiles.d/home.conf dosyası /home dizinindeki klasör yapısını oluşturmaktan sorumluydu ve systemd-tmpfiles --purge komutunun yanlışlıkla kullanılması , beklendiği gibi geçici dosyaları temizlemek yerine bu klasörleri ve içeriklerini sildi.

Bu nedenle kullanıcılar tarafından bildirilen bu tutarsızlıkları ve sorunları çözmek ve ayrıca –purge işlevini orijinal amacına uygun şekilde hizalamak, yalnızca geçici dosyaları silmesini ve dizin yapısını etkilememesini sağlamak için systemd 256.1'in düzeltici sürümü yayımlandı. tmpfiles.d dosyasındaki yapılandırmalar aracılığıyla oluşturulmuştur.

Systemd-tmpfiles ile ilgili olayın ve bölümdeki dizinlerin yanlış silinmesinin söz konusu olduğunu belirtmekte fayda var. /home Bu, sistemd uygulamasında tartışmalara ve önemli düzeltmelere yol açan talihsiz bir durumdu.

Güzergahlar da dahil olmak üzere birçok uyarı mesajı görünmeye başladı. /home(değiştirme süreleri geri yüklenemedi...?). Ana dizinimde geçici bir temizleme aracı ne işe yarar? Bu iyi değil. Kalbim daha hızlı atmaya başladı ve Ctrl-C'ye olabildiğince hızlı bastım.

Kişisel rehberimin büyük bir kısmının silindiği ortaya çıktı. Neyse ki, önemli bir şeyi kaçırıp kaçırmadığımdan hala emin olmasam da, gerçek verilerden değil, yapılandırma dosyalarından başlamış gibi görünüyor. Verileri daha sonra kurtarmak için makineyi kapattım extundelete(bu arada işe yaramadı, bir nedenden dolayı anında çöküyor; yedeklerim var ama biraz güncel değiller, sürücüleri çok hızlı dolduruyorum).

Microsoft systemd geliştiricisi Luca Boccassi'nin ilk yanıtı, bu istenmeyen silme işleminden etkilenen kullanıcılar arasındaki hayal kırıklığını ve şaşkınlığı yansıtıyordu . Belgelere göre tüm dosya ve dizinleri ayrım gözetmeksizin silmesi gereken, ancak pratikte temel sistem yapılarını etkileyen bir özelliğin uygulanması sorgulandı.

Kapsamlı tartışma ve incelemelerden sonra kabul edildi davranışının systemd-tmpfiles --purge hatalıydı ve düzeltici önlem alındı.

Başlangıçta seçeneğin tamamen ortadan kaldırılması düşünülüyordu --purge, ancak kapsamını yalnızca belirli bir yapılandırmayla doğrudan ilişkili dosyaları ve dizinleri etkileyecek şekilde kısıtlamayı seçtik. tmpfiles.d/. Bu değişiklik, komutun yalnızca silmek istediği şeyi silmesini sağlar, böylece dosya sisteminin diğer alanlarındaki istenmeyen yan etkilerden kaçınılır.

Belgelerle ilgili bir sorunum var. Teknik olarak konuşursak, seçeneklerin ne işe yaradığını açıklıyor (sanırım öyle, buradaki mimari hakkında pek bir şey bilmiyorum), ancak yaptıklarını neden yaptıklarını açıklamıyor. Birisi belgelere göz attığında, üç seçeneğin tümü aynı şeyi yapıyor gibi görünüyor: geçici dosyaları temizlemek, ancak --purgeTüm dosyaları (kullanıcı verileri dahil) sildiğini belirttiği için "daha eksiksiz" görünüyor.

Buna ek olarak, systemd-tmpfiles kullanım kılavuzu güncellendi seçeneğin daha kesin bir tanımını sağlamak için --purge ve yanlış kullanımının olası sonuçları hakkında açıkça uyarmak.

Son olarak, aynı durumun tekrar yaşanmaması için gerekli güncellemeleri yapmanızı öneririz. Daha fazla bilgi edinmek isterseniz , aşağıdaki bağlantıdan detaylara ulaşabilirsiniz .


Google'da tercih edilen kaynak olarak ekleyin.