blockdev命令是Linux系统中一个重要的工具,用于管理和控制块设备。它允许用户通过命令行直接调用块设备的ioctl接口,以获取和设置设备的各种属性。
一:功能
基本功能blockdev命令的主要功能包括:
获取块设备信息:可以查询块设备的大小、扇区大小、只读状态等。设置设备属性:支持将设备设置为只读或可读写,调整预读大小等。二:命令
root@meng:~# blockdev
blockdev: not enough arguments
Try 'blockdev --help' for more information.
root@meng:~# blockdev --help
Usage:
blockdev [-v|-q] commands devices
blockdev --report [devices]
blockdev -h|-V
Call block device ioctls from the command line.
Options:
-q quiet mode
-v verbose mode
--report print report for specified (or all) devices
-h, --help display this help
-V, --version display version
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
For more details see blockdev(8).
命令的基本语法为:
textblockdev [选项] [命令] [设备]
常用选项-V:输出程序版本并退出。-q:安静模式,不输出提示信息。-v:详细模式,输出执行过程中的提示信息。--setro:设置设备为只读。--setrw:设置设备为可读写。--getro:获取设备的只读状态(返回1表示只读,0表示可读写)。--getss:获取逻辑扇区大小,通常为512字节。--flushbufs:刷新缓存。--rereadpt:重新读取分区表。三:案例
root@meng:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.9M 1 loop /snap/core20/2264
loop1 7:1 0 63.9M 1 loop /snap/core20/2318
loop3 7:3 0 87M 1 loop /snap/lxd/28373
loop4 7:4 0 38.7M 1 loop /snap/snapd/21465
loop5 7:5 0 38.8M 1 loop /snap/snapd/21759
loop6 7:6 0 87M 1 loop /snap/lxd/29351
sda 8:0 0 35G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 33G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 33G 0 lvm /
sr0 11:0 1 1024M 0 rom
root@meng:~# blockdev --getro /dev/sda1
0
root@meng:~# blockdev --getro /dev/sda2
0
root@meng:~# blockdev --getss /dev/sda2
512
root@meng:~# blockdev --getss /dev/sda3
512
root@meng:~#