【摘要】
成都創新互聯服務項目包括中山網站建設、中山網站制作、中山網頁制作以及中山網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,中山網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到中山省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
當Linux系統出現故障無法正常啟動系統時,Linux準備了單用戶模式、救援模式等方式可以讓我們有效的處理這類問題。本文簡單分享一個利用救援模式解決Redhat系統無法啟動的案例。
【正文】
一、???問題背景
1)????問題描述
一臺部署了RHEL 7.2的物理服務器,突發死機故障,在嘗試重啟時,發現服務器無法正常進入操作系統,直接進入emergency mode。本文主要分享操作系統啟動異常的問題排查過程。(服務器死機據后續日志分析,確定為內核的bug所致,本文不進行累述)
2)?? 故障現象
系統啟動后,提示無法找到/dev/mapper/rhel-root,并直接進入emergency mode。
二、???排查思路
1)????收集系統啟動異常的相關提示信息,獲取到問題關鍵點:
Warning:/dev/rhel/root does not exist
初步定為配置文件問題或者邏輯卷root本身問題;
2)????嘗試在應急模式下檢查邏輯卷狀態,發現當前情況并不穩定,常用命令無法使用、顯示多為亂碼;
3)????嘗試進入單用戶模式,發現情況和應急模式一樣;
Redhat 7.2進入單用戶模式:
1、開機啟動至內核選擇界面,選擇第一項,按e進行編輯
2、定位到linux16這一行,找到ro,修改其為rw init=/sysroot/bin/sh
3、按ctrl+X啟動至單用戶模式
4)????利用系統安裝光盤,進入Linux救援模式,進行排查。
Redhat 7.2救援模式啟動方法:
1、把光盤加入光驅,然后啟動,以光盤進行引導,選擇救援模式(中間具體的步驟不再細說)
2、文件系統掛載到/mnt/sysimage目錄下,這時切換到此目錄下使用chroot /mnt/sysimage這條命令即可
5)????在救援模式下,首先查看服務器lv的情況,發現所有lv
status均為未激活狀態。
查看lv
#Lvdisplay
修改lv
#vgchange -a y /dev/docker/root
6)????在嘗試修改root的lv status時,發現root所在的vg名和啟動時所指定的vg名不一致,基本確定問題點;
7)????修復
l? 編輯文件/etc/default/grub
l? 修改此文件中GRUB_CMDLINE_LINUX一行中rd.lvm.lv為合適的值
l? 再執行以下命令重做grub :
n?UEFI: grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
n? 非UEFI:grub2-mkconfig -o /boot/grub2/grub.cfg
l? 查看文件grub.cfg中是否修改為rd.lvm.lv=rhel/root
l? 修改/etc/grub2.cfg中root=后接的lv路徑改為實際的路徑。
8)????系統啟動后,通過history日志,確定為該系統業務部署時,使用了vgrename命令修改了vg名。
三、???總結
對于Linux的問題處理,需要對Linux的運行原理有所理解,這此前提下才能根據有限的提示信息判斷問題方向、確定排查范圍、找到解決方法。同時,提醒各位初學linux的同事么,在進行linux的一些操作時,需要充分考慮這些操作可能造成的影響,避免類似上述的問題發生。
轉自 嘉為教育-rhce認證_rhce培訓_linux培訓_linux認證_linux考證
Linux系統中traceroute命令可以追蹤到網絡數據包的路由途徑。下面由我為大家整理了linux系統中traceroute命令使用詳解,希望對大家有幫助!
Linux系統中traceroute命令使用詳解
1.命令格式:
traceroute[參數] [主機]
2.命令功能:
traceroute 指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40 Bytes, 用戶可另行設置。
具體參數格式:traceroute [-dFlnrvx] [-f存活數值] [-g網關][-i網絡界面][-m存活數值][-p通信端口][-s來源地址][-t服務類型][-w超時秒數][主機名稱或IP地址][數據包大小]
3.命令參數
-d使用socket 層級的排錯功能
-f設置第一個檢測數據包的存活數值TTL的大小
-F設置勿離段位 ----我也不知道啥是勿離段位,查了下沒查到什么信息^^
-g設置來源路由網關,最多可設置8個
-i使用指定的網絡界面送出數據包
-I使用ICMP回應取代UDP資料信息
-m設置檢測數據包的最大存活數值TTL 的大小
-n直接使用IP地址而非主機名稱
-p設置UDP傳輸協議的通信端口
-r忽略普通的routing table ,直接將數據包送到遠端主機上
-s設置本地主機送出數據包的IP地址
-t設置檢測數據包的TOS數值
-v詳細顯示指令的執行過程
-w設置等待遠端主機回報的時間
-x開啟或關閉數據包的正確性檢驗
linux系統中traceroute命令實例
實例1:traceroute 用法簡單,最常用的用法
命令:traceroute
說明:
記錄按序列號從1開始,每個記錄就是一跳,每跳表示一個網關,我們看到每行有三個時間,單位是 ms,其實就是 -q 的默認參數。探測數據包向每個網關發送三個數據包后,網關響應后返回的時間;如果您用 traceroute -q 4 , 表示向每個網關發送4個數據包
有時我們 traceroute 一臺主機時,會看到有一些行是以星號表示的。出現這種情況,可能是防火墻封掉了 ICMP的返回信息,所以我們得不到什么相關的數據包返回數據。
有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因,當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會有延時長的現象;您可以加 -n 參數來避免DNS 解析,以 IP格式 輸出數據。
如果在局域網中的不同網段之間,我們可以通過 traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某臺服務器遇到問題時,我們用到 traceroute 追蹤數據包所經過的網關,提交 IDC 服務商,也有助于解決問題;但目前看來國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。
實例2:跳數設置
命令:
traceroute -m 10
實例3:只顯示IP 地址,不查主機名DNS
命令:traceroute -n
實例4:探測包使用的基本UDP端口設置6888
命令:traceroute -p 6888
實例5:把探測包的個數設置為4個
命令:traceroute -q 4
實例6:繞過正常的路由表,直接發送到網絡相連的主機
命令:traceroute -r
實例7:把對外發探測包的等待響應時間設置為3秒
命令:traceroute -w 3
補充:linux系統中traceroute 的工作原理
traceroute 程序的設計是利用 ICMP 及IP header 的TTL(time to live)欄位(field)。首先,traceroute 送出一個 TTL 是1 的IP datagram(每次送的的是3個 40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個 datagram 時,它將TTL減少 1,此時,TTL變為0了,所以該路徑會將次 datagram 丟掉,并送回一個 【ICMP time exceeded】消息,traceroute 收到這個消息后,便知道這個路由器存在于這個路徑上,接著traceroute 再送出另一個 TTL為 2 的 datagram ,發現第二個路由器,然后一直重復執行這種操作,直到某個datagram 抵達目的地。
在traceroute 送出 UDP datagram 到目的地時,它所選擇送達的 port number 是一個一般應用程序都不會用的號碼,所以當此UDP datagram到達目的地后該主機會送回一個 ICMP port unreachable 的消息,而當traceroute 收到這個消息時,便知道目的地已經到達,所以 traceroute 在 server 端也就沒有所謂的 daemon 程式。
traceroute 通過計算 ICMP TTL 到期消息設備的IP 地址并做域名解析。每次,traceroute 都打印出一系列數據,包括所經過的路由設備的域名及 IP 地址,三個包每次來回所花時間。
linux常用命令(基礎)
1. man 對你熟悉或不熟悉的命令提供幫助解釋
eg:man ls 就可以查看ls相關的用法
注:按q鍵或者ctrl+c退出,在linux下可以使用ctrl+c終止當前程序運行。
2. ls 查看目錄或者文件的屬*,列舉出任一目錄下面的文件
eg: ls /usr/man
ls -l
a.d表示目錄(directory),如果是一個”-”表示是文件,如果是l則表示是一個連接文件(link)
b.表示文件或者目錄許可權限.分別用可讀(r),可寫(w),可運行(x)。
3. cp 拷貝文件
eg: cp filename1 filename2 //把filename1拷貝成filename2
cp 1.c netseek/2.c //將1.c拷到netseek目錄下命名為2.c
4. rm 刪除文件和目錄
eg: rm 1.c //將1.c這個文件刪除
5. mv 移走目錄或者改文件名
eg: mv filename1 filename2 //將filename1 改名為filename2
mv qib.tgz ../qib.tgz //移到上一級目錄
6. cd 改變當前目錄 pwd 查看當前所在目錄完整路徑
eg: pwd //查看當前所在目錄路徑
cd netseek //進入netseek這個目錄
cd //退出當前目錄
7. cat,more命令
將某個文件的內容顯示出來。兩個命令所不同的是:cat把文件內容一直打印出來,而 more則分屏顯示
eg; cat1.c //就可以把代碼粘帖到1.c文件里,按ctrl+d 保存代碼。
cat 1.c 或more 1.c //都可以查看里面的內容。
gcc -o 1 1.c //將1.c編譯成.exe文件,我們可以用此命編譯出代碼。
8.chmod 命令 權限修改 用法:chmod 一位8進制數 filename。
eg: chmod u+x filenmame //只想給自己運行,別人只能讀
//u表示文件主人, g 表示文件文件所在組。 o 表示其他人 ;r 表可讀,w 表可寫,x 表可以運行
chmod g+x filename //同組的人來執行
9. clear,date命令
clear:清屏,相當與DOS下的cls;date:顯示當前時間。
10. mount 加載一個硬件設備
用法:mount [參數] 要加載的設備 載入點
eg: mount /dev/cdrom
cd /mnt/cdrom //進入光盤目錄
11. su 在不退出登陸的情況下,切換到另外一個人的身份
用法: su -l 用戶名(如果用戶名缺省,則切換到root狀態)
eg:su -l netseek (切換到netseek這個用戶,將提示輸入密碼)
12.whoami,whereis,which,id
//whoami:確認自己身份
//whereis:查詢命令所在目錄以及幫助文檔所在目錄
//which:查詢該命令所在目錄(類似whereis)
//id:打印出自己的UID以及GID。(UID:用戶身份唯一標識。GID:用戶組身份唯一標識。每一個用戶只能有一個唯一的UID和 GID)
eg: whoami //顯示你自已登陸的用戶名
whereis bin 顯示bin所在的目錄,將顯示為:/usr/local/bin
which bin
13. grep,find
grep:文本內容搜索;find:文件或者目錄名以及權限屬主等匹配搜索
eg: grep success * /*查找當前目錄下面所有文件里面含有success字符的文件
14. kill 可以殺死某個正在進行或者已經是dest狀態的進程
eg; ps ax
15. passwd 可以設置口令
16. history 用戶用過的命令
eg: history //可以顯示用戶過去使用的命令
17. !! 執行最近一次的命令
18. mkdir命令
eg: mkdir netseek //創建netseek這個目錄
19. tar 解壓命令
eg: tar -zxvf nmap-3.45.tgz //將這個解壓到nmap-3.45這個目錄里
20. finger 可以讓使用者查詢一些其他使用者的資料
eg: finger //查看所用用戶的使用資料
finger root //查看root的資料
網站名稱:linux解決問題的命令 linux中的幫助命令
網頁地址:http://vcdvsql.cn/article32/hejjpc.html
成都網站建設公司_創新互聯,為您提供網站內鏈、虛擬主機、網頁設計公司、用戶體驗、、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯