1. 程式人生 > >linux 啟動錯誤排查

linux 啟動錯誤排查

--


troubleshooting    排錯


winPE   --光碟或u盤啟動盤 產生一個PE系統(類似記憶體的臨時系統)

系統排錯
rescue 模式 (挽救模式)      類似windows  winPE模式


=========================================================================


問題一:
如果你的linux的root密碼忘記了,怎麼辦?
答案:
使用單使用者模式(系統啟動級別為1)進行系統修改

在啟動系統時,在grub選擇介面按e,然後去第二行(也就是kernel開頭的那行)再按e,去最後加一個數字1
或者single單詞。然後回車,按b 進入到1級別系統是不需要登入的,現在就可以password修改新的root密碼,再重啟用新密碼正常登入了 這裡也可以把/etc/passwd的第一行第二列的x去掉,然後重啟就可以不用密碼root登入了,再把x加回去,原密碼又生效了(可以用此方法去同桌電腦做壞事) 問題二 如何防止別人用單使用者模式進入我的linux系統 答案: grub加密 方法一:在安裝系統時,直接設定 方法二: 安裝沒有設定,裝完也可以再設定 # grub-md5-crypt --用此命令自定義一個密碼,會產生一個密碼字串 Password: Retype password: $1
$WgBpF/$eWCjkPXtaN6brJXcjeAEw0 # vim /boot/grub/grub.conf --然後加上password --md5 密碼字串在如下位置 default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz password --md5 $1$WgBpF/$eWCjkPXtaN6brJXcjeAEw0 title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=a907082e-7
fa0-4547-acc1-86fafa58b512 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img 擴充套件一個小錯誤 default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=a907082e-7fa0-4547-acc1-86fafa58b512 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet password --md5 $1$WgBpF/$eWCjkPXtaN6brJXcjeAEw0 --加在這裡是不能防別人進行單使用者的,因為這一行是隻能用密碼鎖住以下的行,所以這裡並沒有鎖著kernel這一行 initrd /initramfs-2.6.32-431.el6.x86_64.img 注意:grub加密可以用rescue破解(因為rescue模式是使用與原系統無關的臨時系統) ==================================================================================== 排錯的一般思路:建議先可以嘗試使用單使用者排錯,如果不行(有些錯誤甚至會造成單使用者模式都進不了),再使用rescue模式(這個模式一定可以進,因為是使用與原系統無關的臨時系統) 問題:怎麼進入rescue模式 答案:因為我們要產生一個臨時系統,所以一定需要系統iso映象(需要把此iso做成光碟引導或u盤引導或網路引導);或者更簡單總結一句話:就是能進入到安裝系統第一步介面,選擇Rescue installed system 問題:進行rescue模式後如何排錯? 答案:一句話:進行這個臨時系統後,想辦法把原來錯誤系統掛載到臨時系統,按需求進行修改排錯 具體掛載實現方法主要有下面兩種 方法一: 如果正常情況下,會把你要修復的系統的整個根目錄(包含下級所有子目錄)mount到臨時系統的/mnt/sysimage目錄下 chroot /mnt/sysimage 再去修改(或者不chroot) 這是不chroot,在臨時系統上修改錯誤系統的/etc/fstab vi /mnt/sysimage/etc/fstab --這裡的vi命令是臨時系統的 這是chroot,在錯誤系統裡修改它的/etc/fstab chroot /mnt/sysimage vi /etc/fstab --這裡的vi是原錯誤系統的 exit 方法二: 有些情況下,沒有mount到/mnt/sysimage fdisk -l 檢視所有分割槽 然後自己手動建立目錄用來掛載排錯 例mkdir /aaa --一定要手動新建的目錄,否則不能掛載 mount /dev/sda1 /aaa 在/aaa目錄下排錯就可以了 ==================================================================================== 系統簡單啟動過程: BIOS(啟動順序)--》讀取硬碟mbr--》載入grub--》載入vmlinuz和initramfs--》讀inittab--》讀fstab---》啟動各個服務(按照inittab裡定義的級別)--》rc.local--》如果是5級別,啟動圖形--->系統登入(passwd,shadow) 具體排錯例項(mbr丟失如何排錯): mbr(master boot loader主引導記錄,在硬碟最前面的512位元組)446(啟動裝置)+64(分割槽資訊)+2(結束位) mbr丟失,現象:啟動時候黑屏,左上角一個游標在閃(或者直接就進入到了第二或第三的啟動順序,由光碟機或網路進入了系統安裝介面) 最好使用一個虛擬機器來做此實驗 第一步: dd if=/dev/sda of=/mbr.bak bs=1 count=512 --備份mbr 第二步: 把備份scp拷到別的機器或者移動儲存裝置(我這裡使用scp拷貝到我的宿主機,過程省略) 第三步: 模擬幹掉mbr dd if=/dev/zero of=/dev/sda bs=1 count=512 --幹掉mbr 做完第三步後的現象 fdisk -l 檢視不到分割槽資訊 reboot後,系統進不了,黑屏,並且一個游標在閃(BIOS裡只有硬碟啟動,沒有光碟機,網路啟動的情況下才會這樣。否則就進入了第二啟動順序引導) 第四步: 按前面總結的方法:先嚐試單使用者模式,再使用rescue模式.但現在mbr丟失的現象是grub都看不到,所以也不可能進入單使用者模式了,只能使用rescue模式 進入方法(見筆記前面總結) 第五步: --按完continue後,這裡出現了“分割槽表不可訪問,是否重新擦除所有硬碟上的資訊"的提示;所以這裡按no,進入到了挽救模式;但是這裡原系統沒有掛載到/mnt/sysimage上,並且fdisk -l檢視不到分割槽,ls /dev/可以看到分割槽名,但掛載不了;也就是說找不到以前的mbr備份,無法恢復 --注意:rhel6.5裡如果按continue,會報找不到disk(因為mbr丟失的原因,其它的錯誤,選擇continue是正常的),無法進入到挽救模式的命令列模式;可以按skip,就可以進入到命令列模式 --所以,mbr備份到U盤這種外接裝置,現在就可以掛載進行恢復 dd if=/path/mbr.bak of=/dev/sda --或者進入帶網路的挽救模式,通過網路拷過來進行恢復;但要在臨時系統使用scp遠端拷過來,因為它本身沒有ssh服務,但可以使用scp使用別人的ssh服務。 ============================================================================ 實踐練習: 使用一個硬碟12G以上大小的虛擬機器安裝排錯系統,橋接網路(基於rhel6.5版本): 獲取伺服器IP:172.16.2.9 安裝名:troubleshooting --如果所有人一起安裝可能會較卡,可以同桌間一人安裝,(安裝完後建議做一個虛擬機器快照)然後把安裝的虛擬機器目錄拷給同桌開啟 --可以討論一起排錯,可以上網查資料;最終實現登入進系統,安裝圖形,無錯誤 --還要要求能夠上外網,並能被ssh連線 錯誤都是講過的,只有一個點沒講,上網查查這個檔案/etc/securetty 如果一個os,沒有yum,沒有rpm,連gcc這種都沒有(表示你沒辦法原始碼編譯),那麼你怎麼裝包上去? 答案: rpm --root=/xxx yum --installroot=/xxx rm -rf /root/anaconda-ks.cfg rm -rf /bin/mount rm -rf /usr/bin/yum rm -rf /boot/grub/grub.conf rm -rf /etc/fstab rm -rf /usr/bin/nautilus rpm -e --nodeps rpm-4.8.0-37.el6.x86_64 echo "echo 123 |passwd --stdin root &> /dev/null" >> /root/.bash_profile echo "export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/usr/local/bin:/usr/bin:/root/bin" >> /root/.bashrc sed -i 's/sda/sdb/' /boot/grub/device.map sed -i '/^export/d' /etc/profile sed -i '/^host/s/dns//' /etc/nsswitch.conf chmod o-t /tmp chmod 000 / echo "* * * * * root wall 'haha'" >> /etc/crontab echo "01 * * * * /sbin/init 0" >> /var/spool/cron/root sed -i '12aport 222' /etc/ssh/sshd_config echo "TMOUT=30" >> /root/.bashrc echo "find me @[email protected]" >> /etc/motd sed -i '/^root/s/bin/in/g' /etc/passwd sed -i '5asleep 100' /etc/rc.d/init.d/network sed -i '1s/yes/no/' /etc/sysconfig/network sed -i '20s/fi/hahahaha/' /etc/profile mv /lib64/libselinux.so.1 /lib64/libselinux.so.1.bak echo "/sbin/init 6" >> /etc/rc.local chattr +i /etc/rc.d/rc.local chattr +i /etc/passwd chattr +i /etc/shadow chmod u-s /usr/bin/passwd echo "tty2" > /etc/securetty echo "sshd: all" > /etc/hosts.deny rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0 dd if=/dev/zero of=/dev/sda1 bs=1 count=1024 seek=1024 rm -rf /root/cobbler.ks rm -rf /root/*

相關推薦

linux 啟動錯誤排查

-- troubleshooting 排錯 winPE --光碟或u盤啟動盤 產生一個PE系統(類似記憶體的臨時系統) 系統排錯 rescue 模式 (挽救模式) 類似windows winPE模式 =============

Tomcat啟動錯誤排查

tomcat java 啟動 故障Tomcat部署兩個war包的情況下,有一個war包部署失敗。日誌中提示十月 17, 2017 2:14:00 下午 org.apache.catalina.core.StandardContext startInternal 嚴重: One or more listener

SSHE在jetty下啟動錯誤排查

   今天是換新工作第一天上班,下午的時候領導給了個SSHE例項專案,讓我跑起來,再我把專案拿到手,匯入eclipse內,怎麼都跑不起來,我的開發環境是java8,mysql8,由於SSHE這個專案比較老了,中間出現了不少小插曲,最後還是一一解決了,出現以下錯誤: 如果我們出

linux啟動時報init錯誤;yum配置出錯

yum 配置出錯 結果:VMware虛擬機中的redhat6.7在開機過程中出現引導錯誤(init : Failed to spawn readahead-collector main process :unable to execute)並卡在redhat界面。無法進入單用戶模式。原因:在配置lin

Android相機啟動crash錯誤排查

一個Android的用到相機的service程式,在比較少的情況下會出現在系統啟動時crash。log顯示是在呼叫ACameraDevice_createCaptureSession時返回錯誤ACAMERA_ERROR_STREAM_CONFIGURE_FAIL(這個程式是用jni操作相機的),configu

Linux啟動流程及錯誤修復

系統啟動流程                                     

linux筆記:nginx啟動錯誤,Job for nginx.service failed

錯誤介紹 Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe”

linux 核心啟動錯誤和selinux引數 Kernel panic -not syncing:Attempted to kill init

今天在裝某個軟體的時候,修改了selinux引數。修改selinux 的某個引數值為Disable。導致 linux系統不能啟動。出現如下錯誤 Kernel panic -not syncing:Attempted to kill init! 後經過向群友請教和

Linux Crontab 設定的定時任務沒有啟動排查

1、先手動執行定時任務以此來判斷指令碼是否有問題。 2、確認伺服器是否開啟定時任務計劃服務 命令:service crond status service crond start 3、檢查定時任務配置的語法

apache 啟動失敗錯誤排查

 使用安裝包安裝zabbix ,過程中可能出現錯誤,打算用原始碼重新安裝,出現問題,apache 重啟失敗排查思路1   檢視報錯資訊Job for httpd.service failed because the control process exited with error code. See "sy

【OM】關於linux SSHD服務啟動錯誤,exitcode=255

   由於伺服器維護,在關機的過程中可能造成了一些虛擬機器的非正常關機(即便是reboot或者shutdown -h 手動正常關機)有時因為系統執行緒無法正常關閉導致某些服務再次開機的時候就出現問題了,

Linux啟動網絡卡時出現RTNETLINK answers: File exists錯誤解決方法

一、問題描述VMware中克隆虛擬機器是經常的事情,雖然如此,用到虛擬機器時,本人還是喜歡新安裝一個作業系統,針對伺服器的應用,在安裝作業系統時,一併安裝好,並且也花不了多少時間。但最近需要大量的配置一樣的虛擬機器進行測試,故安裝了一個模板虛擬機器,然後直接複製模板虛擬機器到

Linux啟動流程詳解

linux 詳解 啟動流程 grub mbr 內核 linux啟動流程第一部分 Linux啟動基礎知識1.1 linux centos6.8啟動流程圖 BIOS加電自檢à加載MBRà加載啟動grubà加載內核à啟動/sbin/i

linux 啟動分析

linux一,Linux 啟動分析圖如下本文出自 “hhslinux” 博客,謝絕轉載!linux 啟動分析

linux啟動流程簡介

機器 配置文件 互聯網 local 相關信息 ade 通過 在操作 mbr 我們都知道,由於linux的穩定性,通常被作為服務器系統,要想稱為一個PHP的高手,linux是必修之課。那麽linux系統從開機到啟動,中間到底都發生了什麽?本文來簡單探討一下中間的神秘過程。 1

Apache/2.4.9啟動錯誤:AH01630: client denied by server configuration

2.4 -s 錯誤 client ont pop 配置 出現 doc 在升級Yii框架1.11->2.0beta時,PHP升級到5.5。順帶升級Apache2.2.x到2.4.9。把原有vhost配置移植過來,出現Apache啟動錯誤:AH01630: client

PHP Apache shutdown unexpectedly啟動錯誤解釋及解決的方法

csdn ext block div lin p s 配置 ras host 在學PHP的時候,偶然發現XAMPP窗體Apache的啟動出現錯誤,出現下面的錯誤提示: 9:52:41 [Apache] Attempting to start Apache app..

X86架構下Linux啟動過程分析

重要 ack csdn 檢查 point article span 註意 eap 1、X86架構下的從開機到Start_kernel啟動的整體過程 這個過程簡要概述為: 開機——>BIOS——>GRUB/LILO——>Linux Kernel

kafka linux 啟動腳本 sample

rds size space consola pre leading san ace function #!/bin/sh # # chkconfig: 345 99 01 # description: Kafka # # File : Kafka # # D

Linux 啟動SVN服務

ready soc 數據倉庫 端口被占用 list 服務 in use svn 使用 #使用默認端口3690啟動svn服務svnserve -d -r /home/svndata # 如果出現#svnserve: Can‘t bind server socket: Addr