Beberapa hari yang lalu kami membagikan di blog ini berita tentang rilis systemd versi 256 , yang merupakan versi yang memperkenalkan sejumlah besar perubahan dan fitur baru, dan di antaranya adalah utilitas run0, yang dapat kita katakan sebagai daya tarik utama dari rilis ini.
Alasan menyebutkan systemd 256 adalah karena rilis versi korektifnya, systemd 256.1, telah diumumkan . Versi ini dirilis untuk mengatasi masalah kritis yang muncul pada versi 256.
Masalah ini menyebabkan penghapusan konten partisi /home yang tidak tepat saat menjalankan perintah systemd-tmpfiles --purge . Awalnya, opsi ini dimaksudkan untuk menghapus file dan direktori yang dibuat melalui konfigurasi di tmpfiles.d, tetapi perilakunya tidak sesuai dengan dokumentasi dan harapan pengguna.
Masalah spesifiknya adalah nama "tmpfiles" dalam utilitas tersebut menyesatkan, karena opsi `--purge` tidak hanya menghapus file sementara, tetapi juga memengaruhi direktori dan file yang dibuat secara otomatis melalui konfigurasi di `tmpfiles.d`. Ini termasuk pembuatan otomatis direktori data, seperti direktori home di `/home`.
Sebagai contoh, file /usr/lib/tmpfiles.d/home.conf bertanggung jawab untuk membuat struktur direktori di /home, dan penggunaan systemd-tmpfiles --purge yang tidak disengaja menghapus direktori-direktori ini beserta isinya, alih-alih hanya membersihkan file sementara seperti yang diharapkan.
Itulah sebabnya versi perbaikan systemd 256.1 dirilis untuk mengatasi ketidakkonsistenan dan masalah yang dilaporkan oleh pengguna dan juga untuk menyelaraskan fungsi –purge dengan tujuan aslinya, memastikan bahwa itu hanya menghapus file sementara dan tidak mempengaruhi struktur direktori dibuat melalui konfigurasi di tmpfiles.d.
Perlu disebutkan bahwa insiden dengan file systemd-tmp dan penghapusan direktori yang salah di partisi /home Ini adalah situasi yang disayangkan yang menimbulkan perdebatan dan perbaikan signifikan dalam implementasi systemd.
Banyak pesan peringatan mulai bermunculan, termasuk rute masuk
/home(tidak dapat mengembalikan waktu modifikasi...?). Apa yang dilakukan alat pembersihan sementara di direktori home saya? Itu tidak baik. Jantungku mulai berdetak lebih cepat dan aku menekan Ctrl-C secepat yang aku bisa.Ternyata sebagian besar direktori pribadi saya telah dihapus. Untungnya, sepertinya ini dimulai dari file konfigurasi dan bukan data sebenarnya, meskipun saya masih tidak yakin apakah saya melewatkan sesuatu yang penting. Saya mematikan mesin untuk memulihkan data nanti
extundelete(btw, tidak berhasil, langsung crash karena suatu alasan; Saya punya cadangan, tapi agak ketinggalan jaman, saya mengisi drive terlalu cepat).
Tanggapan awal dari pengembang systemd Microsoft, Luca Boccassi, mencerminkan rasa frustrasi dan kebingungan di antara pengguna yang terkena dampak penghapusan yang tidak disengaja ini. Implementasi fitur yang, menurut dokumentasi, seharusnya menghapus semua file dan direktori tanpa pandang bulu, tetapi dalam praktiknya memengaruhi struktur sistem yang penting, dipertanyakan.
Setelah diskusi dan tinjauan ekstensif, hal itu diakui bahwa perilaku systemd-tmpfiles --purge salah dan tindakan perbaikan telah diambil.
Awalnya dianggap menghilangkan sepenuhnya opsi tersebut --purge, namun kami memilih untuk membatasi cakupannya sehingga hanya memengaruhi file dan direktori yang terkait langsung dengan konfigurasi tertentu tmpfiles.d/. Modifikasi ini memastikan bahwa perintah hanya menghapus apa yang ingin dihapus, sehingga menghindari efek samping yang tidak diinginkan pada area lain dari sistem file.
Yang menjadi masalah bagi saya adalah dokumentasinya. Ini menjelaskan apa yang dilakukan opsi, secara teknis (ya, saya rasa begitu, saya tidak tahu banyak tentang arsitektur di sini), tetapi tidak menjelaskan mengapa mereka melakukan apa yang mereka lakukan. Ketika seseorang menelusuri dokumentasi, ketiga opsi tersebut tampaknya melakukan hal yang sama: membersihkan file-file sementara
--purgeTampaknya "lebih lengkap" karena disebutkan akan menghapus semua file (termasuk data pengguna).
Selain itu, panduan pengguna systemd-tmpfiles diperbarui untuk memberikan deskripsi opsi yang lebih tepat --purge dan memberikan peringatan yang jelas tentang kemungkinan konsekuensi dari penggunaan yang salah.
Terakhir, kami sarankan untuk melakukan pembaruan yang diperlukan agar tidak mengalami situasi yang sama. Jika Anda tertarik untuk mempelajari lebih lanjut , Anda dapat menemukan detailnya di tautan berikut.