Nor*_*sey 9 boot bootloader grub grub2
在 Debian Linux 机器上,我遇到了一个非常奇怪的情况,开机后,GRUB 失败并显示错误“没有这样的分区”,但是如果我按下重置按钮,它会正常启动。我正在尝试诊断情况,但我意识到我不知道哪个版本的引导加载程序安装在哪里? 我怎样才能知道? 也就是说,如何找出每个磁盘的 MBR 上安装了哪些引导加载程序,以及如何找出各个分区上安装了哪些第二阶段引导加载程序?
如果我不能确切地找出我有什么,我会满足于能够找出安装了哪个版本的 GRUB。
don*_*sti 14
您可以使用dd查看MBR 上是否安装了 GRUB(1 或 2):
dd if=/dev/sda bs=512 count=1 2> /dev/null | grep -q GRUB && echo "GRUB found"
Run Code Online (Sandbox Code Playgroud)
如果找到 GRUB 签名,则可以运行:
file -s /dev/sda
Run Code Online (Sandbox Code Playgroud)
如果输出类似于:
/dev/sda: x86 引导扇区;GRand 统一引导加载程序,stage1 版本 0x3.......
那么你已经在 MBR 上安装了 GRUB1。如果没有提到 Grub,像这样:
/dev/sda: x86 引导扇区;分区 1:ID=0x83,活动,starthead 32,startsector 2048........
那么您在该磁盘的 MBR 上安装了 GRUB2。
要查找基本的 GRUB 文件(GRUB1 为“stages”,GRUB2 为“images”):
GRUB1:
配置文件:
find / -name menu.lst
Run Code Online (Sandbox Code Playgroud)
阶段:
find / -name stage1
Run Code Online (Sandbox Code Playgroud)
或者
find / -name stage2
Run Code Online (Sandbox Code Playgroud)
GRUB2:
配置文件:
find / -name grub.cfg
Run Code Online (Sandbox Code Playgroud)
图片:
find / -name core.img
Run Code Online (Sandbox Code Playgroud)
或者
find / -name boot.img
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用http://bootinfoscript.sourceforge.net,它为您提供有关启动状态的详细信息,并告诉您安装了哪个引导加载程序,并结合了许多与启动相关的详细其他信息。它在 debian 中作为包 boot-info-script 提供。
归档时间: |
|
查看次数: |
25359 次 |
最近记录: |