katakanlah Fedora dan Ubuntu?
… Keduanya merupakan sistem operasi systemd saat ini.
Apa yang terjadi dalam sistem operasi systemd
mekanisme asli
Systemd mempekerjakan berbagai jenis unit. .mount
file unit menginstruksikannya untuk memasang volume. .swap
file unit memerintahkannya untuk memberi tahu kernel tentang partisi swap. ( .service
file unit menginstruksikan cara menjalankan layanan. Dan sebagainya.) Ini adalah mekanisme systemd asli. Untuk memberlakukannya, systemd sendiri memotong proses anak yang membuat panggilan sistem yang relevan.
Jika Anda menggunakan systemctl
perintah (with --all
) pada sistem operasi systemd, itu akan memberi tahu Anda tentang .swap
unit yang dimuat . Sebagai contoh:
dev-disk-by \ x2dpartuuid-40549710 \ x2d05.swap aktif aktif / dev / disk / by-partuuid / 40549710-05
dev-disk-by \ x2duuid-1bb589e8 \ x2d929f \ x2d4041 \ x2d81f4 \ x2dff2b339b4e2a.tukar dimuat aktif / dev / disk / oleh-uuid / 1bb589e8-929f-4041-81f4b2b3
dev-sda5.swap dimuat aktif / dev / sda5 aktif
Ini juga akan memberi tahu Anda tentang .mount
unit.
Administrator sistem sebenarnya dapat menulis .swap
file unit tersebut dengan tangan, seperti halnya xe dapat menulis .service
,.socket
dan file satuan lainnya dengan tangan. systemd sendiri hanya mencari file unit dalam sistem file. Mereka adalah mekanisme aslinya.
Satu bahkan bisa mendapatkan systemd untuk menunjukkan kepada Anda apa yang ada di file unit ini dan di mana dalam filesystem mereka dapat ditemukan:
$ systemctl cat dev-disk-by \\ x2duuid-1bb589e8 \\ x2d929f \\ x2d4041 \\ x2d81f4 \\ x2dff2b339b4e2a.swap
# /run/systemd/generator/dev-disk-by¡x2duuid-1bb589e8\x2d929fx2d4041\x2d81f4\x2dff2b339b4e2a.swap
# Secara otomatis dihasilkan oleh systemd-fstab-generator
[Satuan]
SourcePath = / etc / fstab
Dokumentasi = man: fstab (5) man: systemd-fstab-generator (8)
[Menukar]
What = / dev / disk / by-uuid / 1bb589e8-929f-4041-81f4-ff2b339b4e2a
Opsi = sw
$
file unit yang dihasilkan secara otomatis
Orang dapat menulisnya dengan tangan. Biasanya namun seperti .mount
dan .swap
file Unit secara otomatis dihasilkan oleh program yang dikenal sebagai generator . Dua generator tersebut adalah systemd-fstab-generator
dan systemd-gpt-auto-generator
. Keduanya berjalan di awal proses bootstrap dan sebagai respons terhadap systemctl daemon-reload
perintah, dan (seperti yang Anda lihat di atas) mereka menghasilkan seluruh beban file unit ke dalam subdirektori tidak berdokumen di /run/systemd/
. systemd sendiri hanya menggunakan file unit yang dihasilkan tersebut .
Mantan generator membaca /etc/fstab
, mengenali beberapa ekstensi systemd ke format file itu. Seperti yang saya tunjukkan dalam komentar jawaban, secara tradisional partisi swap yang memiliki tipe gunung dari sw
dan itu adalah bagaimana orang akan menemukan bahwa sistem operasi lain mengenali catatan swap tabel ini. Tetapi perangkat lunak Linux telah mengambil alternatif untuk mengenali tipe VFS , mencari swap
sebagai tipe VFS. systemd-fstab-generator
tidak terkecuali di sini, dan itulah yang ditafsirkan /etc/fstab
ketika mengubahnya menjadi mekanisme asli.
Generator yang terakhir memproses tabel partisi EFI yang ada di disk yang sama yang memegang Partisi Sistem EFI, mencari entri tabel partisi EFI yang memiliki berbagai GUID jenis partisi terkenal . Salah satu dari GUID tersebut adalah GUID konvensional yang ditugaskan untuk partisi swap Linux; dan jika systemd-gpt-auto-generator
menemukan partisi dengan GUID itu (yang memenuhi kriteria yang diberikan dalam systemd doco) itu akan membuat .swap
unit untuk itu; tidak /etc/fstab
terlibat sama sekali .
Tentu saja, proses ini memiliki banyak efek samping. Misalnya, karena /etc/fstab
tidak memiliki kunci utama ke tabel, catatan dapat memiliki duplikat "spec" dan "file" (yaitu "apa" dan "di mana") bidang. Dalam mekanisme systemd asli, meskipun, bidang "file" (yaitu "di mana") adalah kunci unik untuk .mount
unit, tertanam ke dalam nama unit. Tidak ada dua .mount
unit yang dapat membagikannya. Untuk .swap
unit, bidang "spec" (yaitu "apa") adalah kunci unik untuk unit. Tidak ada dua .swap
unit yang dapat membagikannya. Jadi, tidak semua catatan /etc/fstab
harus dapat dikonversi ke mekanisme asli dan akan berfungsi, terutama jika orang melakukan hal-hal seperti mendaftar titik mount yang sama untuk dua tujuan yang berbeda atau daftar partisi swap yang sama dalam dua cara berbeda.
Demikian pula, karena telah diterjemahkan /etc/fstab
ke dalam mekanisme asli dan mekanisme asli systemd memiliki cara lain untuk mengaktifkan unit , perilaku ini agak berbeda dengan sistem operasi non-systemd. Sebuah .mount
unit akan, secara default, diaktifkan secara otomatis olehsystemd-udevd
, bahkan setelah bootstrap, sebagai respons terhadap penampilan perangkat penyimpanan yang dipasang. Atau dapat didaftarkan sebagai Wants=
atau Requires=
dari beberapa .service
atau .socket
unit, yang berarti bahwa itu akan (diaktifkan kembali) ketika mereka. Bahkan ada RequiresMountsFor=
.
program pemasang dan cara systemd
Secara tradisional, program penginstal sistem operasi, dan administrator systemd setelah itu mengkonfigurasi ulang sistem, memiliki sw
entri tertulis /etc/fstab
. Dan begitulah akhirnya yang asli .mount
dan .swap
unit dihasilkan secara otomatis. Utilitas instal / konfigurasi "tahu" di mana file swap diletakkan, karena dalam antarmuka penggunanya administrator sistem membuat semacam pilihan, dan menulis yang /etc/fstab
cocok. Terkadang pilihan itu adalah saya ingin Anda menjadikan saya partisi swap sebagai bagian dari instalasi. ; terkadang hanya menggunakan partisi swap yang sudah Anda temukan di disk. (installer juga melihat tipe partisi).
Tetapi orang-orang systemd memiliki ide sistem operasi yang secara otomatis mengkonfigurasi diri mereka sendiri dari /etc
pohon yang sebagian besar kosong , yang disebut sistem stateless , dan itulah mekanisme seperti generator yang membaca tabel partisi EFI. Dalam rencana orang-orang systemd, tidak ada /etc/fstab
, dan memang tidak ada data konfigurasi persisten /etc
di bawah sama sekali, dan semua hal ini disimpulkan dari isi tabel partisi pada disk , di setiap bootstrap dan setiap systemctl daemon-reload
. Mereka saat ini mempromosikan program installer sistem operasi daripada tidak menulis/etc/fstab
.
Dalam skema tradisional, tentu saja Anda memang dapat memiliki masing-masing sistem operasi memiliki partisi swap pribadi, dan tidak memiliki mereka menyentuh partisi swap satu sama lain. Dan memang jika Anda menggunakan hibernate untuk disk melalui partisi swap dan berharap untuk dapat multi-boot ke sistem operasi lain sementara hibernasi ( yang merupakan ide yang sangat buruk karena sangat mudah menyebabkan korupsi filesystem dengan cara ini ) yang akan menjadi perlu.
Dalam skema systemd, bahkan jika sistem operasinya belum sesuai dengan systemd yang orang bayangkan dan "stateless", generator tersebut dijalankan; dan karenanya semua partisi swap (pada ESP / root disc) dengan tipe partisi yang diperlukan secara otomatis digunakan oleh semua sistem operasi systemd. Karena mereka akan membagikan semua partisi swap yang ditemukan secara otomatis, partisi swap yang benar-benar tidak perlu dibuat untuk setiap sistem operasi yang diinstal.
Bacaan lebih lanjut