惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
S
Security Affairs
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
C
Cisco Blogs
T
Tor Project blog
The Hacker News
The Hacker News
雷峰网
雷峰网
MyScale Blog
MyScale Blog
博客园 - 司徒正美
AWS News Blog
AWS News Blog
GbyAI
GbyAI
Y
Y Combinator Blog
D
DataBreaches.Net
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
T
Tenable Blog
L
LangChain Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
The Cloudflare Blog
A
About on SuperTechFans
IT之家
IT之家
F
Fortinet All Blogs
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
W
WeLiveSecurity
A
Arctic Wolf
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog

公牛博客

《观局》——乡野猪噜噜 《观局》——乡野猪噜噜 《观局》——乡野猪噜噜 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《观局》——乡野猪噜噜 – 公牛博客 《送子》– 乡野猪噜噜 《行旅》– 乡野猪噜噜 《观海》– 乡野猪噜噜 《清欢》– 乡野猪噜噜 《阅兵》– 乡野猪噜噜 《离职》– 乡野猪噜噜 《本爻令》-- 敬梦想 《春游》-- 乡野猪噜噜 北京新公司注册开办流程、免费地址、银行开户 《本爻》—乡野猪噜噜 《好友》—乡野猪噜噜 毛主席诗词集锦与深度解析(五) 毛主席诗词集锦与深度解析(四) 毛主席诗词集锦与深度解析(三) 毛主席诗词集锦与深度解析(二) 毛主席诗词集锦与深度解析(一) Linux 系统网络连接不稳定,如何优化? Linux 系统网络连接不稳定,如何优化? Linux 系统无法连接网络,如何排查? Linux 系统启动提示 "Error loading operating system",如何解决? Linux 系统启动提示 "No such device",如何排查? Linux 系统启动提示 "Missing operating system",如何解决? Linux 系统启动提示 "Invalid partition table",如何修复? Linux 系统启动提示 "Filesystem error",如何修复? Linux 系统启动提示 "Kernel panic",如何分析? 《国际风云》2024年12月13日·午间看点 德国,加布伦茨的拉科茨桥 捕捉巴黎圣母院重建过程中的“宏伟和美丽” 《国际风云》2024年12月13日·早间看点
Linux 系统启动提示 "Boot device not found",如何排查?
大嘴 · 2025-01-06 · via 公牛博客

引言

当 Linux 系统启动时出现 “Boot device not found” 提示,通常意味着引导加载程序(如 GRUB)无法找到指定的启动设备。这可能是由于设备路径错误、分区表损坏、文件系统问题或硬件故障引起的。本文将详细介绍如何排查和解决此类问题,帮助您恢复系统正常运行。


一、理解 “Boot device not found” 的常见原因

  1. 设备路径错误
  • BIOS/UEFI 配置中指定的启动设备路径错误。
  • GRUB 配置文件中指定的设备路径(如 hd0,msdos1)与实际设备不匹配。
  1. 分区表损坏
  • 分区表(如 MBR 或 GPT)损坏,导致系统无法识别启动分区。
  1. 文件系统问题
  • 启动分区(如 /boot 或根分区)的文件系统损坏。
  • 启动分区未正确挂载。
  1. 硬件故障
  • 硬盘物理损坏或数据线接触不良。

二、排查与修复步骤

1. 检查 BIOS/UEFI 设置

进入 BIOS/UEFI 设置界面,检查启动顺序:

  • 确认启动设备(如硬盘、USB、CD/DVD)是否在启动顺序列表中。
  • 如果启动设备未列出,检查硬盘连接是否正常。
2. 进入 Live 环境

使用 Linux Live USB 或 CD 启动系统,以便在不挂载硬盘的情况下进行修复。

3. 检查分区表

使用 fdiskgdisk 检查分区表:

sudo fdisk -l /dev/sda
  • 确认分区表类型(MBR 或 GPT)。
  • 检查是否存在启动分区(如 /dev/sda1/dev/sda2)。
4. 检查文件系统

挂载启动分区并检查文件系统:

sudo mount /dev/sda1 /mnt
ls /mnt
  • 确认 /boot 或根分区中的文件是否存在。
  • 如果文件系统损坏,使用 fsck 修复:
  sudo fsck -y /dev/sda1
5. 修复 GRUB 配置

如果文件系统正常,可能需要修复 GRUB 配置:

sudo grub-install /dev/sda
sudo update-grub
6. 重建分区表

如果分区表损坏,可以尝试重建分区表。注意:此操作会丢失所有分区信息,需谨慎使用。

sudo fdisk /dev/sda
  • 输入 o 创建新的 MBR 分区表,或 g 创建新的 GPT 分区表。
  • 使用 n 创建新分区,并按照提示设置分区大小和类型。
  • 使用 w 保存更改并退出。
7. 恢复数据

如果分区表修复后数据丢失,可以尝试使用数据恢复工具(如 testdisk)恢复:

sudo apt-get install testdisk
sudo testdisk /dev/sda
  • 按照提示选择分区类型和恢复操作。
8. 检查硬件状态

使用 smartctl 检查硬盘健康状态:

sudo smartctl -a /dev/sda
  • 关注 “SMART overall-health self-assessment test result” 是否为 PASSED。
  • 如果发现坏道或硬件故障,建议备份数据并更换硬盘。

三、常见错误场景与解决方案

场景 1:GRUB not found
  • 原因:GRUB 未正确安装或配置文件丢失。
  • 解决:重新安装 GRUB:
  sudo grub-install /dev/sda
  sudo update-grub
场景 2:Partition table is corrupted
  • 原因:分区表损坏。
  • 解决:使用 fdiskgdisk 修复分区表。
场景 3:Filesystem is corrupted
  • 原因:启动分区文件系统损坏。
  • 解决:使用 fsck 修复文件系统。
场景 4:Hardware failure
  • 原因:硬盘物理损坏。
  • 解决:更换硬盘并恢复数据。

四、预防措施

  1. 定期备份数据
  • 使用 rsynctar 创建完整系统备份。
  • 将重要数据备份至外部存储或云服务。
  1. 监控硬件健康
  • 启用 SMART 监控硬盘健康状态。
  • 定期检查硬盘温度和使用寿命。
  1. 避免非法操作
  • 使用兼容的分区工具(如 fdiskgdisk)。
  • 避免在硬盘读写过程中断电或强制重启。
  1. 配置冗余存储
  • 使用 RAID 或 LVM 提供存储冗余,防止单点故障。

五、附录

1. 常用工具
  • fdisk:用于管理 MBR 分区表。
  • gdisk:用于管理 GPT 分区表。
  • testdisk:用于恢复丢失的分区表和数据。
  • smartctl:用于检查硬盘健康状态。
2. 参考文档
3. 示例命令
  • 备份 MBR 分区表:
  sudo sfdisk -d /dev/sda > sda-partition-table.bak
  • 恢复 MBR 分区表:
  sudo sfdisk /dev/sda < sda-partition-table.bak
  • 备份 GPT 分区表:
  sudo sgdisk --backup=sda-gpt-table.bak /dev/sda
  • 恢复 GPT 分区表:
  sudo sgdisk --load-backup=sda-gpt-table.bak /dev/sda

总结

“Boot device not found” 是 Linux 系统启动过程中常见的错误,通常由设备路径错误、分区表损坏或文件系统问题引起。通过使用 fdiskgdisktestdiskfsck 等工具,可以修复分区表、文件系统和 GRUB 配置,恢复系统正常运行。为了预防类似问题,建议定期备份数据、监控硬件健康并避免非法操作。

0