Bir blok cihazın (veya bir kısmının) bir şekilde monte edilip edilmediğini nasıl kolayca öğrenebilirim?


11

Bir blok cihazının (diyelim sdb) veya herhangi bir parçasının (ve bunun bir kısmının) monte edilip edilmediğini (kök ayrıcalığı olmadan) belirlemenin en kolay yolunun ne olduğunu bilmek istiyorum .

/proc/mountsSdb kontrolü yeterli değildir çünkü sdbbölümlerinden biri LVM tarafından kullanılabilir. Kontrol edebilirsiniz, /sys/block/sdb/sdb*/holders/ancak kontrol etmek dm-xiçin /dev/mapperisimlere çözülmesi gereken girişler alırsınız /proc/mounts. Mümkün ama daha kolay bir çözüm varsa ... (kök ayrıcalığı gerektirmemelidir)


2
Merak ediyorum, sadece cihazın takılı olup olmadığını bulmaya çalışmıyordun? * / holders ve * / * / holders, aygıt / proc / mounts tablosunda yoksa size takılı olduğunu söyleyecek kadar iyidir. Neden daha fazla çözmeniz gerekiyor? yani cryptsetup, sahiplerine ekler ve sürücüyle uğraşmamanız gerektiğini gösterir. / dev / mapper bağlanmamış olsa veya şifreleme bozulmasına neden olsa bile. Sadece bir sürücü aracılığıyla dahili olarak monte ediliyor. Ayrıca / sys / block / sdb / holders'ı da kontrol etmeyi unutmayın, çünkü sürücü bölümler olmadan "tutulabilir".
Rahly

Yanıtlar:


13

Bu aslında bir sürü köşe vakasını kontrol etme meselesidir.

  • Bir sürücü / proc / mount'larda görünebilir
  • Bir sürücü takas olarak kullanılabilir (/ proc / takas kullanın)
  • Bir sürücü aktif bir LVM pv'nin parçası olabilir (pvdisplay kullanın)
  • Sürücü, dm-mapper RAID grubunun bir parçası olabilir (/ proc / mdstat kullanın)
  • Bir sürücüye doğrudan bir uygulamadan erişilebilir (örneğin Oracle, dosya sistemi yerine doğrudan bir sürücüye veya bölüme yazmayı destekler) (kaynaştırıcı kullan)
  • Bir sürücüye doğrudan sanal bir makine tarafından erişilebilir (kaynaştırıcı kullanın)
  • Bir sürücü bir döngü cihazı tarafından başvurulan edilebilir (örn: mount /dev/sda -o offset=1M /foo) (kullanım losetup'ın -a)

Bunlar sadece düşünmek için bir buçuk dakika verilen örnekler. Eminim bir düzine kişi daha var.

Sanırım bu son örnek en ilginç ve çok az kişi bunu biliyor. Bölümleri kullanmadan bir dosya sistemi bağlamanızı sağlar. Sadece başlangıç ​​ofsetini belirtin ve Linux şeffaf bir geri döngü cihazı oluşturacaktır. Yukarıdaki örnek aşağıdakileri verir:

# cat /proc/mounts
...
/dev/loop0 /foo ext4 relatime,data=ordered 0 0

# losetup -a
/dev/loop0 [0005]:2048 (/dev/sda), offset 1048576

Neden bunu yapasın? Tipik olarak, şeylerin daha önce korkunç bir şekilde yanlış gittiği durumları içerir.

Ayrıca ana hat (bkz artık ad alanlarının özelliği ile göz önünde bulundurunuz paylaşımı kaldırmak ), farklı süreçler monte olanlar hakkında farklı görüşlere sahip ve ne değildir olabilir. Burada işler biraz kırmızı hap almaya başlar.


1

Cihazları monte etmenin çok daha fazla yolu var, hepsi birleştirilebilir, bu yüzden öğrenmek genellikle size kalmış.

yani lvm tarafından kullanılanlar: pvdisplay

Yani nfs, cifs, raid, loop, crypt, vb. Daha /proc/mountsönce de belirttiğin gibi , her zaman iyi bir başlangıç ​​noktasıdır .

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.