Saya telah membaca bahwa Anda perlu meletakkan partisi swap pada HDD daripada SSD.
Pertanyaan saya adalah sebagai berikut:
- Kapan dan bagaimana "pengecekan" dilakukan oleh distribusi (atau sesuatu yang lain) untuk menemukan partisi Swap-nya?
- Apakah itu terjadi saat boot?
- Itu hanya memeriksa semua disk yang tersedia dan mencari partisi dengan flag 'swap'?
- Apa yang terjadi jika ada beberapa partisi seperti itu?
- Juga, berapa banyak partisi swap yang harus saya miliki jika saya menjalankan, misalnya, dua distribusi berbeda pada disk yang sama, katakanlah Fedora dan Ubuntu?
Jawaban:
Ruang swap yang dikonfigurasi secara statis (tipe yang digunakan oleh hampir semua distribusi) dikonfigurasikan
/etc/fstab
seperti halnya filesystem.Entri khas terlihat seperti:
Anda juga dapat melihat salah satu
discard
atau yangnofail
ditentukan di bidang bendera (bidang keempat). Setiap baris seperti itu berkorespondensi dengan satu area swap (tidak harus berupa partisi, Anda dapat memiliki file swap, atau bahkan seluruh disk swap).Dalam beberapa kasus yang benar-benar spesifik, Anda mungkin sebagai gantinya telah mengkonfigurasi ruang swap dinamis, meskipun ini agak jarang karena dapat menyebabkan perilaku bermasalah yang berkaitan dengan manajemen memori. Dalam hal ini, konfigurasi ditangani sepenuhnya oleh komponen userspace yang membuat dan memungkinkan bertukar file sesuai kebutuhan saat run time.
Sejauh berapa banyak yang Anda butuhkan, itu adalah pertanyaan yang rumit untuk dijawab, tetapi jumlah distribusi Linux yang berbeda yang Anda rencanakan untuk dijalankan tidak memiliki dampak pada hal ini kecuali Anda ingin dapat menjalankan satu distribusi sementara Anda memiliki yang lain dalam hibernasi (dan Anda mungkin tidak ingin melakukan ini, karena ini adalah cara yang sangat mudah untuk mengacaukan sistem Anda).
Saat Anda menjalankan installer untuk hampir semua distribusi utama (termasuk Fedora, OpenSUSE, Linux Mint, Debian, dan Ubuntu), ia akan mendeteksi partisi swap yang ada pada sistem, dan menambahkannya ke konfigurasi untuk distribusi yang Anda inginkan. menginstal (kecuali mungkin jika Anda memilih partisi manual), dan dalam kebanyakan kasus ini akan menghasilkan sistem yang dikonfigurasi secara masuk akal.
Terlepas dari itu, saya pribadi menyarankan untuk tidak memiliki banyak partisi swap kecuali jika Anda berbicara tentang sistem server dengan banyak disk, dan bahkan kemudian Anda benar-benar perlu tahu apa yang Anda lakukan untuk mendapatkan pengaturan sehingga berkinerja baik .
sumber
/tmp
partisi / direktori yang berbeda ). Mungkin dalam hal ini lebih baik untuk memiliki mesin virtual ...systemctl --all | grep swap
saya mendapatkan dua hasil.dev-disk-by\x2duuid-1c692cc4\x2df942\x2d4478\x2dad0f\x2d266b7484273a.swap
danswap.target
keduanya AKTIF = tidak aktif dan SUB = mati . Bagaimana saya membuat sistem saya menggunakan area swap?… 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: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:
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 adalahsystemd-fstab-generator
dansystemd-gpt-auto-generator
. Keduanya berjalan di awal proses bootstrap dan sebagai respons terhadapsystemctl 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 darisw
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 , mencariswap
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 sebagaiWants=
atauRequires=
dari beberapa.service
atau.socket
unit, yang berarti bahwa itu akan (diaktifkan kembali) ketika mereka. Bahkan adaRequiresMountsFor=
.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 setiapsystemctl 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
systemd.swap
. halaman manual systemd . freedesktop.org.systemd-fstab-generator
. halaman manual systemd . freedesktop.org.systemd-gpt-auto-generator
. halaman manual systemd . freedesktop.org.sumber
Secara historis, partisi swap ditentukan
/etc/fstab
dengan entri tipeswap
. Saat boot, proses startup akan membaca file itu dan mendorong konfigurasi itu ke dalam kernel.Contoh entri
/etc/fstab
adalah:Saya tidak terbiasa dengan cara
systemd
mengelola swap, tetapi saya percaya bahwa hasil akhirnya sama: proses userspace mengetahui ruang apa yang dialokasikan untuk swap, dan proses userspace menginformasikan kernel.sumber
/etc/fstab
darisw
tipe mount mereka dan bukan dariswap
tipe VFS mereka .systemd-gpt-auto-generator
.Semua jawaban lain menyebutkan cara menunjuk ke swap filesystem saat boot.
Namun, beberapa poin untuk ditambahkan ke jawaban lain:
mkswap
;swapon
;swapoff
.sumber