Pengantar perintah LSBLK

Pengantar perintah LSBLK

LSBLK adalah utilitas yang sangat bagus yang diinstal secara default pada hampir semua distribusi Linux: kita dapat menggunakannya untuk mengambil sejumlah besar informasi tentang semua perangkat blok yang terpasang pada sistem. Dalam artikel ini kita akan melihat cara kerjanya dan cara menggunakannya.

Dalam tutorial ini Anda akan belajar:

  • Cara menggunakan utilitas LSBLK untuk mengambil informasi tentang perangkat blok
  • Apa arti kolom yang ditampilkan dalam output utilitas default
  • Cara menentukan kolom yang akan ditampilkan dan memformat output sebagai JSON atau sebagai daftar
  • Cara menampilkan informasi tentang perangkat tertentu.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi Independen
Perangkat lunak lsblk
Lainnya Tidak ada persyaratan lain yang diperlukan
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Penggunaan Dasar LSBLK

Dalam penggunaannya yang paling dasar, ketika dipanggil tanpa opsi atau argumen spesifik, utilitas LSBLK akan menghasilkan output seperti pohon termasuk semua perangkat blok yang terpasang pada sistem operasi. Inilah contohnya:

Nama Maj: Min RM Ukuran RO Jenis Mountpoint SDA 8: 0 0 232.9G 0 Disk ├─SDA1 8: 1 0 1G 0 Bagian /Boot └─SDA2 8: 2 0 231.9g 0 Bagian └─LUKS-5794A0B4-7082-4769-B86B-BD27A544361A 253: 0 0 231.9g 0 crypt ├─Fingolfin_vg-root_lv 253: 1 0 35g 0 lvm / ├─fingolfin_vg-swap_lv 253: 2 0 6g 0 lvm [swap] ├─Fingolfin_vg-home_lv 253: 3 0 15g 0 lvm / rumah buah 253: 4 0 170g 0 lvm /mnt /data sr0 11: 0 1 1024m 0 rom zram0 252: 0 0 2.8G 0 Disk [SWAP] 


Struktur seperti pohon sangat berguna untuk mengidentifikasi perangkat dan partisi mereka, ditambah bagaimana mereka disusun pada perangkat. Dalam output di atas, misalnya kita dapat melihat bahwa dua partisi di SDA perangkat: SDA1 Dan SDA2.

Seperti yang dapat kita amati, yang pertama adalah partisi "standar": kita dapat mengidentifikasi adalah karena kita dapat melihat nilai yang sesuai dalam JENIS kolom, yang dalam hal ini adalah bagian. Kami juga dapat mengamati bahwa partisi saat ini dipasang di /boot.

Yang terakhir, SDA2, juga merupakan partisi standar, tetapi karena kita dapat dengan mudah memahami dari grafik, ia memiliki beberapa perangkat "anak -anak" atau "budak". Yang pertama adalah a Luks wadah diidentifikasi oleh LUKS-5794A0B4-7082-4769-B86B-BD27A544361A (Ini adalah nama perangkat mapper). Menjadi sistem yang dipasang pada LVM pada pengaturan LUKS, wadah Luks itu sendiri ditandai sebagai volume fisik, dan berisi beberapa volume logis yang dipasang pada berbagai bagian sistem.

Di kolom pertama output kita dapat melihat informasi tentang perangkat NAMA disediakan, itu cukup mudah dimengerti. Harap perhatikan bahwa hanya nama perangkat yang ditampilkan secara default, dan bukan jalur lengkapnya: untuk ditampilkan, sebaliknya, kita harus menggunakan -P pilihan.

Kolom kedua dinamai MAJ: Min: Itu adalah angka yang digunakan oleh kernel untuk mengidentifikasi perangkat secara internal, angka pertama yang menentukan jenis perangkat (8 Misalnya, digunakan untuk disk SCSI).

Kolom ketiga yang ditampilkan di output LSBLK default adalah Rm: Dengan melihat kolom ini kita dapat melihat apakah perangkat dapat dilepas (nilainya 1), atau tidak. Dalam output di atas, hanya satu perangkat yang ditandai sebagai dilepas, sr0, yang
drive optik.

Ruang lingkup kolom keempat mudah diidentifikasi dengan namanya: UKURAN. Di dalamnya ukuran perangkat yang sesuai ditampilkan.

Kolom kelima adalah Ro: Kolom ini digunakan untuk menentukan apakah perangkat hanya baca atau tidak. Seperti Rm kolom, nilai -nilai dalam kolom digunakan sebagai booleans, jadi 1 berarti perangkat hanya baca.

Kolom keenam dari output adalah JENIS: Seperti yang telah kami sebutkan sebelumnya, kolom ini digunakan untuk mengidentifikasi perangkat atau jenis partisi. Misalnya, mengamati output perintah, kita dapat melihat bahwa ruang bawah tanah Nilai digunakan untuk mengidentifikasi wadah Luks sementara LVM digunakan untuk mengidentifikasi perangkat volume logis, dan disk digunakan untuk perangkat blok mentah seperti SDA.

Kolom ketujuh dan terakhir adalah Mountpoint: Kolom ini memberikan informasi tentang titik mount saat ini dari setiap perangkat partisi/blok.

Mengumpulkan informasi tentang perangkat tertentu

Seperti yang kita lihat di atas, jika kita memohon lsblk Perintah tanpa argumen atau opsi lain, kami mendapatkan informasi tentang perangkat yang saat ini dilampirkan ke sistem. Bagaimana jika kita ingin mendapatkan informasi tentang perangkat tertentu?

Yang harus kami lakukan adalah lulus perangkat yang ingin kami kumpulkan sebagai argumen dari perintah LSBLK. Misalnya, jika kita hanya ingin memeriksa SDA1 perangkat, kami akan menjalankan:

$ lsblk /dev /sda1 

Perhatikan bahwa kami memberikan jalur lengkap perangkat, dan bukan hanya namanya. Output yang dihasilkan dari perintah di atas, seperti yang diharapkan, adalah sebagai berikut:

Nama Maj: min rm ukuran ro mountpoint sda1 8: 1 0 1g 0 bagian /boot 

Menentukan kolom yang akan ditampilkan di output LSBLK

Kami sudah melihat kolom apa saja yang disertakan secara default dalam output LSBLK saat dipanggil tanpa opsi spesifik. Namun, itu hanya sebagian kecil dari yang tersedia. Untuk menentukan informasi yang ingin kami sertakan dalam output, kami harus menggunakan -Hai opsi (pendek untuk --keluaran) dan berikan daftar kolom yang dipisahkan secara koma yang ingin kami sertakan. Misalnya, agar output hanya memasukkan informasi tentang nama perangkat dan jenis sistem file, kami dapat menjalankan:

$ lsblk -o nama, fstype 


Perintah di atas akan mengembalikan output berikut:

NAME FSTYPE sda ├─sda1 ext2 └─sda2 crypto_LUKS └─luks-5794a0b4-7082-4769-b86b-bd27a544361a LVM2_member ├─fingolfin_vg-root_lv ext4 ├─fingolfin_vg-swap_lv swap ├─fingolfin_vg-home_lv ext4 └─fingolfin_vg-data_lv ext4 sr0 zram0 

Untuk daftar lengkap kolom yang tersedia dan penjelasan tentang informasi yang mereka berikan, kami dapat memohon utilitas LSBLK dengan --membantu pilihan:

Kolom output yang tersedia: Nama Perangkat Nama Perangkat Kname Internal Kernel Nama Perangkat Nama Jalur Jalur ke Node Perangkat Maj: Min Mayor: Nomor Perangkat Kecil FSAVAIL Ukuran Sistem File Perangkat ini dipasang label filesystem label uuid filesystem uuid ptuuid tabel partisi tabel pengidentifikasi (biasanya uuid) pttype tabel tabel jenis partisi partisi kode atau uuid parttypeName jenis name bacaan dibaca-label label partisi partisi uuid partisi uuid partisi bendera ra baca-adead-aahead label PartuUid partisi uuid partisi uuid partisi partisi ra baca-aahaad-aahead label PartuUid partisi uuid partisi uuid partisi partisi ra baca -HAN hanya perangkat RM RM yang dapat dilepas perangkat hotplug yang dapat dilepas atau perangkat hotplug (USB, PCMCIA,...) Model Perangkat Pengidentifikasi Serial Serial Serial Nomor Seri Ukuran Ukuran Negara Perangkat Status Perangkat Pemilik Perangkat Nama Pengguna Grup Nama Grup Mode Node Perangkat Izin Penyelarasan Alignment Offset Min-IO Minimum I/O Ukuran Opt-OO Optimal I/O Ukuran PHY- Ukuran Sektor Fisik Log-SEC UKURAN SEKTOR LOGICAL ROTA DEPLE PERANGKAT ROTASI Jadwal Penjadwal Nama Penjadwal RQ U-size Permintaan Ukuran Antrian Jenis Perangkat Jenis perangkat disc-al Discard Alignment Offset Disc-Gran Discard Granularity Disc-Max Discard Bytes Disc-Zers Buang Zero data wsame tulis byte maks yang sama wwn pengidentifikasi penyimpanan unik rand menambahkan keacakan pkname internal name perangkat induk internal host host: saluran: target: lun untuk perangkat transportasi perangkat transportasi perangkat transportasi perangkat vendor zoned dexlicated rantai Dax Dax perangkat berkemampuan DAX 

Beberapa opsi juga dapat digunakan, yang memahami set kolom yang telah ditentukan sebelumnya: memohon lsblk dengan -F (atau --FS) Opsi, misalnya, seperti menyebutnya dengan menentukan Ame,FSTYPE,LABEL,UUID,Fsavail,Fsuse%,Mountpoint
kolom.

Memodifikasi format output

Dalam contoh sebelumnya kami melihat bagaimana output default yang dihasilkan oleh doa perintah LSBLK, adalah representasi seperti pohon dari perangkat blok yang melekat pada sistem, dan perangkat anak atau budak mereka. Ada, namun banyak opsi yang dapat kita gunakan untuk memodifikasi bagaimana output ditampilkan.

Pertama -tama, kita dapat menggunakan -D opsi (pendek untuk --nodeps) untuk hanya menampilkan perangkat induk. Berikut adalah hasil dari memohon LSBLK dengan opsi tersebut:

Nama Maj: Min RM Ukuran RO Jenis Mountpoint SDA 8: 0 0 232.9g 0 Disk SR0 11: 0 1 1024M 0 ROM ZRAM0 252: 0 0 2.8G 0 Disk [SWAP] 

Opsi lain yang sangat menarik, adalah -J, atau --json: Dengan itu kita dapat memperoleh informasi tentang perangkat blok dan hubungannya, di json format:

$ lsblk -j "blockdevices": ["name": "sda", "may: min": "8: 0", "rm": false, "size": "232.9g "," ro ": false," type ":" disk "," mountpoint ": null," children ": [" name ":" sda1 "," may: min ":" 8: 1 "," rm ": false," size ":" 1g "," ro ": false," type ":" part "," mountpoint ":"/boot ", " name ":" sda2 "," MAJ: MAJ: min ":" 8: 2 "," rm ": false," size ":" 231.9g "," ro ": false," type ":" part "," mountpoint ": null," children ": [" name ":" LUKS-5794A0B4-7082-4769-B86B-BD27A544361A "," MAJ: min ":" 253: 0 "," rm ": false," size ":" 231.9g "," ro ": false," type ":" crypt "," mountpoint ": null," children ": [" name ":" fingolfin_vg-root_lv "," mayor: min ":" 253: 1 " , "rm": false, "size": "35g", "ro": false, "type": "lvm", "mountpoint": "/", "name": "fingolfin_vg-swap_lv", " MAJ: min ":" 253: 2 "," rm ": false," size ":" 6g "," ro ": false," type ":" lvm "," mountpoint ":" [swap] ", "name": "fingolfin_vg-home_lv", "may: min": "253: 3", "rm": false, "size": "15g", "ro": false, "type": "lvm" , "mountpoint": "/home", "name": "fingolfin_vg-data_lv", "mayor: min": "253: 4", "rm": false, "size": "170g", "ro ": false," type ":" lvm "," mountpoint ":"/mnt/data "]]], " name ":" sr0 "," may: min ":" 11: 0 " , "rm": true, "size": "1024m", "ro": false, "type": "rom", "mountpoint": null, "name": "zram0", "may: min" : "252: 0", "rm": false, "size": "2.8g "," ro ": false," type ":" disk "," mountpoint ":" [swap] "] 


Jenis output ini sangat berguna, di antara yang lain, karena dapat dengan mudah diuraikan dengan bahasa pemrograman yang lebih lengkap seperti Python.

Cara lain untuk mengubah output yang ditampilkan adalah dengan menggunakan -l atau --daftar opsi, yang menghasilkan output dalam bentuk daftar. Namun, ketika output ini dipilih, hubungan antar perangkat dihilangkan, karena sebuah daftar, dengan itu
Alamnya "datar":

$ lsblk -l Nama Maj: min rm ukuran ro ro mountpoint sda 8: 0 0 232.9g 0 Disk SDA1 8: 1 0 1G 0 Bagian /Boot SDA2 8: 2 0 231.9g 0 Bagian SR0 11: 0 1 1024M 0 ROM ZRAM0 252: 0 0 2.8G 0 Disk [SWAP] LUKS-5794A0B4-7082-4769-B86B-BD27A544361A 253: 0 0 231.9g 0 crypt fingolfin_vg-root_lv 253: 1 0 35g 0 lvm / fingolfin_vg-swap_lv 253: 2 0 6g 0 lvm [swap] fingolfin_vg-home_lv 253: 3 0 15g 0 lvm / home fingolfin_vg-data_lv 253: 3 0 15g 0 lvm / home fingolfin_vg-data_v.110 Mnt/data 

Untuk mengatur output dalam "pasangan", sebagai gantinya, kita dapat menggunakan -P atau --pasangan pilihan:

$ lsblk --spass name = "sda" may: min = "8: 0" rm = "0" size = "232.9g "ro =" 0 "type =" disk "name =" sda2 "MAJ: min =" 8: 2 "rm =" 0 "size =" 231.9g "ro =" 0 "type =" part "name =" LUKS-5794A0B4-7082-4769-B86B-BD27A544361A "MAJ: Min =" 253: 0 "RM =" 0 "Size =" 231.9g "ro =" 0 "type =" crypt "name =" fingolfin_vg-root_lv "MAJ: min =" 253: 1 "rm =" 0 "size =" 35g "ro =" 0 "type =" lvm "mountpoint = "/" Name = "fingolfin_vg-data_lv" maj: min = "253: 4" rm = "0" size = "170g" ro = "0" type = "lvm" mountpoint = "/mnt/data" name = " fingolfin_vg-swap_lv "may: min =" 253: 2 "rm =" 0 "size =" 6g "ro =" 0 "type =" lvm "mountpoint =" [swap] "name =" fingolfin_vg-home_lv "MAJ: Min = "253: 3" rm = "0" size = "15g" ro = "0" type = "lvm" mountpoint = "/home" name = "sda1" may: min = "8: 1" rm = "0 "Size =" 1g "ro =" 0 "type =" bagian "mountpoint ="/boot "name =" sr0 "MAJ: min =" 11: 0 "rm =" 1 "size =" 1024m "ro =" 0 "Type =" rom "name =" ZRAM0 "MAJ: min =" 252: 0 "rm =" 0 "size =" 2.8g "ro =" 0 "type =" disk "mountpoint =" [swap] " 

Opsi lain yang sangat penting yang berguna untuk digunakan terutama dalam skrip, adalah -N, Yang merupakan kependekan dari --tidak ada jepitan. Opsi ini memodifikasi output sehingga baris header, dan nama kolom dihilangkan. Kasing penggunaan konkret akan menjadi berikut. Misalkan dalam skrip kita ingin mendapatkan jenis sistem file dari partisi tertentu (mari kita anggap SDA1), dan "menyimpannya" dalam variabel, kita bisa menulis:

$ fsys = "$ (lsblk --noadings -o fstype /dev /sda1)" 

Kesimpulan

Dalam tutorial ini kami belajar mengetahui perintah LSBLK dan bagaimana hal itu dapat digunakan untuk mengambil informasi tentang perangkat blok yang melekat pada sistem dan hubungan mereka. Kami mempelajari arti kolom default yang ditampilkan ketika utilitas dipanggil tanpa opsi atau argumen apa pun, kami melihat cara mendapatkan informasi tentang perangkat tertentu, dan berbagai opsi yang dapat kami gunakan

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Bagaimana bekerja dengan WooCommerce Rest API dengan Python
  • Menguasai loop skrip bash
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 3
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Sistem Linux Hung? Cara melarikan diri ke baris perintah dan…
  • Cara memanipulasi tabel partisi GPT dengan gdisk dan sgdisk…
  • Loop bersarang dalam skrip bash