打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux命令(二) blockdev命令

blockdev命令
blockdev命令可以获取linux下块设备的属性值,以及设置一些块设备的属性值。

命令参数

block -V 输出程序的版本号blockdev --report [devices] 列举出devices设备信息。如果没有devices,则输出所有操作系统发现的块设备。blockdev [-v|-q] commands devices-v 命令设置后,后面的命令行参数执行,会输出相应的提示信息。-q 命令设置后,后面的命令行参数执行,不会输出相应的提示信息。默认也是不会输出。可行的命令--getsz                   获取512字节的扇区的个数--setro                   设置只读--setrw                   设置读写--getro                   获得只读--getdiscardzeroes        get discard zeroes support status--getss                   获得逻辑块(扇区)大小--getpbsz                 获得物理块(扇区)大小--getiomin                获得最小 I/O 大小--getioopt                获得最优 I/O 大小--getalignoff             获得字节中的对齐偏移量--getmaxsect              获得每次请求的最大扇区数--getbsz                  获得块大小--setbsz <bytes>          设置块大小--getsize                 获得32位扇区个数(废弃, 使用 --getsz)--getsize64               获得字节大小--setra <sectors>         设置 readahead--getra                   获取 readahead--setfra <sectors>        设置 文件系统 readahead--getfra                  获取 文件系统 readahead--flushbufs               刷新缓存--rereadpt                重新读取分区表

命令截图

命令实现

linux下可以通过操作文件的方式来操作块设备。
打开块设备后可以通过ioctl系统调用获取块设备的信息。

int ioctl(int fd,int request,unsigned long arg);参数:fd          文件描述符request     传入的命令arg         传入的参数,类型可变,长整形或者指针
以下是命令参数对应的实现    左边是传入的命令    右边是传入的参数可行的命令--getsz                   获取512字节的扇区的个数    BLKGETSIZE64        unsigned long long*--setro                   设置只读    BLKROSET            int*--setrw                   设置读写    BLKROSET            int*--getro                   获得只读    BLKROGET            int *--getdiscardzeroes        get discard zeroes support status    BLKDISCARDZEROES    unsigned int *--getss                   获得逻辑块(扇区)大小    BLKSSZGET           int *--getpbsz                 获得物理块(扇区)大小    BLKPBSZGET          unsigned int*--getiomin                获得最小 I/O 大小    BLKIOMIN            unsigned int*--getioopt                获得最优 I/O 大小    BLKIOOPT            unsigned int*--getalignoff             获得字节中的对齐偏移量    BLKALIGNOFF         int*--getmaxsect              获得每次请求的最大扇区数    BLKSECTGET          unsigned short*--getbsz                  获得块大小    BLKBSZGET           int*--setbsz <bytes>          设置块大小    BLKBSZSET           int*--getsize                 获得32位扇区个数(废弃, 使用 --getsz)    BLKGETSIZE          unsigned long*--getsize64               获得字节大小    BLKGETSIZE64        unsigned long long*--setra <sectors>         设置 readahead    BLKRASET            int--getra                   获取 readahead    BLKRAGET            long*--setfra <sectors>        设置 文件系统 readahead    BLKFRASET           int--getfra                  获取 文件系统 readahead    BLKFRAGET           long*--flushbufs               刷新缓存    BLKFLSBUF           none--rereadpt                重新读取分区表    BLKRRPART           none
打印出所有操作系统已经获取的块设备可以查看/proc/partitions文件

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
计算无符号数中二进制1的个数 - C/C++ - 庸愚居
linux c/c++ IP字符串转换成可比较大小的数字
深入理解SD卡基础原理以及内部结构的总结
如何查看Linux操作系统的位数?
[快速上手Linux设备驱动]之块设备驱动流程详解一
伟大的C语言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服