在命令列調用裝置的ioctl函數。在Linux系統中,似乎對裝置的直接操作只有ioctl函數了。他接受的參數不是太多,而且都是一一對應的。
blockdev - 從命令列調用區塊裝置控製程序
blockdev [options] commands devices
blockdev 工具允許從命令列調用區塊裝置控製程序。
–setro 設定裝置為唯讀
–getro 讀取裝置是否為唯讀(成功為1,0則為可讀寫)
–setrw 設定設別為可讀寫
–getss 列印裝置的扇區大小,通常是512
–getsize 列印設別的容量,按照一個扇區512個位元組計算
–setra N 設定預讀扇區(512位元組)為N個.Set readahead to N 512-byte sectors.
–getra 列印readahead(預讀扇區)
–flushbufs 重新整理緩衝
–rereadpt 重讀分區表。
覺得–setro,setrw比較有用,這個mount -o ro(rw)是有區別的,mount是在檔案系統這個層級上對某個分區掛載為唯讀或可讀寫。而blockdev則是在設別這個層級上設定為唯讀和可讀寫。
看下面的命令輸出結果就一目瞭然了。
代碼如下:
[root@lancy ~]# blockdev –setro /dev/hda4
[root@lancy ~]# blockdev –getro /dev/hda4
1
[root@lancy ~]# mount /dev/hda4 /misc -o rw
mount: block device /dev/hda4 is write-protected, mounting read-only
[root@lancy ~]# umount /dev/hda4
[root@lancy ~]# blockdev –setrw /dev/hda4
[root@lancy ~]# blockdev –getro /dev/hda4
0
[root@lancy ~]# mount /dev/hda4 /misc -o rw
[root@lancy ~]# touch /misc/one
[root@lancy ~]# umount /dev/hda4
[root@lancy ~]# mount /dev/hda4 /misc -o ro
[root@lancy ~]# rm -f /misc/one
rm: 無法刪除‘/misc/one’: 唯讀檔案系統