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.