硬碟是計算的重要組成部件之一,硬碟為作業系統提供持久話儲存的功能,在Linux硬碟裝置的效能和好壞可能關係到生成線的安全和使用者體驗等等。熟練的掌握硬碟管理相關的資訊能讓我們處理起這些問題來得心應手。
Linux中最為重要到的哲學就是一切皆檔案,硬碟裝置也不例外,在Linux系統中硬碟裝置一般存放在/dev/下面SATA、SCSI等介面型別的硬碟使用sd表示,第一塊sd的硬碟表示為/dev/sda,第二塊sd的硬碟表示為/dev/sdb。IDE硬碟使用hd表示,第一塊hd的硬碟表示為/dev/hda,第二塊hd的硬碟表示為/dev/hdb。以此類推。
下面介紹Linux下和硬碟相關的命令(不同髮型版命令可能不太相同)
mount 掛載指定裝置
格式:mount -t 檔案系統型別(通常mount命令會自動識別) 裝置路徑 掛載點
示例:
mount /dev/sda1 /mnt/ #將/dev/sda1 掛載到/mnt
mount /dev/cdrom /media/ #將cdrom(光碟裝置)掛載到/media
mount -a #重讀/etc/fstab檔案
umount 解除安裝指定裝置
格式:umount 裝置/掛載點
示例:
umount /dev/sda1 #解除安裝/dev/sda1 解除安裝到整個裝置,比如說這個分割槽一共掛載到了/mnt /test /test1那麼這三個掛載點的掛載都將卸掉
umount /media/ #解除安裝掛在/media目錄上面的裝置
df 檢視當前系統掛載的分割槽情況
格式
df 引數
常用引數
--help 檢視幫助資訊
-i 顯示inode情況
-h 自動計算顯示的檔案系統大小單位
-k 以kb方式大小輸出檔案系統大小
-l 只顯示本地檔案系統的資訊
-T 顯示檔案系統型別
-t 只顯示指定的檔案系統
tune2fs 調整檔案系統屬性
格式:
tune2fs 引數 分割槽
常用引數: -j 在不損壞原有資料的情況下升級ext2為ext3 -L 設定或修改卷標(卷名) -m 調整預留給超級使用者(root)的百分比,預設為5% -c 指定掛載次數達到n次之後進行自檢,0或-1表示關閉此功能 -i 每次掛載使用多少天之後進行自檢,0或-1表示關閉此功能 -l 顯示超級塊中的資訊
smartctl:(不支援虛擬機器或雲主機等伺服器) Smartctl是類Unix系統下SMART的命令列工具,它用於列印SMART自檢和錯誤日誌,啟用或禁用SMRAT自動檢測,以及初始化裝置自檢等操作 Smartctl對於Linux物理伺服器十分有用,在這些伺服器上,可以對智慧磁碟進行錯誤檢查,並將與硬體RAID相關的磁碟資訊摘錄下來 安裝: yum -y install smartmontools 常用選項: -i 列印裝置的簡略資訊,如序列號,轉速等 -s 設定是否開啟smart功能 -a 輸出關於指定硬碟的所有smart資訊 -H 列印裝置健康狀況 -t 子引數 執行測試操作,在測試時會對硬碟的效能有一點影響 常用子引數: offline 進行離線測試 short 執行短時間的自我測試(一般不超過10分鐘) long 執行擴充套件的自我測試(一般時間較長1小時以上) select,N-M, 選擇對指定範圍的磁碟塊進行測試而不是整塊硬碟 示例: smartctl -i /dev/sdb 檢查SMART是否啟用,輸出的最後一行為Device does not support SMART表示不支援SMART,輸出的最後一行為SMART support is: Disabled表示禁用SMART,輸出的最後一行為SMART support is: Enabled表示已啟用 smartctl -s on /dev/sdb 啟用硬碟的SMART功能 smartctl -s off /dev/sdb 禁用硬碟的SMART功能 smartctl -a /dev/sdb 檢視硬碟的詳細資訊 關鍵欄位說明: Raw_Read_Error_Rate: 底層資料讀取錯誤率 Rotation Rate: 硬碟轉數資訊,固態硬碟顯示Solid State Device User Capacity: 硬碟容量 Start_Stop_Count: 硬碟加電次數 Power_On_Hours: 硬碟累計使用時長(小時) Power-Off_Retract_Count: 非正常關閉硬碟的次數(突然關閉,或者強制熱插拔硬碟的次數) Temperature_Celsius: 硬碟溫度 Seek_Error_Rate: 尋道錯誤率 smartctl -H /dev/sdb 獲取裝置的健康狀態 smartctl -t short /dev/sdb 進行短時間的智慧測試 smartctl -l selftest /dev/sdb 檢視硬碟的自檢結果 smartctl -c /dev/sdb 計算測試時間的大概值 smartctl -l error /dev/sdb 列印硬碟錯誤日誌
hdparm: hdparm命令提供了一個命令列的介面用於在驅動級別讀取和設定IDE或SCSI硬碟引數 安裝: yum -y install hdparm 命令格式: hdparm 引數 裝置 常用引數: -h 檢視幫助資訊 -I 獲取硬碟的詳細資訊,如序列號,硬碟轉述,介面型別等 -t 評估硬碟的讀取速度(不經過硬碟cache) -T 評估硬碟快取的讀取效率(記憶體中快取的頻繁使用的資料) -a 設定硬碟的預讀取功能,對於讀取大檔案有顯著的效能提升 -A 0/1 啟動或關閉讀取檔案時的快取功能 -f 將記憶體緩衝區的資料寫入硬碟,並清空緩衝區(類似雨sync命令) --direct 通常和-t或-T引數一起使用,通過原始io測試硬碟讀取速度,更好地指示原始裝置和驅動程式的效能 --drq-hsm-error 非常危險的命令,僅在測試環境中模擬故障時使用,生成環境中千萬不要使用 -g 顯示硬碟的磁軌,磁頭,磁區等引數 -i 顯示硬碟的硬體規格資訊,這些資訊是在開機時由硬碟本身所提供 -I 直接讀取硬碟所提供的硬體規格資訊(從驅動器讀取讀取硬碟資訊) --make-bad-sector 非常危險的命令,僅在測試環境中模擬故障時使用,生成環境中千萬不要使用(故意建立一個壞扇區,用於測試raid等裝置檢查扇區的功能) -r 將硬碟設定為自讀模式 -S 設定硬碟進入省電模式前的等待時間 -y 強制IDE驅動器立即進入待機模式 -Y 強制IDE驅動器立即進入休眠模式 -w 設定硬碟的寫入快取 示例: hdparm -I /dev/sha #獲取硬碟的詳細資訊 hdparm -C /dev/sda #檢測硬碟的電源管理模式 hdparm -t #測試硬碟的讀取速度(不經過cache) hdparm -T #測試硬碟快取的讀取速度 hdparm -Tt --direct /dev/sda #測試硬碟的真實讀取速度
其他的一些相關命令:
fsck 檢查並修復linux中的檔案系統
格式:
fsck 引數 檔案系統分割槽
常用引數: -t 指定檔案系統型別 -a 自動修復 e2fsck 專用於修復ext系列的檔案系統
格式:
e2fsck 引數 檔案系統分割槽 常用引數:
-f 強制檢查 -p 自動修復 mke2fs 專門管理ext系列的檔案系統
格式:
mke2fs 引數 檔案系統分割槽
常用引數: -j 建立ext3型別的檔案系統 -b 指定塊大小,預設為4096,可以值有,1024、2048.4096 -L 指定卷標 -m 指定預留給超級使用者的塊數百分比 -E 指定額外檔案系統屬性 blkid 檢視當前磁碟裝置的相關屬性 格式:
blkid 檔案系統分割槽
欄位說明:
UUID:磁碟的唯一識別符號 TYPT:檔案系統型別 LABEL:卷標 e2label 檢視或重新定義卷標 格式:
e2label 檔案系統分割槽 [卷標名]
示例:
e2label /dev/sda1 檢視卷標名
e2label /dev/sda1 test 設定卷標名
其他命令: lscpu 用於查詢CPU資訊 lshw 用於顯示硬體資訊表 hwinfo 用於查詢硬體資訊 lsppci 用於列出PCI匯流排的資訊以及連線到PCI匯流排上的裝置資訊 lsblk 用於列出塊裝置的資訊 lsscsi 用於列出SCSI的裝置資訊