此次出事的伺服器是測試環境的一伺服器系統版本為centos5.3,表現的現象是io非常忙,重起時間也需要半個小時以上,之前對於磁碟沒有太多關心,
因此事到臨頭一下子不知道從何查起。
首先是iostat -x 5 %wa在20%左右,列表的%util幾首都在100%以上
物理上看4塊磁碟做了raid,都亮綠燈。
決定先使用iotop來檢視是否有可疑程序,雖然很慢,只能忍受,同時也建議iotop還是必須提前安裝好才好,如果linux核心高於
2.6.18-128.el5那就很方便。
yum install iotop
如果版本低於
2.6.18-128.el5,執行iotop會出現一堆報錯資訊,需要公升級核心
yum -y upgrade kernel kernel-devel
在實際解決問題過程中,由於公升級過程非常慢,在晚上執行了,次日回來後發現io忙狀況已經消失。莫非centos5.3 linux
2.6.18-128.el5
有某個bug?總之問題就這樣神奇的消失了。
當然這時iotop能使用了,沒有可疑的程序。
如果真是磁碟有問題,想要用fsck做檢測和修復有什麼辦法呢?
使用單使用者模式
怎麼進入?
公升級核心後在本機啟動(在ssh文字模式看不到),在進入bios介面的後一步進入版本選擇(預設選中公升級
後的核心版本),如果沒有按下enter鍵會倒數秒後進入新版本。
由於單使用者模式,是readonly的狀態,因此可以umount /,可以重置root密碼等操作操作,下面做兩個案例:
linux root密碼忘了怎麼辦?
在顯示linux版本介面時,e進入編輯啟動項,a進入修改核心引數,c進入grub命令列狀態
按e進入,有三個選項
root
kernel ..
initrd ..
移到kernel項,繼續按e進入,可編輯狀態,在最後加上" single"按esc不儲存,按enter儲存回到選項介面,
在選中kernel項按b,就啟動單使用者的模式進入
需要指出的是,加上的" single"只對本次啟動不效,下次進入kernel時不會儲存上次的修改.
passwd root重置密碼
init 6 重啟
(此種辦法不能遠端ssh的方式)
centos可參照介面:
linux想檢測並修復根目錄下的分割槽
df -l
比如檢視到
...進入單使用者模式
umount /
init 6
linux rescue
另外一種場景,可能你的系統無法啟動因為某個檔案或配置被破壞,這時可以使用急救模式,手頭準備好一張linux安裝盤,通常都會有rescue選項(過程略)
進入linux rescue模式後到bash shell狀態下,再進入chroot /mnt/sysimage可以修復系統出錯檔案等工作,
但是無法umount /
因此無法在linux rescue模式下對根目錄所在檔案系統進行fsck作磁碟檢查和修復
linux檢測磁碟的方法
hdparm
語法:hdparm [-cfghiiqttvyyz][-a 《快取分割槽》][-a <0或1>][-c ][-d <0或1>][-k <0或1>][-k <0或1>][-m 《分割槽數》][-n <0或1>][-p ][-p 《分割槽數》][-r <0或1>][-s 《時間》][-u <0或1>][-w <0或1>][-x 《傳輸模式》][裝置]
補充說明:hdparm可檢測,顯示與設定ide或scsi硬碟的引數。測試各硬碟讀取速度判斷硬碟故障
hdparm -t /dev/hda (ide硬碟)
hdparm -t /dev/sda (sata、scsi、硬raid卡陣列)
hdparm -t /dev/md0 (軟raid裝置)
測試結果在空載情況下應 >40m/s ,在負載情況下平均應 > 20m/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。
badblocks
功能說明:檢查磁碟裝置中損壞的區塊。
語 法:badblocks [-svw][-b 《區塊大小》][-o 《輸出檔案》][磁碟裝置][磁碟區塊數][啟始區塊]
補充說明:執行指令時須指定所要檢查的磁碟裝置,及此裝置的磁碟區塊數。
參 數:
-b《區塊大小》 指定磁碟的區塊大小,單位為位元組。
-o《輸出檔案》 將檢查的結果寫入指定的輸出檔案。
-s 在檢查時顯示進度。
-v 執行時顯示詳細的資訊。
-w 在檢查時,執行寫入測試。
[磁碟裝置] 指定要檢查的磁碟裝置。
[磁碟區塊數] 指定磁碟裝置的區塊總數。
[啟始區塊] 指定要從哪個區塊開始檢查。
例:badblocks /dev/sda -sv
fsck或e2fsck
可自動檢查並修復,但必須是umount的狀態下
獨一無二出現的次數
給你乙個整數陣列 arr,請你幫忙統計陣列中每個數的出現次數。如果每個數的出現次數都是獨一無二的,就返回 true 否則返回 false。示例 1 輸入 arr 1,2,2,1,1,3 輸出 true 解釋 在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次...
centos7出現grub 的解決辦法
2.啟動完後會登入時會出現這樣乙個介面 這是因為grub.cfg檔案沒修復好但依舊可以用,用你的賬號登入進去就可以了 英文好的人可能知道上面那句意思是找不到軟盤控制器 工作仍懸而未決 我是網上查的 那需要修復grub.cfg,通過grub2 mkconfig o boot grub2 grub.cf...
安裝CentOS 7 出現的問題的解決方案
今天花了三四個小時安裝centos,講一講我的體驗吧。1.是在製作好啟動盤後,進入bios的boot 設定 usb優先。2.選擇第一項 but!我的電腦竟然出現了這樣的提示 entering emergency mode exit the shell to continue.type journal...