Linux'ta / etc / mtab nedir?


Yanıtlar:


51
% file / etc / mtab
/ etc / mtab: ../proc/self/mounts için sembolik bağlantı
% file / proc / mounts
/ proc / mounts: Kendine / mount'a sembolik bağ
%

/etc/mtabbir uyumluluk mekanizmasıdır. Yıllar önce, Unix'in mevcut montaj bilgilerini okumak için bir sistem çağrısı yoktu. Bunun yerine, dosya sistemlerini monte eden programların işbirliği içinde ve gönüllü /etc/mtabolarak nereye monte edildiğine dair bir tablo tutması bekleniyordu .

Açık nedenlerden dolayı, bu ideal bir mekanizma değildi.

Linux "procfs" nosyonunu kazanmıştır ve kazandığı şeylerden biri, mountssözde düzenli bir dosya biçiminde bu tablonun çekirdek halindeki bir versiyonudur . Montaj bilgisini çekirdeğin dışında okumak için kullanılan "sistem çağrısı", bu dosyaya karşı açık bir okuma-kapat dizisi haline geldi, ardından sonucu insan tarafından okunabilirden makineyle okunabilir forma (sizin gibi ince yakalamaları olan bir şey) sadece bir iki hafta önce gelen hata raporlarından görebilirsiniz).

/etc/mtabBu nedenle, popüler olarak /proc/mounts, bu isimde bağlanmış programların bu dosyadan bir montaj tablosu okumaya devam etmesini sağlayan, böylece bağlı ve takılı olmayan dosya sistemlerini artık güncel tutmak için açık bir şekilde kendileri yapmak zorunda olmadıkları bir sembolik bağlantı haline gelmiştir . (Bazıları hala /etc/mtabyazılabilir bir normal dosya olduğu ortaya çıkarsa yine de olacaktır . Ve mountsçekirdekte olmayan şeylerden yoksun olan normalleştirilmiş bilginin tam olarak ihtiyaç duyulmadığı bir kaç köşe durumu vardır ; genel problemler /etc/mtab.)

Her bir işlem bugünlerde monte edilmiş olana ilişkin kendi bireysel görüşüne sahip olabilir ve bunun sonucunda mountsprocfs'teki her bir işlem için ayrı dosyalar vardır, her bir işlemin kendi tablosuna selfsembolik bağlantı yoluyla erişilebilmesi self/mountsve /proc/mountsaynı zamanda bir uyumluluk mekanizması. (İlginç bir şekilde, ne sıradan mountsne de formatı mountsmevcut Linux doco'sunda belgelenmiştir, bununla birlikte benzer mountinfosözde normal dosya.)

SunOS / Solaris de benzer bir mekanizmaya sahiptir. /etc/mnttabDosya aslında bir tek dosya dosya sistemi olduğunu ve birlikte, o dosyaya bir açık dosya tanımlayıcısı aracılığıyla, tablo okuma ek olarak read()sistem çağrısı, bir ile nokta değişiklikleri monte izleyebilirsiniz poll()ile çeşitli bilgi başka parçalar elde edilmektedir ioctl().

HP-UX'te /etc/mnttabde aynı şekilde dosyanın adı, ancak sürüm 11'den itibaren, içerikleri sistem yardımcı programları tarafından ortaklaşa korunan düzenli bir dosya idi.

AIX, programların ayrıştırması gereken insan tarafından okunabilen bir metin tablosunu dışa aktarmaz ve buna eşdeğer bir dosya yoktur. Benzer şekilde, BSD'ler, getfsstat()FreeBSD ve OpenBSD'de tam teşekküllü sistem çağrılarına sahiptir; bunlar, montaj tablosunu çekirdekten, makinede okunabilir bir formda, insan tarafından okunabilir bir ara formda birleştirmeden almak için program çekirdeğini elde etme programlarına sahiptir.

daha fazla okuma


Buradaki soruya yorumum ile mtab(5)eski günlerden itibaren: man.cat-v.org/unix_8th/5/mtab .
Weijun Zhou

2
sadece /proc/mountsdeğil /proc/self/mounts, şimdi kendisi bir uyumluluk mekanizmasıdır; sadece içinde mevcut olan bilginin bir alt kümesini gösterir /proc/self/mountinfo. Formatı aynı olarak /proc/self/mountsbelgelenmiştirproc(5)fstab(5)
mosvy

kuşkusuz, fstab (5) yalnızca boşlukların, sekizli
çıkışların yerini aldığını

Sahte dosyalar ve normal dosyalar biliyorum, ancak sahte bir dosya nedir?
gerrit

@gerrit 0 boyutunda, ancak yine de veri içeren normal bir dosya ;-)
mosvy

12

Göre man mount:

Programlar mount ve umount, geleneksel olarak / etc / mtab dosyasındaki güncel olarak monte edilmiş dosya sistemlerinin bir listesini tutarlar. Bu gerçek mtab dosyası hala desteklenmektedir, ancak mevcut Linux sistemlerinde bunun yerine / proc / mount'lara bir bağlantı oluşturmak daha iyidir, çünkü kullanıcı alanında tutulan düzenli bir mtab dosyası ad alanları, kapsayıcılar ve diğer gelişmiş Linux özellikleriyle güvenilir bir şekilde çalışamaz.

Kayıt yapmadan monte ederken /etc/mtab:

-n, --no-mtab

/ Etc / mtab yazmadan monte edin. Bu, örneğin / etc salt okunur bir dosya sisteminde olduğunda gereklidir.

Manuel sayfada daha birçok nüans verilmiştir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.