Cara mengetahui dengan mudah apakah perangkat blok (atau sebagian darinya) sudah terpasang


10

Saya ingin tahu apa cara termudah untuk menentukan (tanpa hak akses root) apakah perangkat blok (katakanlah sdb) atau bagian mana pun yang terpasang (dan bagian mana dari itu).

Memeriksa /proc/mountssdb tidak cukup karena sdbatau salah satu partisinya dapat digunakan oleh LVM. Anda dapat memeriksa /sys/block/sdb/sdb*/holders/tetapi Anda mendapatkan dm-xentri yang harus diselesaikan untuk /dev/mappernama untuk memeriksa /proc/mounts. Mungkin tetapi jika ada solusi yang lebih mudah ... (yang seharusnya tidak memerlukan hak akses root)


2
Saya ingin tahu, apakah Anda tidak hanya mencoba mencari tahu apakah perangkat sudah terpasang? * / pemegang dan * / * / pemegang cukup baik untuk memberitahu Anda itu dipasang jika perangkat tidak ada di tabel / proc / mounts. Mengapa Anda perlu mengatasinya, lebih jauh? yaitu cryptsetup menambahkannya ke pemegang, menunjukkan Anda tidak boleh main-main dengan drive .. bahkan jika / dev / mapper tidak me-mount, atau menyebabkan korupsi enkripsi. Hanya saja itu dipasang secara internal melalui driver. Juga jangan lupa untuk memeriksa / sys / block / sdb / holder juga, karena drive dapat "ditahan" tanpa partisi.
Rahly

Jawaban:


12

Ini pada dasarnya adalah masalah memeriksa seluruh kantong sudut kasus.

  • Sebuah drive dapat muncul di / proc / mounts
  • Drive dapat digunakan sebagai swap (use / proc / swaps)
  • Drive dapat menjadi bagian dari LVM pv aktif (gunakan pvdisplay)
  • Drive dapat menjadi bagian dari grup RAID dm-mapper (use / proc / mdstat)
  • Sebuah drive dapat langsung diakses oleh aplikasi (misalnya Oracle mendukung penulisan langsung ke drive atau partisi daripada sistem file) (gunakan fuser)
  • Drive dapat langsung diakses oleh mesin virtual (gunakan fuser)
  • Sebuah drive dapat direferensikan oleh perangkat loopback (misalnya: mount /dev/sda -o offset=1M /foo) (penggunaan losetup -a)

Ini hanya contoh yang saya berikan satu setengah menit untuk memikirkannya. Saya yakin ada selusin lainnya.

Contoh terakhir ini menurut saya adalah yang paling menarik dan sedikit orang yang tahu. Ini memungkinkan Anda untuk memasang sistem file tanpa menggunakan partisi. Cukup tentukan offset mulai dan Linux akan membuat perangkat loopback secara transparan. Contoh di atas menghasilkan yang berikut:

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

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

Kenapa kamu ingin melakukan itu? Biasanya ini melibatkan situasi di mana hal-hal yang sebelumnya salah.

Juga perlu diingat bahwa dengan fitur namespacing sekarang di jalur utama (lihat berhenti berbagi ), proses yang berbeda dapat memiliki pandangan yang berbeda tentang apa yang dipasang dan apa yang tidak. Di sini segalanya mulai mendapatkan sedikit pil merah.


1

Ada banyak cara untuk memasang perangkat, semuanya dapat digabungkan, jadi seperti sering, terserah Anda untuk mengetahuinya.

yaitu apa yang digunakan oleh lvm: pvdisplay

Jadi, Anda perlu menyertakan juga nfs, cifs, raid, loop, crypt, dan sebagainya. Titik awal yang baik selalu /proc/mounts, seperti yang telah Anda sebutkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.