Naredba blockdev
Linux se razvija i stalno dobija nove naredbe, koje mi, tradicionalni uniksaši, tek trebamo otkriti i prihvatiti. Tako sam našao naredbu blockdev, ali se sve do nedavno nisam potrudio da je upoznam. Nije bilo vremena, nije mi trebalo... No upoznavanje s tom naredbom prilika je da se osvježi zaboravljeno znanje i da se nauči nešto novo.
Kratko podsjećanje: block device je uređaj s kojim ne komuniciramo bajt po bajt (kao s character deviceom), već podatke šaljemo/primamo u "blokovima" različite veličine.
$ blockdev --help
Usage:
blockdev -V
blockdev --report [devices]
blockdev [-v|-q] commands devices
Available commands:
--getsz get size in 512-byte sectors
--setro set read-only
--setrw set read-write
--getro get read-only
--getdiscardzeroes get discard zeroes support status
--getss get logical block (sector) size
--getpbsz get physical block (sector) size
--getiomin get minimum I/O size
--getioopt get optimal I/O size
--getalignoff get alignment offset in bytes
--getmaxsect get max sectors per request
--getbsz get blocksize
--setbsz <bytes> set blocksize on file descriptor opening the block device
--getsize get 32-bit sector count (deprecated, use --getsz)
--getsize64 get size in bytes
--setra <sectors> set readahead
--getra get readahead
--setfra <sectors> set filesystem readahead
--getfra get filesystem readahead
--flushbufs flush buffers
--rereadpt reread partition table
Uz nekoliko iznimki, parametre (kako smo ni naučili govoriti u prošlom mileniju), odnosno "opcije" (kako kažu mlađi kolege), možemo podijeliti u dvije grupe:
--get<nešto>
--set<nešto>
Get parametri čitaju kako su trenutno podešene postavke, dok set mijenja te vrijednosti. U ovom članku ćemo se baviti "get" parametrima, ali komplikacije počinju kad se prihvatimo "set" dijela - komplikacije ćemo ostaviti za drugu priliku.
Odmah nas je privukla "opcija" --report.
$ sudo blockdev --report /dev/sda
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 160041885696 /dev/sda
Odjednom smo dobili mnogo informacija o disku:
RO pokazuje da li je uređaj samo za čitanje, ili, kao u ovom slučaju, i za pisanje
RA je kratica za "readahed", koliko se podataka povuče s diska u jednom pristupu, da se ubrza rad računala pod pretpostavkom da će slijedeći upit tražiti podatke koji neposredno slijede
SSZ je sector size, veličina fizičkog bloka podataka za taj disk
BSZ je block size, veličina bloka na koju je formatiran filesystem, ona se može razlikovati od veličine sektora diska.
StartSec je kod diska 0, a kod particije veći od nule.
Size je veličina diska - u bajtovima!
Svaki od tih podataka možete zatražiti i odvojeno:
$ sudo blockdev --getro /dev/sda
0
Vraćena je nula, znači da nije istina da je disk read only.
$ sudo blockdev --getrw /dev/sda
1
Dakle istina je da se može pisati po disku.
$ sudo blockdev --getsz /dev/sda
312581808
S parametrom --report dobili smo veličinu diska u bajtovima (160041885696 za SSD disk od 160 GB), dok --getsz daje veličinu u blokovima od 512 bajtova, što je u ovom slučaju veličina sektora na fizičkom disku. Ako 312581808 pomnožite s 512, dobit ćete 160041885696.
Parametru --getsz nalikuju --getss, --getpbsz, --getbsz, --getbsz. Trebalo bi shvatiti razlike među njima.
--getsz get size in 512-byte sectors
--getss get logical block (sector) size
--getpbsz get physical block (sector) size
--getbsz get blocksize
--getsize64 get size in bytes
No, kako rekosmo, u koštac s komplikacijama uhvatit ćemo se u narednom nastavku.
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version