Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 使用 blockdev 指令調整區塊裝置預讀大小與唯讀模式

編輯:關於 Linux

blockdev 是從命令列呼叫區塊裝置 ioctl 控制介面的工具,可設定預讀大小、唯讀/可讀寫模式、查詢扇區大小與容量等底層參數。本文說明常用選項與實務操作範例。

一、常用選項速查

選項功能
--setra N設定預讀扇區數(每扇區 512 bytes),預讀大小 = N × 512 bytes
--getra顯示目前預讀扇區數
--setro設定裝置為唯讀(區塊層級,優先於掛載選項)
--getro查詢唯讀狀態(1=唯讀,0=可讀寫)
--setrw設定裝置為可讀寫
--getss顯示邏輯扇區大小(通常 512)
--getsize顯示裝置容量(以 512-byte 扇區為單位)
--flushbufs刷新裝置緩衝區
--rereadpt重讀分區表

二、實務範例

  1. 查詢目前預讀值
    blockdev --getra /dev/sda
    # 輸出如 256 (即 128 KB)
  2. 調大預讀以提升循序讀取效能(如資料庫、影片串流)
    blockdev --setra 4096 /dev/sda   # 2 MB 預讀
  3. 設定裝置唯讀保護資料(區塊層級,連 root 也無法寫入)
    blockdev --setro /dev/sdb
    blockdev --getro /dev/sdb   # 應回傳 1
    # 即使 mount -o rw 也會提示 write-protected, mounting read-only
  4. 恢復可讀寫
    blockdev --setrw /dev/sdb
    blockdev --getro /dev/sdb   # 應回傳 0
  5. 查詢裝置容量與扇區大小
    blockdev --getsize /dev/sda
    blockdev --getss /dev/sda

三、blockdev vs mount -o ro 差異

  • mount -o ro:檔案系統層級唯讀,僅影響該掛載點;同一裝置若另以 rw 掛載仍可寫入。
  • blockdev --setro:區塊裝置層級唯讀,所有掛載點、所有檔案系統、甚至 dd 直接寫入裝置皆被阻擋,安全性更高。

blockdev 指令輸出示意圖

善用 blockdev --setra 調整預讀可針對工作負載優化 I/O 效能;--setro/--setrw 提供比檔案系統掛載選項更底層的寫入保護機制。

Copyright © Windows教程網 All Rights Reserved