Neden / home, / usr, / var, vb. Dizinleri aynı inode numarasına (2) sahip?


31

Kök dizinim altında, aynı inode numarasına sahip bazı dizinler olduğunu görüyorum:

$ ls -aid */ .*/

2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/

Yalnızca dizinlerin adlarının ana dizinde tutulduğunu ve verilerinin dizinlerin kendilerinde saklandığını biliyorum.

Kafam karıştı.

Bu, / home / user1 yolunu izlerken düşündüğüm şey.

  • İlk önce dizin listelerini içeren kök dizin olan inode 2'ye giriyorum.
  • Sonra inode 2 ile eşleştirilmiş ev adını buldum.
  • Yani inode 2'yi bulmak için diske geri döneceğim?
  • Ve buradaki user1 ismini aldım?

Yanıtlar:


39

Farklı cihazlardalar.

Çıktısına bakarsak stat, dosyanın açık olduğu aygıtı da görebiliriz:

# stat / | grep Inode
Device: 801h/2049d      Inode: 2           Links: 24
# stat /opt | grep Inode
Device: 803h/2051d      Inode: 2           Links: 5

Yani bu ikisi ayrı cihazlarda / dosya sistemlerinde. Inode numaraları sadece bir dosya sistemi içinde benzersizdir, bu yüzden burada olağandışı bir şey yoktur. Ext2 / 3 / 4'te inode 2 aynı zamanda daima kök dizindir , bu yüzden onların kendi dosya sistemlerinin kökleri olduğunu biliyoruz.

Cihaz numarası + inode kombinasyonunun tüm sistemde benzersiz olması muhtemeldir. (Geleneksel anlamda düğümleri olmayan dosya sistemleri var, ama yine de kendi yerlerinde bir çeşit benzersiz tanımlayıcı taklit etmek zorunda kaldıklarını düşünüyorum.)

Buradaki cihaz numaraları, cihaz düğümlerinde gösterilenlerle aynı gibi görünmektedir, bu nedenle açık /dev/sda1olduğu dosya sistemini tutar /:

# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Sep 21 10:45 /dev/sda1

Teşekkürler, şimdi stat alıyorum, benim için faydalı, kullanmayı öğreneceğim.
youxiao

1
Kayıt için, tüm dosya sistemlerinde, inode'ları dinamik olarak tahsis ettikleri zaman bile, bazı eşdeğerleri vardır. Örneğin, BTRFS'de (ext2 / 3 / 4'ün statik inode tablolarının aksine dinamik inode tahsisi yapan), bunun gibi kullanılan belirli inode değeri 256'dır (çünkü daha düşük her şey meta veri ağaçlarındaki özel girişler için ayrılmıştır) .
Austin Hemmelgarn

1
@ AustinHemmelgarn, FAT veya ISO9660 gibi bazı dosya sistemlerinde kelimenin anlamlı bir anlamı yoktur. Dosya sistemi sürücüsü, yaptıkları sistemin kalan kısmına bakmasını sağlamak için bazı işlemleri yapar.
Mark

@Mark: Onu tanımlayan standarda göre sadece "kelimenin anlam anlamı", "dosya seri numarası [aygıt içinde benzersiz]" dır. İnode'ları belirli bir disk üstü veri yapısı olarak düşünmek konusunda ısrar etmek, tty'leri mekanik teletypes kadar düşünmek kadar geriye doğru.
R. ..

1
@R .., sanırım FAT dosya sisteminin inode'ları var, ancak FAT dosya sistemindeki belirli bir dosya için "dosya seri numarası", bağlar arasında ve hatta tek bir bağda zaman içinde sabit değil: bellek basıncı durumunda sentezlenmiş bir inode yapısının önbellekten çıkarılmasına neden olur, bir şey bir daha inode verilerini istediğinde, dosya yeni bir numara alır.
Mark

24

Herhangi bir dosyanın inode numarası, dosya sistemine özgüdür, ancak belirli bir ana bilgisayara monte edilen tüm dosya sistemleri için benzersiz değildir. Birden fazla dosya sisteminiz varsa, dosya sistemleri arasında yinelenen inode numaraları göreceksiniz, bu normaldir.

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.