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. .mountfile unit menginstruksikannya untuk memasang volume. .swapfile unit memerintahkannya untuk memberi tahu kernel tentang partisi swap. ( .servicefile 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 systemctlperintah (with --all) pada sistem operasi systemd, itu akan memberi tahu Anda tentang .swapunit 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 .swapfile 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 .mountdan .swapfile Unit secara otomatis dihasilkan oleh program yang dikenal sebagai generator . Dua generator tersebut adalah systemd-fstab-generatordan systemd-gpt-auto-generator. Keduanya berjalan di awal proses bootstrap dan sebagai respons terhadap systemctl daemon-reloadperintah, 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 swdan 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 swapsebagai tipe VFS. systemd-fstab-generatortidak terkecuali di sini, dan itulah yang ditafsirkan /etc/fstabketika 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-generatormenemukan partisi dengan GUID itu (yang memenuhi kriteria yang diberikan dalam systemd doco) itu akan membuat .swapunit untuk itu; tidak /etc/fstabterlibat sama sekali .
Tentu saja, proses ini memiliki banyak efek samping. Misalnya, karena /etc/fstabtidak 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 .mountunit, tertanam ke dalam nama unit. Tidak ada dua .mountunit yang dapat membagikannya. Untuk .swapunit, bidang "spec" (yaitu "apa") adalah kunci unik untuk unit. Tidak ada dua .swapunit yang dapat membagikannya. Jadi, tidak semua catatan /etc/fstabharus 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/fstabke dalam mekanisme asli dan mekanisme asli systemd memiliki cara lain untuk mengaktifkan unit , perilaku ini agak berbeda dengan sistem operasi non-systemd. Sebuah .mountunit 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 .serviceatau .socketunit, 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 swentri tertulis /etc/fstab. Dan begitulah akhirnya yang asli .mountdan .swapunit 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/fstabcocok. 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 /etcpohon 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 /etcdi 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