आइए कहते हैं फेडोरा और उबंटू?
… ये दोनों आजकल के ऑपरेटिंग सिस्टम हैं।
Systemd ऑपरेटिंग सिस्टम में क्या होता है
देशी तंत्र
सिस्टमड विभिन्न प्रकार की इकाइयों को नियुक्त करता है। .mount
इकाई फाइलें इसे वॉल्यूम माउंट करने का निर्देश देती हैं। .swap
यूनिट फाइलें इसे स्वैप विभाजन के बारे में कर्नेल को बताने का निर्देश देती हैं। ( .service
इकाई फाइलें यह निर्देश देती हैं कि सेवाओं को कैसे चलाया जाए। और इसी तरह।) ये देशी सिस्टम तंत्र हैं। उन्हें अधिनियमित करने के लिए, सिस्टमड स्वयं ही उन बाल प्रक्रियाओं को बंद कर देता है जो संबंधित सिस्टम कॉल करते हैं।
यदि आप इस तरह के सिस्टमड ऑपरेटिंग सिस्टम पर systemctl
कमांड (साथ --all
) का उपयोग करते हैं , तो यह आपको लोड की .swap
गई इकाइयों के बारे में बताएगा । उदाहरण के लिए:
dev-disk-by \ x2dpartuuid-40549710 \ x2d05.swap सक्रिय सक्रिय / dev / डिस्क / by-partuuid / 40549710-05 लोड किया गया
dev-disk-by \ x2duuid-1bb589e8 \ x2d929f \ x2d4041 \ x2d81f4 \ x2dff2b339b4e2a.swap सक्रिय सक्रिय / देव / डिस्क / बाय-यूड / 1bb589e8-929f-4041 -4041 -4041 -4041 -4041
dev-sda5.swap लोड सक्रिय / देव / sda5
यह आपको .mount
इकाइयों के बारे में भी बताएगा ।
एक सिस्टम प्रशासक वास्तव में इस तरह लिख सकते हैं .swap
, हाथ से इकाई फ़ाइलों बस के रूप में XE लिख सकते हैं .service
, .socket
हाथ से दूसरी इकाई फ़ाइलें, और। systemd ही फाइल सिस्टम में केवल यूनिट फाइलों की तलाश करता है। वे इसके मूल तंत्र हैं।
यहां तक कि आपको ये दिखाने के लिए सिस्टमड मिल सकता है कि इन यूनिट फाइलों में क्या है और फाइलसिस्टम में वे कहां मिल सकते हैं:
$ systemctl cat dev-disk-by \\ x2duuid-1bb589e8 \\ x2d929f \\ x2d4041 \\ x2d81f4 \\ x2dff2a9a9b4e2a.swap
#run/systemd/generator/dev-disk-by\x2duuid-1bb589e8\x2d929f\x2d4041-26x2d81f4\x2d223333bb9e2a.swap
# सिस्टमड-एफस्टैब-जनरेटर द्वारा स्वचालित रूप से उत्पन्न
[यूनिट]
Sourcepath = / etc / fstab
प्रलेखन = आदमी: fstab (5) आदमी: systemd-fstab-जनरेटर (8)
[स्वैप]
क्या = / dev / डिस्क / दर-UUID / 1bb589e8-929f-4041-81f4-ff2b339b4e2a
विकल्प = sw
$
स्वचालित रूप से जनरेट की गई फ़ाइल
कोई उन्हें हाथ से लिख सकता है। आमतौर पर हालांकि ऐसी .mount
और .swap
यूनिट फाइलें स्वचालित रूप से जनरेटर के रूप में ज्ञात कार्यक्रमों द्वारा उत्पन्न होती हैं । इस तरह के दो जनरेटर systemd-fstab-generator
और हैं systemd-gpt-auto-generator
। वे दोनों बूटस्ट्रैप प्रक्रिया में और systemctl daemon-reload
कमांड के जवाब में जल्दी चलते हैं , और (जैसा कि आप ऊपर देख सकते हैं) वे यूनिट फ़ाइलों का एक पूरा लोड एक अनजाने में उपनिर्देशिका में उत्पन्न करते हैं /run/systemd/
। systemd ही उन जेनरेट की गई यूनिट फ़ाइलों का उपयोग करता है ।
पूर्व जनरेटर पढ़ता है /etc/fstab
, उस फ़ाइल प्रारूप में कई systemd एक्सटेंशन को पहचानता है। जैसा कि मैंने एक उत्तर टिप्पणी में बताया है, पारंपरिक रूप से स्वैप विभाजन में माउंट प्रकार होता है sw
और इस तरह से कोई अन्य ऑपरेटिंग सिस्टम इस तालिका में स्वैप रिकॉर्ड को पहचानता है। लेकिन लिनक्स सॉफ्टवेयर्स ने VFS प्रकार को पहचानने का वैकल्पिक शुल्क लिया है, VFS प्रकार की तलाश में swap
। systemd-fstab-generator
यहाँ कोई अपवाद नहीं है, और यह है कि यह कैसे /etc/fstab
देशी तंत्र में परिवर्तित करते समय व्याख्या करता है।
उत्तरार्द्ध जनरेटर EFI विभाजन तालिका को संसाधित करता है जो उसी डिस्क पर है जो EFI सिस्टम विभाजन को रखती है, EFI विभाजन तालिका प्रविष्टियों की तलाश में है जिसमें विभिन्न प्रसिद्ध विभाजन प्रकार GUID हैं। उन GUID में से एक पारंपरिक GUID है जो Linux स्वैप विभाजन को सौंपा गया है; और अगर systemd-gpt-auto-generator
उस GUID के साथ एक विभाजन मिलता है (जो कि सिस्टम डोको में दिए गए मानदंड को संतुष्ट करता है) यह इसके लिए एक .swap
इकाई बना देगा ; बिलकुल नहीं/etc/fstab
।
बेशक, इस प्रक्रिया के बहुत सारे दुष्प्रभाव हैं। उदाहरण के लिए, क्योंकि /etc/fstab
मेज पर कोई प्राथमिक कुंजी नहीं है, रिकॉर्ड में "कल्पना" और "फ़ाइल" (यानी "क्या" और "जहां") फ़ील्ड डुप्लिकेट हो सकते हैं। हालांकि, "फाइल" (यानी "जहां") क्षेत्र .mount
इकाइयों के लिए एक अद्वितीय कुंजी है , सिस्टम सिस्टेम के मूल नाम में एम्बेडेड है। कोई भी दो .mount
इकाइयाँ इसे साझा नहीं कर सकती हैं। के लिए .swap
इकाइयों "कल्पना" (यानी "क्या") क्षेत्र इकाइयों के लिए अद्वितीय कुंजी है। कोई भी दो .swap
इकाइयाँ साझा नहीं कर सकती हैं। तो सभी रिकॉर्ड /etc/fstab
मूल रूप से देशी तंत्र के लिए परिवर्तनीय नहीं हैं और काम करेंगे, खासकर अगर लोग दो अलग-अलग उद्देश्यों के लिए एक ही माउंट बिंदु की सूची जैसी चीजें करते हैं या एक ही स्वैप विभाजन को दो अलग-अलग तरीकों से सूचीबद्ध करते हैं।
इसी तरह, क्योंकि यह /etc/fstab
मूल तंत्र में अनुवादित है और systemd के मूल तंत्र में इकाइयों को सक्रिय करने के अन्य तरीके हैं , व्यवहार सूक्ष्म रूप से गैर-प्रणालीगत ऑपरेटिंग सिस्टम से भिन्न है। एक .mount
इकाई, डिफ़ॉल्ट रूप से, माउंट किए गए स्टोरेज डिवाइस की उपस्थिति के जवाब में, बूटस्ट्रैप के बाद भी स्वचालित रूप से सक्रियsystemd-udevd
हो जाएगी । या यह एक के रूप में सूचीबद्ध किया जा सकता है Wants=
या Requires=
कुछ की .service
या .socket
इकाई है, जिसका अर्थ है कि यह (फिर से) हो जाएगा सक्रिय जब वे कर रहे हैं। सम है RequiresMountsFor=
।
इंस्टॉलर प्रोग्राम और सिस्टमड तरीका
परंपरागत रूप से, ऑपरेटिंग सिस्टम इंस्टॉलर प्रोग्राम, और सिस्टम एडमिनिस्ट्रेटर बाद में सिस्टम को फिर से कॉन्फ़िगर करने के लिए, sw
प्रविष्टियों को लिखा है /etc/fstab
। और इस तरह देशी .mount
और .swap
इकाइयाँ स्वतः उत्पन्न होती हैं। स्थापित / कॉन्फ़िगरेशन उपयोगिता "जानता है" जहां स्वैप फ़ाइल रखी गई थी, क्योंकि इसके उपयोगकर्ता इंटरफ़ेस में सिस्टम प्रशासक ने किसी प्रकार का चुनाव किया, और /etc/fstab
मैच के लिए लिखता है । कभी-कभी वह पसंद मुझे स्थापना के भाग के रूप में एक स्वैप विभाजन बनाने के लिए होती है। ; कभी-कभी यह बस स्वैप विभाजन का उपयोग करता है जो आपको डिस्क पर पहले से ही मिला है। (इंस्टॉलर्स विभाजन के प्रकारों को देखते हुए भी)।
लेकिन सिस्टमड लोगों के पास ऑपरेटिंग सिस्टम का यह विचार है कि ऑटो खुद को काफी हद तक खाली /etc
पेड़, तथाकथित स्टेटलेस सिस्टम से कॉन्फ़िगर करता है , और यही है कि जनरेटर जैसे तंत्र जो ईएफआई विभाजन तालिका पढ़ते हैं, वे सभी के बारे में हैं। सिस्टमड लोगों की योजना में, कोई नहीं है /etc/fstab
, और वास्तव में कोई भी स्थायी कॉन्फ़िगरेशन डेटा /etc
बिल्कुल भी नहीं है, और यह सब सामान डिस्क पर विभाजन तालिका की सामग्री से , हर बूटस्ट्रैप और हर पर घटाया जाता है systemctl daemon-reload
। वे आजकल ऑपरेटिंग सिस्टम इंस्टॉलर प्रोग्राम को बढ़ावा नहीं देते हैं, जैसे कि एक नहीं लिखते हैं/etc/fstab
।
पारंपरिक योजना में, निश्चित रूप से आपके पास वास्तव में प्रत्येक ऑपरेटिंग सिस्टम का अपना निजी स्वैप विभाजन हो सकता है, न कि उन्हें एक दूसरे के स्वैप विभाजन को छूना होगा। और वास्तव में यदि आप एक स्वैप विभाजन के माध्यम से डिस्क के लिए हाइबरनेट का उपयोग कर रहे हैं और उम्मीद कर रहे हैं कि हाइबरनेट होने के दौरान किसी अन्य ऑपरेटिंग सिस्टम को मल्टी-बूट करने में सक्षम हो ( जो एक बहुत बुरा विचार है क्योंकि फाइलसिस्टम भ्रष्टाचार का इस तरह से सामना करना बहुत आसान है ) ज़रूरी।
सिस्टमड स्कीम में, भले ही ऑपरेटिंग सिस्टम अभी तक नहीं है क्योंकि सिस्टमड लोग इसकी परिकल्पना करते हैं और "स्टेटलेस" होते हैं, उक्त जनरेटर चलते हैं; और इस प्रकार अपेक्षित विभाजन के साथ सभी स्वैप विभाजन (ESP / रूट डिस्क पर) स्वचालित रूप से सभी systemd ऑपरेटिंग सिस्टम द्वारा नियोजित होते हैं। चूंकि वे सभी स्वचालित रूप से खोज किए गए स्वैप विभाजन साझा कर रहे हैं, किसी को वास्तव में स्थापित ऑपरेटिंग सिस्टम प्रति एक स्वैप विभाजन बनाने की आवश्यकता नहीं है।
आगे की पढाई