Linux常見系統故障

来源:https://www.cnblogs.com/yuzly/archive/2019/04/04/10646007.html
-Advertisement-
Play Games

Linux常見系統故障 1.修複MBR扇區故障 2.修複GRUB引導故障 3./etc/inittab文件丟失 4.遺忘root用戶密碼 5.修複文件系統 6.磁碟資源耗盡故障 一、修複MBR扇區故障 1.關機添加一塊硬碟,開機查看硬碟設備分區列表,是否存在/dev/sdb設備信息 2.對新硬碟分區 ...


Linux常見系統故障

1.修複MBR扇區故障

2.修複GRUB引導故障

3./etc/inittab文件丟失

4.遺忘root用戶密碼

5.修複文件系統

6.磁碟資源耗盡故障

一、修複MBR扇區故障

1.關機添加一塊硬碟,開機查看硬碟設備分區列表,是否存在/dev/sdb設備信息

  

2.對新硬碟分區

2.1新建一個主分區

  

2.2新建一個擴展分區

  

2.3新建兩個邏輯分區,然後保存

  

3.查看sdb中分區列表信息

fdisk -l /dev/sdb

  

4.格式化文件系統,這裡暫時只格式化/dev/sdb1

mkfs -t ext4 /dev/sdb1

 

5.創建一個掛載點,掛載sdb1分區

mkdir /sdb1

mount /dev/sdb1 /sdb1

 

6.備份MBR扇區數據

dd if=/dev/sda of=/sdb1/sda.mbr.bak bs=512 count=1

  

7.模擬MBR被破壞的故障

dd if=/dev/zero of=/dev/sda bs=512 count=1

  

8.然後重啟系統,發現系統無法重啟

 

9.從備份文件中恢復MBR扇區

添加虛擬機與光碟的連接,重啟系統,自動進入如下界面,現在第三個(救援模式)

  

10.系統載入後,一直下一步,直到出現如下圖,選擇第一個

  

11.執行fdisk -l 能看到sdb1分區,看不到sda設備,因為sda設備的MBR被破壞(linux 系統的分區記錄存放在mbr中)

  

12.在急救模式下的虛擬磁碟中建立sdb1分區的掛載點目錄

mkdir  /sdb1

mount /dev/sdb1  /sdb1

dd if=/sdb1/sda.mbr.bak  of=/dev/sda bs=512 count=1

  

13.重啟系統,然後系統就能正常工作了

二、修複GRUB引導故障

1.備份grub.conf文件(建議備份到第2塊磁碟中)

mkdir  /backup

mount  /dev/sdb1  /backup

cp  /boot/grub/grub.conf  /backup/grub.conf.bak

  

2.模擬破環grub.conf文件

rm  -rf  /boot/grub/grub.conf

  

3.重啟系統,發現系統無法正常載入

  

4.進入救援模式,此時只能進入bios設置boot啟動順序,把光碟引導調整到前面,然後保存,此時系統會載入光碟

  

5.查看硬碟分區情況,此時可以看到兩個硬碟,因為grup配置文件損壞,但還是會成功載入分區記錄

  

6.在急救模式下的虛擬磁碟中建立sdb1分區的掛載點目錄,此時需要創建兩個掛載點,以及掛載sda1(grup文件所在分區)和sdb1(備份grup配置文件所在分區)

mkdir /backup(在急救模式下的虛擬磁碟中建立sdb1分區的掛載點目錄)

mkdir  /sda1(創建sda1分區的掛載點目錄)

mount  /dev/sdb1  /backup

mount  /dev/sda1  /sda1

cp  /backup/grub.conf.bak  /sda1/grub/grub.conf

  

7..重啟系統,然後系統就能正常工作了

三、/etc/inittab文件丟失

1.備份/etc/inittab文件

cp  /etc/inittab  /root/inittab.bak

  

2.模擬inittab文件丟失

rm  -rf  /etc/inittab

  

3.重啟系統進入文本命令模式,恢復inittab文件  #重新系統後,系統進入文本命令模式,因為運行級別配置文件(inittab)丟失

cp  /root/inittab.bak  /etc/inittab

   

4.重啟系統,然後系統就能正常進入圖形界面了

  

四、遺忘root用戶密碼

解決方法:引導進入單用戶模式,然後重設密碼

1.重啟系統,在引導界面按e鍵

  

2.在按e,進入然後選第二項

  

3.再按e進入,敲空格,輸入1,然後回車   #1代表單用戶模式

  

4.上一步,回車後又返回以前,按b,重新引導,然後就進入單用戶模式了,然後修改root用戶密碼

  

5.重啟系統,用修改過的密碼登錄

五、修複文件系統

故障原因:

              非正常關機、突然斷電、設備讀寫失誤等

              文件系統的超級塊(super-block)信息被破壞

故障現象

              無法向分區中讀取或寫入數據

              啟動後提示“Give root password for maintenance” (啟動硬碟super-block被破壞)

解決辦法:

根據提示輸入root口令,進入修複狀態

使用fsck命令進行修複

1. 模擬對/dev/sdb1分區的破壞操作

 dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

   

2. 檢查是否能掛載該分區

  

3.上圖提示報錯,沒有指定文件類型,那我們就添加文件類型,但是添加文件類型還是報錯,從下圖的報錯信息中可以看出,真正的原因是因為superblock(超級塊出現問題)

  

4. 對/dev/sdb1分區進行修複

fsck –y -t ext4 /dev/sdb1

  

5.再次掛載該分區 無錯誤提示,修複成功

  

六、磁碟資源耗盡故障

故障原因:

磁碟空間已被大量的數據占滿,空間耗盡

雖然還有可用空間,但文件數i節點耗盡

故障現象:

無法寫入新的文件,提示“… : 設備上沒有空間”

部分程式無法運行,甚至系統無法啟動

解決思路:

清理磁碟空間,刪除無用、冗餘的文件

轉移或刪除占用大量i節點的瑣碎文件

進入單用戶模式、急救模式進行修複

為用戶設置磁碟配額

1.這裡只測試文件節點耗盡

2.寫一個while 死迴圈,一直創建空文件,這裡以/boot/test為例

i=1

while [ 1 ]

do

 cd /boot/test

 touch "$i".txt

 let "i++"

done

3.沒有運行腳本之前的/boot/test目錄下的節點數

  

4.運行完腳本之後/boot/test目錄下的節點數已經用完,但是磁碟還有剩餘空間

  

5.此時在向/boot/test寫入數據,會提示失敗,雖然還有空間剩餘,這是因為Linux的安全存儲機制,只要節點數或者空間任何一個使用完,都不能再進行寫入數據

  

6.解決辦法,刪除占用大量i節點的瑣碎文件

這裡刪除/boot/test目錄下的所有文件,然後在寫入數據測試

rm -fr   /boot/test/*

  

7.磁碟配額

7.1. 磁碟限額需要安裝quota軟體包 yum install -y quota

7.2. 啟用文件系統的配額支持(添加usrquota、grpquota掛載參數)

mkdir /sdb1

chmod 777 /sdb1(為/sdb1授權) 

  

  

註:第一個欄位為被掛載的分區,第二個欄位為掛載的目錄,第三個欄位是被掛載的分區的文件系統類型,後面的幾個欄位是支持quota的參數。各欄位用空格分隔

reboot重啟系統(或mount -a讀取/etc/fstab文件,使重新掛載生效),重啟進入文本編輯界面按回車

7.3

mount  | tail -1(查看是否掛載成功)mount(查看是否掛載成功)

mount | grep /dev/sdb1

/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)

ls  /sdb1

lost+found

   

7.4檢測磁碟配額並創建配額文件 

quotacheck  -ugcv  /dev/sdb1

ls -l /sdb1/aquota.*(查看是否生成配額文件)

  

7.5編輯用戶和組帳號的配額設置(edquota命令)

edquota -u 用戶名(編輯用戶配額)

edquota -g 組名(編輯組配額)

例如:新建用戶和組

  

edquota -u zhangsan  編輯用戶配額

edquota -g students   編輯組配額

  

  

啟用、關閉文件系統的配額功能(quotaon、quotaoff命令)

quotaon  -ugv /sdb1

  

普通用戶對設置配額的分區(掛載目錄)具有寫入許可權

chmod  777  /sdb1

切換到啟用配額的用戶身份su  -  zhangsan

切換到設置配額的分區(掛載目錄)cd  /sdb1

 

創建指定數量的文件:使用touch命令,或cp命令

  

創建指定容量的文件:使用dd命令,或cp命令

rm  -rf  *.txt

  

關閉文件系統配額功能

 

 

 

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 實現代碼: " MasterChief.DotNet.ProjectTemplate.WebApi " 2. Demo Code: 3. Nuget : Install Package MasterChief.DotNet.ProjectTemplate.WebApi 4. 實現WebApi開 ...
  • 1.序列化啊 寶貝!! public string DataTableToJsonWithJsonNet(DataTable table) { string jsonString=string.Empty; jsonString = JsonConvert.SerializeObject(table ...
  • (第一次寫博客,好緊張!!!) 源碼地址:傳送門 項目中有很多緩存的需求,能自己定義緩存key和時間,能根據key去清理緩存。 網上找了一圈,有很多基於aop的緩存組件,但是都不滿足我的需求。故造了個輪子。 新建web項目 .net core mvc TestAopCache 安裝 AopCache ...
  • 填充背景色,一般可以選擇多種不同樣式來填充背景,包括填充為純色背景、漸變背景、圖片背景或者紋理背景等。下麵的內容將分別介紹通過C#來設置Excel中圖表背景色、以及圖表中的圖例背景色的方法。 使用工具:Spire.XLS for .NET dll引用:下載安裝後,註意在程式中添加引用Spire.Xl ...
  • 因公司有招聘大量普工需求,需要大量簡歷資源,直接從58買一份簡歷動輒幾塊到幾十塊,如果做精準少則1塊以上的點擊。而且收到的簡歷不太精準,應公司需求寫了一款自動發貼器。完全模擬人工發貼,經過一個月的測試。穩定性(不註意會出現封號等問題)和收到的簡歷量都達到了預期,基本一個賬號穩定在幾十封簡歷量。可切換 ...
  • 如何使用C# 操作存儲過程,執行sql語句? 閑話不多說,直接上代碼: /// <summary> /// Sql通用類 /// </summary> public class SqlHelper { 首先配置連接字元串 public static string connStr = Configur ...
  • 在Sqlserver資料庫中,如果查詢表中含有自增長Id列,一般會採用select Top的方式來數據的分頁操作。而實際上很多數據表設計的時候,不一定含有自增長Id列,那麼資料庫沒有Id自增列的時候要對數據分頁怎麼辦呢,此時則需要使用ROW_NUMBER()函數來對數據分頁,ROW_NUMBER() ...
  • 壓縮(makecab): 其中: /f 指定的c;\list.txt(路徑自定義)是你要進行壓縮的文件的列表,不能包含文件夾,在根文件下的子文件夾中不能包含相同文件名的文件,因為cab壓縮後不保留文件結構,否則會報錯(ERROR: Duplicate file name)。 list.txt 可以使 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...