Terminal pogryzł człowieka: lsblk

Dziesiątki dysków, setki partycji – życie nie rozpieszcza typowego użytkownika który podjął się ambitnego zadania wykonania kopii zapasowej internetu. Pół biedy z zapamiętaniem gdzie i co się zapisało, ale jak ogarnąć punkty montowania przypisane partycjom, ich pojemność (partycji), czy wręcz użytego zarządcę I/O, informacje o typie dysku, modelu, itp. To często wyczerpujące zajęcie z dopasowywaniem partycji do miejsca ich zamontowania możemy przeprowadzać chałupniczym sposobem analizując /etc/fstab, ale możemy również poradzić się polecenia df -h – jednak ono wskaże nam tylko informacje o partycjach zamontowanych. A co z resztą? Skracając męki oczekiwania, bez zbędnego filozofowania – najwygodniej użyć niepozornego polecenia lsblk.

Wspomniane narzędzie możemy znaleźć w pakiecie util-linux w każdej niemal dystrybucji. Jak anonsuje manual – lsblk to polecenie listujące urządzenia blokowe. Ale jak listujące…

$ lsblk -h

Usage:
 lsblk [options] [<device> ...]

Options:
 -a, --all            print all devices
 -b, --bytes          print SIZE in bytes rather than in human readable format
 -d, --nodeps         don't print slaves or holders
 -D, --discard        print discard capabilities
 -e, --exclude <list> exclude devices by major number (default: RAM disks)
 -f, --fs             output info about filesystems
 -h, --help           usage information (this)
 -i, --ascii          use ascii characters only
 -m, --perms          output info about permissions
 -l, --list           use list format ouput
 -n, --noheadings     don't print headings
 -o, --output <list>  output columns
 -P, --pairs          use key="value" output format
 -r, --raw            use raw output format
 -t, --topology       output info about topology

Available columns:
       NAME  device name
      KNAME  internal kernel device name
    MAJ:MIN  major:minor device number
     FSTYPE  filesystem type
 MOUNTPOINT  where the device is mounted
      LABEL  filesystem LABEL
       UUID  filesystem UUID
         RO  read-only device
         RM  removable device
      MODEL  device identifier
       SIZE  size of the device
      STATE  state of the device
      OWNER  user name
      GROUP  group name
       MODE  device node permissions
  ALIGNMENT  alignment offset
     MIN-IO  minimum I/O size
     OPT-IO  optimal I/O size
    PHY-SEC  physical sector size
    LOG-SEC  logical sector size
       ROTA  rotational device
      SCHED  I/O scheduler name
    RQ-SIZE  request queue size
       TYPE  device type
   DISC-ALN  discard alignment offset
  DISC-GRAN  discard granularity
   DISC-MAX  discard max bytes
  DISC-ZERO  discard zeroes data

Ta z początku enigmatycznie wyglądająca lista parametrów napędza może i nieco strachu, ale lsblk poinformuje nas o czym trzeba bez podawania jakichkolwiek opcji:

$ lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 119,2G  0 disk 
├─sda1   8:1    0  39,1G  0 part 
├─sda2   8:2    0  39,1G  0 part /
└─sda3   8:3    0  41,1G  0 part 
sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0 146,5G  0 part /home
└─sdb2   8:18   0   785G  0 part /home/magazyn
sr0     11:0    1  1024M  0 rom 

Tu widzimy podstawową różnicę pomiędzy informacjami o systemie plików jakie generuje df -h, a lsblk które w ładnym porządku wyświetla wszystkie urządzenia blokowe, ich rozmiar, typ (czy dysk, czy partycja), oraz gdzie aktualnie dany zasób jest zamontowany w systemie. To oczywiście nie koniec.

Korzystając z powyższych parametrów będziemy w stanie wygenerować swoją własną tabelkę z właściwościami naszych dysków, wystarczy użyć gotowca lub opcji ‘-o’ i podać oddzielne przecinkiem kolumny, które nas interesują (niektóre będą wymagały praw roota, dlatego warto pamiętać o sudo):

$ sudo lsblk -o NAME,MODEL,UUID,FSTYPE,MOUNTPOINT
NAME   MODEL            UUID                                 FSTYPE MOUNTPOINT
sda    OCZ-VERTEX4                                                  
├─sda1                  988605c4-a184-4187-a854-4588ccda6e06 ext4   
├─sda2                  87805d99-dfc0-428a-9fd2-0d5c34327605 ext4   /
└─sda3                  69c56bec-ddea-4e03-988c-6c8e89578817 ext4   
sdb    WDC WD10EFRX-68P                                             
├─sdb1                  cff9d825-98b4-4fde-a5d1-2235dcbbbdb0 ext4   /home
└─sdb2                  dbb59055-54f5-467e-897c-2c6413ddd6c8 ext4   /home/magazyn

W ten oto sposób uzyskamy ciekawe informacje – łatwo, szybko i czytelnie. I żadna partycja nie umknie naszej uwadze.