diyelim Fedora ve Ubuntu?
... ikisi de günümüzde işletim sistemidir.
Systemd işletim sistemlerinde ne olur
doğal mekanizma
Systemd çeşitli birimler kullanır. .mountbirim dosyaları birimlere bağlanmasını bildirir. .swapbirim dosyaları, çekirdeğe takas bölümleri hakkında bilgi vermesini söyler. ( .servicebirim dosyaları, hizmetlerin nasıl çalıştırılacağını anlatır. Bunları yürürlüğe koymak için, systemd kendisi ilgili sistem çağrılarını yapan alt süreçleri kaldırır.
Böyle bir systemd işletim sisteminde systemctl(with --all) komutunu kullanırsanız , yüklü .swapbirimler hakkında bilgi verir . Örneğin:
dev-disk-by \ x2dpartuuid-40549710 \ x2d05.swap yüklü etkin etkin / dev / disk / by-partuuid / 40549710-05
dev-disk-by \ x2duuid-1bb589e8 \ x2d929f \ x2d4041 \ x2d81f4 \ x2dff2b339b4e2a.swap yüklü etkin etkin / dev / disk / tarafından-uuid / 1bb589e8-929f-4041-81f4-ff2b339b49
dev-sda5.swap yüklü etkin etkin / dev / sda5
Ayrıca .mountbirimler hakkında da bilgi verecektir .
Bir sistem yöneticisi aslında böyle yazabilirsiniz .swapXe yazabilir, tıpkı elle birim dosyaları .service, .socketve elle diğer birim dosyaları. systemd kendisi sadece dosya sistemindeki birim dosyalarını arar. Bunlar kendi doğal mekanizmasıdır.
Birisi size bu birim dosyalarında ne olduğunu ve dosya sisteminde nerede bulunduğunu göstermek için systemd alabilir:
$ systemctl cat dev-disk-tarafından \\ x2duuid-1bb589e8 \\ x2d929f \\ x2d4041 \\ x2d81f4 \\ x2dff2b339b4e2a.swap
# /run/systemd/generator/dev-disk-by\x2duuid-1bb589e8\x2d929f\x2d4041\x2d81f4\x2dff2b339b4e2a.swap
# Systemd-fstab-generator tarafından otomatik olarak oluşturulur
[Birim]
KaynakYolu = / etc / fstab
Dokümantasyon = erkek: fstab (5) erkek: systemd-fstab-jeneratör (8)
[Değişim]
by-Uuid / 1bb589e8-929f-4041-81f4-ff2b339b4e2a Ne = / dev / disk /
Seçenekler = sw
$
otomatik oluşturulan birim dosyaları
Bunları elle yazabilirsiniz. Ancak genellikle bu tür .mountve .swapbirim dosyaları, jeneratörler olarak bilinen programlar tarafından otomatik olarak oluşturulur . Bu tür iki jeneratör systemd-fstab-generatorve systemd-gpt-auto-generator. Her ikisi de önyükleme işleminin başlarında ve bir systemctl daemon-reloadkomuta yanıt olarak çalışır ve (yukarıda görebileceğiniz gibi), birim dosyalarının bir dolu yükünü belgelenmemiş bir alt dizine oluştururlar /run/systemd/. systemd'nin kendisi sadece oluşturulan birim dosyalarını kullanır .
Eski jeneratör /etc/fstab, bu dosya biçimindeki birkaç systemd uzantısını tanıyarak okur . Bir cevap açıklamasında işaret ettiğim gibi, geleneksel olarak takas bölümleri bağlama türüne sahiptir swve diğer işletim sistemlerinin bu tablodaki takas kayıtlarını tanımasını bu şekilde bulacaktır. Ancak Linux yazılımları VFS türünü aramak yerine VFS türünü tanımak için alternatif bir yol swapizledi. systemd-fstab-generatorburada bir istisna değildir /etc/fstabve yerel mekanizmalara dönüştürürken bu şekilde yorumlanır .
İkinci jeneratör, çeşitli tanınmış bölüm tipi GUID'leri olan EFI bölüm tablosu girdilerini arayan, EFI Sistem Bölümü'nü tutan aynı diskte bulunan EFI bölüm tablosunu işler . Bu GUID'lerden biri Linux takas bölümlerine atanan geleneksel GUID'dir; ve systemd-gpt-auto-generatorbu GUID ile (systemd doco'da verilen kriterleri karşılayan) bir bölüm bulursa, bunun için bir .swapbirim oluşturur; hiç /etc/fstabdahil değil .
Tabii ki, bu sürecin birçok yan etkisi vardır. Örneğin /etc/fstab, tablonun birincil anahtarı olmadığından kayıtların yinelenen "spec" ve "file" (yani "ne" ve "nerede") alanları olabilir. Ancak, yerel systemd mekanizmasında, "dosya" (yani "nerede") alanı, .mountbirim adlarına gömülü birimler için benzersiz bir anahtardır . .mountBunu iki birim paylaşamaz. İçin .swapbirimler "Spec" (yani "ne") alanı birimleri için benzersiz bir anahtardır. .swapBunu iki birim paylaşamaz. Bu nedenle, tüm kayıtların /etc/fstabyerel mekanizmalara dönüştürülmesi gerekmez ve özellikle insanlar iki farklı amaç için aynı bağlama noktasını listelemek veya aynı takas bölümünü iki farklı şekilde listelemek gibi çalışırsa çalışacaktır.
Benzer şekilde, /etc/fstabyerel mekanizmaya çevrildiği ve systemd'nin yerel mekanizmasının birimleri etkinleştirmenin başka yolları olduğu için, davranış sistemsiz olmayan işletim sistemlerinden farklıdır. Bir .mountbirim, varsayılan olaraksystemd-udevd , takılı depolama aygıtının görünümüne yanıt olarak önyükleme işleminden sonra bile otomatik olarak etkinleştirilir . Veya bir Wants=veya Requires=bazı .serviceveya .socketbirim olarak listelenebilir , yani bulunduğunda (yeniden) etkinleştirilir. Hatta var RequiresMountsFor=.
yükleyici programları ve sistem yolu
Geleneksel olarak, işletim sistemi yükleyici programları ve sistemd yöneticisi daha sonra sistemi yeniden yapılandırmak için yazılı swgirişlere sahiptir /etc/fstab. Böylece yerli .mountve .swapbirimler otomatik olarak oluşturulur. Yükleme / yapılandırma yardımcı programı takas dosyasının nereye yerleştirildiğini "bilir", çünkü kullanıcı yöneticisi sistem yöneticisi bir tür seçim yaptı ve /etc/fstabeşleşmesi için bir yazar . Bazen bu seçim, kurulumun bir parçası olarak bana bir takas bölümü yapmanıza ihtiyacım var. ; bazen sadece diskte bulduğunuz takas bölümünü kullanın. (yükleyiciler bölüm türlerine de bakar).
Ancak sistem kullanıcıları, kendilerini büyük ölçüde boş bir /etcağaçtan, vatansız sistem denilen otomatik olarak yapılandıran ve EFI bölümleme tablosunu okuyan jeneratör gibi mekanizmaların hepsi budur. Sistemd insanların planında, hiçbir şey yoktur /etc/fstabve aslında hiçbir kalıcı yapılandırma verisi yoktur /etcve tüm bunlar, diskteki bölüm tablosunun , her önyüklemede ve her birinden çıkarılırsystemctl daemon-reload . Günümüzde işletim sistemi yükleyici programlarını, bir/etc/fstab .
Geleneksel şemada, elbette her işletim sisteminin kendi özel takas bölümüne sahip olmasını ve birbirlerinin takas bölümlerine dokunmalarını sağlayabilirsiniz. Ve eğer bir takas bölümü aracılığıyla diske hazırda kullanan ve hibernated iken (başka bir işletim sistemine çoklu boot edebilmek için bekliyoruz aslında eğer bir olan çok kötü bir fikir çünkü o neden dosya sistemi yolsuzluk bu şekilde çok kolay olacaktır) gerekli.
Systemd şemasında, işletim sistemi henüz systemd insanlar tarafından öngörülen ve "vatansız" olarak olmasa bile, yukarıda belirtilen jeneratörler çalışır; ve böylece gerekli bölüm tipine sahip tüm takas bölümleri (ESP / kök disk üzerinde) tüm sistemd işletim sistemleri tarafından otomatik olarak kullanılır. Otomatik olarak keşfedilen tüm takas bölümlerini paylaşacaklarından, yüklü işletim sistemi başına bir takas bölümü oluşturmaya gerek yoktur.
daha fazla okuma