CentOS6.4系统启动失败故障排查
轉:http://www.centoscn.com/CentosBug/osbug/2014/1028/4011.html
操作系統啟動失敗如下圖報錯:
?
故障現象:
從圖中可以看到,操作系統啟動的過程中,fsck在執行文件系統檢測時出現了錯誤,并且是在檢查/dev/mapper/VolGroup-lv_home時出錯,提示此文件不存在;
?
故障分析:
這是一個什么界面,為何會出現這個界面?
操作系統啟動的的大致過程為:加載BootLoader-à加載kernel-àinit執行系統初始化-à用戶登錄;而在init執行系統初始化的過程中,會執行系統初始化腳本/etc/rc.d/rc.sysinit,在此腳本中即會執fsck -A進行文件系統檢測;
fsck -A會執行什么操作呢?
fsck -A會遍歷文件/etc/fstab,檢查其中定義的所有的文件系統。fsck在做文件系統檢查前通常不會去檢查設備是否真實存在,所以如果某設備不存在,而又去做了fsck,fsck即會報錯,繼而導致操作系統時會進入文件系統修復模式(file system repair mode),而中斷正常的系統啟動;
所以,這就是為何會出現此界面的原因了。
?
解決方法:
既然是fsck執行失敗,導致操作系統無法繼續啟動,所以可以在操作系統啟動時,讓fsck跳過檢查這個有問題的/dev/mapper/VolGrouplv_home即可正常啟動操作系統;(在/etc/fstab中設置此項的第個字段fs_passno的值設為0,即意為fsck不檢查此行)
?????????但是此時文件系統修復模式下所有文件都是只讀的,無法編輯/etc/fstab;所以此時可以選擇從系統光盤啟動,選擇進入緊急救援模式下去修改文件(因為緊急修復模式不會執行/etc/rc.d/rc.sysinit,所以不會出現此報錯);
| 1 2 3 | bash-4.1#?chroot?/mnt/sysimage sh-4.1#?vim?/etc/fstab?????????????##將/dev/mapper/VolGrouplv_home這一行的第6個字段設為0 sh-4.1#?reboot?-r |
?*除了以上方法:還可以注釋掉 #/dev/mapper/VolGrouplv_home
但會提示沒有寫的權限:可以通過命令:mount -o remonut,rw /, Vi /etc/fstab
此時即可正常啟動系統,不過中途會看到如下界面:
此時已沒有fsck的報錯,但是mount掛載文件系統時有一個failed的信息,這是因為在系統初始化腳本/etc/rc.d/rc.sysinit中,文件系統檢測完成后的下一步即是去掛載文件系統;
并且從此界面可以明確的看到問題的所在了,/dev/mapper/VolGroup-lv_home不存在;雖然有此failed信息,但不影響系統可以繼續啟動;
綠色圈中的是需等待SELinux自動完成重新打標,若不想等待,可以在系統啟動時禁入編輯模式,禁用SELinux的啟動即可,如下圖:
?
?
?
--------------------------------------------------------------------
至此操作系統已經可以啟動起來,需介紹下背景了,此系統安裝時是按照系統默認的分區布局(partitioning layout),如下圖:
?????????一塊硬盤sda,分成了sda1與sda2兩個分區,sda2做成物理卷,基于此物理卷創建的卷組名稱為VolGroup,在此卷組上創建了3個邏輯卷,名稱分別為lv_root、lv_home、lv_swap,并且此邏輯卷lv_root與lv_home分別掛載到了文件系統中的/目錄和/home目錄;
????所以前文中/dev/mapper/VolGroup-lv_home即是此系統自動創建的掛載在/home的邏輯卷;比如由于誤操作(umount、lvremove),刪除了此邏輯卷,然后在重啟電腦時,即會出現開篇處的報錯了。
?--------------------------------------------------------------------------------------------------------------------------------------
?
現在操作系統已經啟動登錄,也知道問題所在了,那么接下來如何恢復此邏輯卷呢?
此時,系統中查看此邏輯卷的確是已被刪除;
| 1 2 3 4 5 6 7 | [root@mysqlhost1?~]#?lvs LV??????VG??????Attr??????LSize???Pool?Origin?Data%??Move?Log?Cpy%Sync?Convert lv_root?VolGroup?-wi-ao---?50.00g????????????????????????????????????????????? lv_swap?VolGroup?-wi-ao---?992.00m????????????????????????????????????????????? [root@mysqlhost1?~]#?ll?/dev/VolGroup/ lrwxrwxrwx?1?root?root?7?10月?22?20:27lv_root?->?../dm-0 lrwxrwxrwx?1?root?root?7?10月?22?20:27lv_swap?->?../dm-1 |
并且由于此邏輯卷是掛載在/home目錄下,此邏輯卷丟失,那么/home目錄下的數據,是否也是一同丟失了呢?如何恢復/home目錄下原有的數據?
lvremove刪除邏輯卷,其只是會清除LVM的部分元數據信息(metadata),真正的數據仍會被完整的保留;即雖然邏輯卷lv_home被刪除了,但是/home下的數據仍然存在,只是現在暫且看不到;
并且默人的配置是,LVM的物理卷、卷組或是邏輯卷發生任何改動之前,LVM的元數據信息都會自動保存至/etc/lvm/archive目錄下;
?????????所以我們只需恢復邏輯卷lv_home被刪除前的自動備份的LVM的元數據信息,邏輯卷lv_home即可自動恢復,然后后重新掛載,即可查看到/home目錄下原有的數據了;
| 1 2 3 4 5 6 | ##查看和卷組VolGroup相關的元數據備份信息 [root@mysqlhost1?~]#?vgcfgrestore?--list?VolGroup?? File:??????????/etc/lvm/archive/VolGroup_00001-560861966.vg VG?name:????????????VolGroup Description:????Created?*before*?executing?'lvremove?/dev/VolGroup/lv_home' Backup?Time:??Wed?Oct?22?17:33:17?2014 |
????結果中可以看到在執行'lvremove /dev/VolGroup/lv_home'之前,卷組的元數據自動被備份到了文件/etc/lvm/archive/VolGroup_00001-560861966.vg中
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ##從對應文件中恢復卷組VolGroup的那一刻的元數據信息? [root@mysqlhost1?~]#?vgcfgrestore?-f/etc/lvm/archive/VolGroup_00001-560861966.vg?VolGroup Restored?volume?group?VolGroup ##此時即可看到此邏輯卷lv_home了 [root@mysqlhost1?~]#?lvscan????????????????????????????????? ACTIVE???????????'/dev/VolGroup/lv_root'?[50.00?GiB]?inherit inactive?????????'/dev/VolGroup/lv_home'?[108.54?GiB]?inherit ACTIVE???????????'/dev/VolGroup/lv_swap'?[992.00?MiB]?inherit ##激活此邏輯卷 [root@mysqlhost1~]#?lvchange?-ay?/dev/VolGroup/lv_home?????????????? [root@mysqlhost1?~]#?lvscan ACTIVE???????????'/dev/VolGroup/lv_root'?[50.00?GiB]?inherit ACTIVE???????????'/dev/VolGroup/lv_home'?[108.54?GiB]?inherit ACTIVE????????????'/dev/VolGroup/lv_swap'?[992.00?MiB]?inherit |
| 1 2 3 4 5 6 | ##恢復/etc/fstab中剛才做的改動 [root@mysqlhost1?~]#?vi?/etc/fstab?? ##重新掛載????????? [root@mysqlhost1?~]#?mount?-a???? ##/home目錄下原有的數據也都可以查看到了??????????????????????? [root@mysqlhost1?~]#?ls?/home |
?
確實按上面方法,可以看到home的內容了,但如果系統重新啟動了后,還是會報如下錯誤:
?
就不知道怎么辦了,還是重裝系統了.哎
注上幾條命令:查看硬盤的UUID
ot@centreon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2.7T 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 2.7T 0 part
├─vg_centreon-lv_root (dm-0) 253:0 0 50G 0 lvm /
├─vg_centreon-lv_swap (dm-1) 253:1 0 4G 0 lvm [SWAP]
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
sdc 8:32 0 2.7T 0 disk
└─sdc1 8:33 0 2.7T 0 part
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
[root@centreon ~]# blkid
/dev/sda1: UUID="afca0f91-00c7-4707-a1ab-ef6b9994100e" TYPE="ext4"
/dev/sda2: UUID="eP2umd-3ylU-iJan-uroF-lTuA-7nvC-rwtxfp" TYPE="LVM2_member"
/dev/sdb1: UUID="CyGJ2T-smib-rYoT-CKbb-g0tF-S9bk-n1X0T6" TYPE="LVM2_member"
/dev/sdc1: UUID="0EP3hG-SZJX-8N4N-OevK-0JOf-2V6Y-22hNvF" TYPE="LVM2_member"
/dev/mapper/vg_centreon-lv_root: UUID="75345656-50c9-4943-9925-92c1051c8f8e" TYPE="ext4"
/dev/mapper/vg_centreon-lv_swap: UUID="377fa21f-cec3-4574-8bf0-c49c45ab09a2" TYPE="swap"
/dev/mapper/vg_centreon-lv_home: UUID="ffcb68ae-2b66-4da3-9125-82e3acecf0fd" TYPE="ext4"
?
轉載于:https://www.cnblogs.com/baxk/p/4835459.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的CentOS6.4系统启动失败故障排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 3268:Silver Cow
- 下一篇: [Linux]变量加减赋值以及将Stri