Linux救援模式之應用篇

掛載并訪問文件系統

1. 首先識別分區

fdisk -l       # 查看所有磁盤和分區
lsblk          # 以樹狀結構查看塊設備
blkid          # 查看分區的UUID和文件系統類型

2. 創建掛載點并掛載分區

mkdir /mnt/rescue  # 創建掛載點# 掛載根分區(根據你實際的根分區設備)
mount /dev/sda1 /mnt/rescue  
# 示例,sda1替換為根分區# 如果需要,掛載其他重要分區
mount /dev/sda2 /mnt/rescue/boot
# 掛載/boot分區
mount /dev/sda3 /mnt/rescue/home
# 掛載/home分區

3. 掛載必要的虛擬文件系統(如果要chroot)

mount --bind /dev /mnt/rescue/dev
mount --bind /proc /mnt/rescue/proc
mount --bind /sys /mnt/rescue/sys

4. 訪問文件

現在你可以:

直接瀏覽掛載點下的文件:

ls /mnt/rescue/home/yourusername

或者切換到原系統環境(chroot):

chroot /mnt/rescue

其他情況的處理方式

如果使用Live CD/USB進入救援模式

步驟基本相同,但可能需要先安裝工具:

apt-get update && apt-get install e2fsprogs  # Debian/Ubuntu
yum install e2fsprogs                       # RHEL/CentOS

對于LVM分區

vgscan          # 掃描卷組
vgchange -ay    # 激活卷組
lvdisplay       # 顯示邏輯卷
mount /dev/mapper/vgname-lvname /mnt/rescue

對于加密分區(LUKS)

cryptsetup luksOpen /dev/sdaX secret
# 然后掛載解密后的設備(通常是/dev/mapper/secret)
mount /dev/mapper/secret /mnt/rescue

注意事項

  1. 掛載時最好使用只讀模式先檢查:
mount -o ro /dev/sda1 /mnt/rescue
  1. 如果文件系統損壞,先修復再掛載:
fsck /dev/sda1
  1. 操作完成后記得卸載:
umount -R /mnt/rescue

檢查與修復文件系統

檢查文件系統

對于ext2/ext3/ext4文件系統

# 首先卸載文件系統(如果已掛載)
umount /dev/sdXN# 檢查文件系統錯誤
fsck -y /dev/sdXN
# 其中sdXN是分區標識,如sda1

對于XFS文件系統

xfs_repair /dev/sdXN

對于Btrfs文件系統

btrfs check --repair /dev/sdXN

修復文件系統

超級塊損壞(ext文件系統):

# 查找備份超級塊
mke2fs -n /dev/sdXN
# 使用備份超級塊修復
fsck -b 32768 /dev/sdXN

日志文件損壞:

# 清除日志(ext文件系統)
tune2fs -j /dev/sdXN

強制檢查:

fsck -f /dev/sdXN

修復后操作

  1. 重新掛載文件系統檢查修復結果

  2. 如果有必要,更新initramfs:

mount /dev/sdXN /mnt
chroot /mnt
update-initramfs -u
  1. 重啟系統驗證修復效果

注意事項

  • 修復前盡量先備份重要數據

  • 如果根文件系統損壞,可能需要使用live CD/USB

  • 某些嚴重損壞可能需要從備份恢復

  • 對于SSD,頻繁運行fsck可能影響壽命

修復GRUB引導

1. 進入救援模式

2. 掛載根分區

找到根分區(通常是 /dev/sda1 或 /dev/nvme0n1p2,具體取決于磁盤類型和分區方案):

fdisk -l

掛載根分區到 /mnt:

mount /dev/sdXn /mnt

(將 sdXn 替換為根分區,如 /dev/sda2)

掛載必要的虛擬文件系統(如果系統是UEFI啟動,還需掛載EFI分區):

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

對于EFI分區(通常是 /dev/sda1):

mount /dev/sdX1 /mnt/boot/efi

3. Chroot 到原系統

切換根目錄到原系統環境:

chroot /mnt

4. 重新安裝GRUB

BIOS模式:

grub-install /dev/sdX

(sdX 是磁盤設備,如 /dev/sda,不帶分區號)

UEFI模式:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

5. 更新GRUB配置

update-grub

或:

grub-mkconfig -o /boot/grub/grub.cfg

6. 退出并重啟

退出chroot環境:

exit

卸載所有掛載的分區:

umount -R /mnt

重啟系統:

reboot

常見問題解決

  • 如果GRUB安裝失敗:
  • 檢查是否掛載了正確的分區(尤其是 /boot 或 /boot/efi)。
  • 確保磁盤設備名稱正確(如 /dev/sda 而非 /dev/sda1)。
  • 雙系統用戶:
  • 如果Windows覆蓋了GRUB,可能需要重復上述步驟重新安裝GRUB。

重置root密碼

1. 進入救援模式

重啟系統,在 GRUB 啟動菜單界面(若未顯示,啟動時按住 Shift 或 Esc)。

選擇默認內核項,按 e 進入編輯模式。

找到以 linux 或 linux16 開頭的行,在行尾添加:

rw init=/bin/bash

對于部分系統(如 CentOS 7),可能需要替換為 rw init=/sysroot/bin/sh。

按 Ctrl+X 或 F10 啟動到單用戶模式(救援環境)。

2. 掛載文件系統(如需)

如果直接進入 bash 提示符(如 Ubuntu),可跳過此步。

對于需要 chroot 的系統(如 CentOS/RHEL):

mount -o remount,rw /         # 確保根文件系統可寫
chroot /sysroot               # 切換到原系統環境

3. 重置密碼

執行以下命令重置 root 密碼:

passwd root

輸入兩次新密碼。

4. 處理 SELinux(僅限啟用 SELinux 的系統)

如果系統使用 SELinux(如 CentOS/RHEL),需更新文件系統標簽:

touch /.autorelabel  # 下次啟動時重新標記 SELinux 上下文

5. 重啟系統

exec /sbin/init   # 或直接 reboot

或按 Ctrl+Alt+Del,或執行:

sync; reboot -f

注意事項

  • 物理訪問權限:需直接操作服務器或虛擬機控制臺。

  • 云服務器:部分云平臺(如 AWS、阿里云)需通過控制臺使用自定義鏡像或用戶數據腳本重置密碼。

  • 文件系統加密:若 /etc 加密(如 LUKS),需先解密。

替代方案(已知 root 分區)

如果無法通過 GRUB 編輯,可使用 Live CD/USB 啟動后掛載根分區:

mkdir /mnt/root
mount /dev/sdXn /mnt/root    # sdXn 為根分區(如 /dev/sda1)
chroot /mnt/root
passwd root

通過以上步驟,可強制重置 root 密碼。確保操作后系統安全性,避免未授權訪問。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91170.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【學習路線】游戲開發大師之路:從編程基礎到獨立游戲制作

前言 游戲開發是一個充滿創意和技術挑戰的領域,它融合了編程、美術、音效、設計等多個學科。隨著游戲產業的蓬勃發展,游戲開發已成為最具吸引力的技術職業之一。本文將為您提供一條從零基礎到游戲開發大師的完整學習路線,涵蓋編程基礎、游戲引…

宇樹 G1 部署(九)——遙操作控制腳本 teleop_hand_and_arm.py 分析與測試部署

首先,我使用的是 v1.0 版本,宇樹最近發力了更新的很快:xr_teleoperate-1.0 teleop_hand_and_arm.py 支持通過 XR 設備(比如手勢或手柄)來控制實際機器人動作,也支持在虛擬仿真中運行。可以根據需要&#x…

第十一天:不定方程求解

每日一道C題:不定方程求解 問題:給定正整數a,b,c。求不定方程 axbyc 關于未知數x和y的所有非負整數解組數。 要求:輸入一行,包含三個正整數a,b,c,兩個整數之間用單個空格…

ElasticStack技術棧概述及Elasticsearch8.2.2集群部署并更換JDK版本為openjdk-17

ElasticStack 一、引言 在當今數據驅動的時代,如何高效地收集、處理和分析日志及其他類型的數據,已成為企業構建可觀測性和運維能力的重要課題。Elastic Stack(早期稱為 ELK Stack)是一套由 Elastic 公司推出的開源技術棧&#xf…

Doris中文檢索效果調優

一、問題描述 原來的日志系統使用的是ES作為底層存儲,后來因為數據量大了之后,出現了寫入存在阻塞和查詢效率變低的問題。后來決定切換到Doris數據庫。 Doris的優勢根據公開資料來看,它在寫入性能、查詢效率和存儲成本上,都優于…

CDN怎么加速跟防御網站攻擊呢?

**CDN(內容分發網絡)**通過分布式架構和智能路由技術,不僅可以加速網站內容訪問,還能有效防御多種網絡攻擊(如DDoS、SQL注入等)。以下是 CDN 如何實現加速和防御的詳細解析:1. CDN 如何加速網站…

【Linux】批量處理多個用戶的 sudo 權限問題

要批量處理多個用戶的 sudo 權限問題,有以下幾種高效方法: 方法一:通過用戶組批量授權(推薦) 這是最安全便捷的方式,只需將用戶加入已有 sudo 權限組(如 wheel 或 sudo):…

云原生MySQL Operator開發實戰(五):擴展與生態系統集成

引言 在前四篇文章中,我們構建了一個功能完備的MySQL Operator,涵蓋了從基礎架構到生產部署的全過程。本文將作為本系列的收官之作,重點探討Operator的擴展能力和與云原生生態系統的深度集成,包括自定義插件系統、與CI/CD流水線的集成、服務網格支持以及與云服務的無縫對接…

【MySQL】數據庫的簡單介紹

1.數據庫是什么簡單來說,數據庫是用于存儲數據和管理數據的軟件。數據庫可以提供遠程服務,通過遠程連接來使用數據庫,因此數據庫也被稱為數據庫服務器!2.為什么要使用數據庫存儲數據用文件就可以了,為什么還要弄一個數…

uniapp,uview icon加載太慢了,老是顯示叉叉,將遠程加載改到本地加載。

處理方式:將遠程字體文件下載到本地進行加載。app.vue。font-face {font-family: uicon-iconfont;src: url(./static/fonts/font_2225171_8kdcwk4po24.ttf) format(truetype);font-weight: normal;font-style: normal;}下載文件:從node_modules找文件u-i…

Python爬蟲01_Requests第一血獲取響應數據

引入requests包,發起請求并獲取響應數據。 import requestsif __name__ "__main__":#step 1:指定urlurl http://www.7k7k.com/#step 2:發起請求,get方法會返回一個響應對象response requests.get(url)#step 3&#x…

Linux定時器和時間管理源碼相關總結

基礎可參考: Linux內核定時器相關內容總結-CSDN博客 定時器來源 定時器也是來源于芯片的硬件定時器,屬于內部外設,有些可能也會用外部定時器,不管咋樣,都屬于芯片外設,既然是外設,那么我們也要編…

JDK17 新特性跟學梳理

JDK17 新特性跟學梳理JDK17 背景介紹一、JDK 17對Switch語句的增強二、字符串拼接三、強制轉換四、密封類Sealed Classes五、Record類六、優化空指針異常信息七、ZGC垃圾收集器八、JVM常量API九、重寫Socket底層API十、JDK飛行記錄事件流十一、EdDSA簽名算法十二、隱藏類十三、…

ESP8266 AT 固件

ESP-12E 是一種常見的 ESP8266 模塊,通常帶有 4MB(32Mbit)閃存,非常適合刷寫 最新版 AT 固件。 ? 適用于 ESP?12E 的 AT 固件推薦 固件來源固件版本特點Espressif 官方v2.2.1.0 (ESP8266 IDF AT)官方最新版,基于 RT…

Node.js(三)之Express

Express 目錄 Express 九、初識Express 9.1 Express簡介 1. 什么是 Express 2. 進一步理解Express 3. Express能做什么 9.2 Express的基本使用 1. 安裝 2. 創建基本的Web服務器 3. 監聽GET請求 4. 監聽POST請求 5. 把內容響應給客戶端 6. 獲取URL中攜帶的查詢參數…

IKAnalyzer分詞插件使用方法

前言 隨著越來越多的大數據網站崛起,特別是一些私人網站都提供了站內搜索,有些人會用elastsearch來實現站內搜索的目的,但是一些小站并沒有那么大的數據提供搜索,在安裝一個 elastsearch 服務未免有點浪費? 因此&#…

ESB 在零售,物流,制造,保險,醫療行業的應用方式

企業服務總線(Enterprise Service Bus, ESB)是一種基于中間件的集成模式,用于實現不同系統之間的集成與通信。ESB通過標準化接口、消息路由、協議轉換和數據轉換等功能,幫助企業實現系統間的無縫對接,提高業務敏捷性。…

vcsa6.7-重置root密碼

客戶反饋vc無法登錄了,登錄環境一看,報錯如下首先想到是證書到期了,瀏覽器確認,確實是證書到期了準備ssh登錄才發現root密碼忘記了,那就先重置root密碼,1、登錄esxi主機找到vcsa6.7機器關機做快照2、開機到…

C++ 賦值與交換法則

在C中,賦值與交換法則(Assignment and Swap Idiom)通常指的是在實現類的賦值操作符(operator)時,結合拷貝構造和交換操作來確保強異常安全保證(Strong Exception Safety Guarantee)的…

Ambari中文漢化

Ambari-ZH 當前Ambari的漢化版本為2.7.4,漢化采用對該版本的ambari源碼直接修改的方式進行,如有翻譯不當之處,請批評指正 一、使用方法如下: 方式一:直接下載 下載地址:https://github.com/ukayunnuo/Ambari-2.7.x-zh/releases/download/…