日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 系统盘无法ls,系统故障排除

發布時間:2025/3/11 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 系统盘无法ls,系统故障排除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.系統故障排除

1)模擬磁盤/dev/sda的MBR故障,并執行修復

01.備份磁盤/dev/sda的MBR扇區

選擇一個/dev/sda以外的文件系統(比如/dev/sdb1)來存放備份文件:

[root@svr5 ~]# df -hT/home//選擇/dev/sdb1存放備份

文件系統???????? 類型???? 容量???? 已用???? 可用???? 已用%???? 掛載點

/dev/sdb1???? ext3????19G????? 173M???? 18G?????1%? ????/home

使用dd命令復制/dev/sda設備的第一個扇區(512字節):

[root@svr5 ~]# dd if=/dev/sdaof=/home/sda.mbr bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.013492 seconds,37.9 kB/s

確認已存放到/dev/sdb1下的備份文件:

[root@svr5 ~]# ls -l /home/sda.mbr

-rw-r--r-- 1 root root 512 10-15 15:50/home/sda.mbr

02.模擬對MBR扇區的破壞

使用dd命令對MBR扇區清零,然后重啟系統:

[root@svr5 ~]# dd if=/dev/zero of=/dev/sdabs=512 count=1//破壞MBR

1+0 records in

1+0 records out

512 bytes (512 B) copied, 2e-05 seconds, 26MB/s

[root@svr5 ~]# reboot//重啟系統

.. ..

重啟系統后,因磁盤sda的MBR被破壞而無法找到分區表,從而也就無法加載Linux操作系統。如果網絡啟動或光盤啟動也失敗,則提示“Operating System not found”而停滯,如圖-2所示。

圖-2

03.進入RHEL 5光盤的救援模式

修改RHEL 5虛擬機的光盤設置,將其改為RHEL 5系統的.iso安裝鏡像文件,比如rhel-server-5.9-x86_64-dvd.iso,如圖-3所示。

圖-3

然后重啟虛擬機電源,默認將從光盤引導。待出現“boot:”提示界面時,輸入“linux rescue”指令,如圖-4所示,按回車鍵。

圖-4

此后將逐步進入RHEL 5光盤提供的救援模式,大部分交互接受默認即可。

首先選擇要使用的語言,救援模式為命令行、不支持中文,因此接受默認的“English”,按Tab鍵定位到“Ok”后回車,如圖-5所示。

圖-5

然后選擇要使用的鍵盤類型,也接受默認設置,如圖-6所示。

圖-6

接下來選擇是否使用網絡,一般選擇“No”,如圖-7所示,否則根據提示設置好網絡參數即可。

圖-7

再接下來會嘗試自動查找待修復的Linux系統,如果找到的話會自動將根分區掛載到光盤臨時系統的/mnt/sysp_w_picpath目錄。這里因為MBR損壞而無法讀取分區表,所以肯定是找不到的啦,接受默認的“Continue”繼續或“Skip”跳過都可以,如圖-8所示。

圖-8

提示是否初始化磁盤并刪除所有數據時(如果有多塊磁盤會提示多次),均選擇“No”,如圖-9所示。

圖-9

找不到待修復的Linux系統時,會提示用戶知曉,如圖-10所示,回車確認即可。

圖-10

最終用戶將獲得一個在內存中運行的臨時Shell環境,如圖-11所示,從而可以執行大部分系統管理命令,進一步完成各種修復任務。

圖-11

04.在救援模式下通過備份文件修復MBR

創建掛載點文件夾,并掛載存放備份文件的/dev/sdb1分區,如圖-12所示,確認備份文件。

圖-12

使用dd命令執行恢復,讀取備份文件sda.mbr,覆蓋磁盤/dev/sda的第一個扇區,如圖-13所示。

圖-13

完成后,執行exit退出臨時Shell環境,系統將會自動重啟,如圖-14所示。重啟后原有Linux系統即可恢復正常。

圖-14

注意:萬一重啟后出現“GRUB_”提示符后停止、仍然無法進入系統,如圖-15所示,請參考接下來的GRUB修復操作。

圖-15

2)模擬GRUB文件丟失故障,并執行修復

01.??備份grub.conf配置文件,破壞GRUB引導程序

在正常的Linux操作系統中,轉移grub.conf配置文件并重啟后可模擬引導故障,或者像前一節的MBR示例中,有時恢復不完整也會出現異常,癥狀如圖-15所示。

如果是手動轉移grub.conf配置文件,可參考以下操作:

[root@svr5 ~]# mv/boot/grub/grub.conf /boot/grub/grub.conf.bak

//轉移grub.conf文件

[root@svr5 ~]# ls -lh/boot/grub/grub.conf//確認轉移結果

ls: /boot/grub/grub.conf:沒有那個文件或目錄

[root@svr5 ~]# reboot//重啟系統

重啟后會停滯在“grub>”提示符,因找不到內核等引導文件而無法進入系統。這個屬于MBR扇區中的引導程序好使,但找不到有效的啟動配置:

grub>//grub啟動配置丟失后,啟動時的停滯提示

02.??重建GRUB引導程序、恢復grub.conf配置文件

參考前一節以RHEL 5光盤啟動,并進入“linux rescue”救援模式。注意當提示是否探測(如圖-8所示)待修復的操作系統時,選擇“Continue”,找到并掛載成功后會提示用戶確認,如圖-16所示。

圖-16

這樣在修復時就可以直接到/mnt/sysp_w_picpath找到原來Linux的根目錄了。

在救援模式的臨時Shell環境下,執行“chroot /mnt/sysp_w_picpath”切換到待修復Linux的根環境,然后從備份恢復grub.conf配置文件,并執行“grub-install /dev/sda”在磁盤sda上重建GRUB引導程序,如圖-17所示。

圖-17

確認修復完畢后,執行兩次exit(先退出chroot環境、再退出救援模式),系統將會自動重啟,如圖-18所示。重啟后原有的Linux系統即可恢復正常。

圖-18

3)模擬EXT3分區超級塊故障,并執行修復

重新進入修復好的Linux系統,選擇/dev/sdb1做超級塊破壞實驗,了解相關的故障現象及修復辦法。

01.備份/dev/sdb1的超級塊

理論上此步驟可不做,保險起見還是做一下(必要時,其中的文檔最好也備份),萬一后面修復不好還有機會還原。若要破壞EXT3文件系統的超級塊,一般將前4個扇區dd清零就差不多了,所以備份也保存這4個塊:

[root@svr5 ~]# dd if=/dev/sdb1of=/root/sdb1.sblock count=512 count=4

4+0 records in

4+0 records out

2048 bytes (2.0 kB) copied, 4.5e-05seconds, 45.5 MB/s

[root@svr5 ~]# ls -l /root/sdb1.sblock???????????? //確認備份文件

-rw-r--r-- 1 root root 2048 10-15 17:31/root/sdb1.sblock

02.破壞/dev/sdb1的超級塊

使用dd命令將/dev/sdb1的前4個扇區清零:

[root@svr5 ~]# dd if=/dev/zero of=/dev/sdb1count=512 count=4

4+0 records in

4+0 records out

2048 bytes (2.0 kB) copied, 2.7e-05 seconds,75.9 MB/s

然后卸載/dev/sdb1,嘗試重新掛載到/home時將會失敗,因為超級塊被破壞而導致無法識別該設備上的文件系統:

[root@svr5~]# umount /dev/sdb1????????????????????//若已經掛載,則先卸載

[root@svr5 ~]# mount/dev/sdb1 /home???????????????? //重新掛載失敗

mount: you must specify the filesystem type

03.修復建立在/dev/sdb1上的EXT3文件系統

使用fsck命令可執行修復,通過“-t ext3”指定文件系統類型、“-y”自動對出現的交互選擇“yes”確認:

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

Couldn't find ext2 superblock, tryingbackup blocks...

/dev/sdb1: recovering journal

fsck.ext3: unable to set superblock flagson /dev/sdb1

執行第2次修復(第1次因塊數據不完整,可能只修復部分):

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

/dev/sdb1 was not cleanly unmounted, checkforced.

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

Free blocks count wrong for group #2(32257, counted=32249).

Fix? yes

Free blocks count wrong for group #3(31232, counted=31224).

Fix? Yes

.. ..

Directories count wrong for group #143 (0,counted=4).

Fix? yes

Free inodes count wrong (2443189, counted=2443058).

Fix? yes

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED*****

/dev/sdb1:142/2443200 files (1.4% non-contiguous), 125963/4885760 blocks

根據實際情況,可能還需要再執行幾次fsck,直到最后提示“clean”為止,表示該文件系統已經完好無損:

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

/dev/sdb1: clean, 142/2443200 files,125963/4885760 blocks

檢查完畢后,再次將其掛載到/home/目錄,確認掛載結果:

[root@svr5 ~]# mount /dev/sdb1 /home???????????????? //掛載成功

[root@svr5 ~]# ls/home?????????????????????? ??????//查看掛載的目錄內容

aquota.group kdev nick pingpingsda.mbr-20131015 vina

aquota.user kenthy obama rsync.test stu20zengye

hunter lost+found pangpang sda.mbr stu21

04.增加單用戶模式密碼

在啟動項前增加但用戶模式密碼

[root@RHEL5 ~]# vim /boot/grub/grub.conf

hiddenmenu

password 123456

titleRed Hat Enterprise Linux Server (2.6.18-348.el5)

4)系統文件丟失(/etc/inittab)

1)備份/etc/inittab文件

[root@RHEL5~]#cp /etc/inittab? /root/

2)刪除/etc/inittab文件

[root@RHEL5~]#rm -rf /etc/inittab

3)重啟、查看故障現象(INIT:No inittab file found)

4)修復此故障

a)進光盤救援模式

boot:linux rescue

b)chroot? /mnt/sysp_w_picpath

Sh-3.2#chroot?/mnt/sysp_w_picpath

c)檢查/etc/inittab文件屬于哪個包

Sh-3.2#rpm -qf /etc/inittab

initscripts-8.45.42-1.el5_8.1

d)將RHEL5.9光盤設備掛載到/mnt/dvd/

Sh-3.2#mkdir /mnt/dvd

Sh-3.2#mount /dev/sr0(hdc) /mnt/dvd

e)根據步驟c查詢結果,從光盤掛載點安裝對應的包

Sh-3.2#rpm -ivh --force

/mnt/dvd/Server/initscripts-8.45.42-1.el5_8.1.x86_64.rpm

Preparing...??????????? ?###########################################[100%]

1:initscripts??????????? ###########################################[100%]

f)exit 退出chroot環境

Sh-3.2#exit

g)exit 退出救援模式,自動重啟、修復完成

Sh-3.2#exit

01.磁盤或分區的壞道檢測

故障現象

--讀取磁盤數據時,發出異常聲響

--訪問某個文件時,讀取出錯或提示文件損壞

--新建立的分區無法執行格式化

--讀寫該磁盤時頻繁司機

1)檢查分區/dev/sda1是否存在壞道

[root@RHEL5 ~]# badblocks -sv /dev/sdb

Checkingblocks 0 to 20971520

Checkingfor bad blocks (read-only test):??????????????0/?? done

Passcompleted, 0 bad blocks found.

02.誤刪除文件恢復

1.安裝extundelete 軟件包

yum -y groupinstall開發工具 開發庫 ??//安裝開發工具

./configure ????????????????????????????????????????? //配置

ls

make && make install?????????????????????????????? //編譯安裝

echo $??????????????????????????????????????????????????????? //查看狀態

cd

rm /boot/vmlinuz-2.6.18-348.el5 ????? //刪除測試

Umount? /boot

extundelete --inode 2 /dev/sda1???????? //查看可恢復文件

extundelete --restore-all /dev/sda1??? //回復所有可恢復文件

ls RECOVERED_FILES/????????????????????????????????????? //查看恢復目錄

Mount /dev/sda1 /boot

mv RECOVERED_FILES/vmlinuz-2.6.18-348.el5? /boot/ //移動刪除文件

ls /boot/

5)i節點測試

i節點耗盡驗證(盡管有磁盤空間,但已無法寫入文件)

建一個小分區(40MB),

格式化:mkfs -text3 /dev/sdb10

|-->創建超級塊(superblock)—— inode數量、blocks數量

查看超級塊:tune2fs -l /dev/sdb10

快速消耗i節點資源:

mkdir? /mnt/testdir

mount? /dev/sdb10? /mnt/testdir

for? i? in $(seq 15000) ; do? touch?"/mnt/testdir/file$i.txt"?;? done

|-->設一個超過可用i節點數量的數值

** seq命令用來生成一個數字序列,for是一個循環語句(Shell課程會詳細介紹)

** inode,i節點—— 檔案編號,每一個文件都需要

**文件名 --> i節點 --> 文件內容

6)wget下載整個網站:

wget?-crpk -np?http://www.lfs.org.cn/book/index.html

選項說明:

-r,--recursive:遞歸下載所有鏈接

-p,--page-requisites:包括頁面顯示必需的目標

-k,--convert-links:下載完成后轉換鏈接目標以便本地瀏覽

-np,--noparent:只向下遞歸,防止下載父級鏈接或外部鏈接等網頁對象

-c,--continue:支持斷點續傳

-t,--tries=:指定重試次數

總結

以上是生活随笔為你收集整理的linux 系统盘无法ls,系统故障排除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。