/boot/grub/device.map【设备映射】

本文介绍如何使用grub-install命令将GRUB安装到指定硬盘的主引导记录(MBR)中,并解释了GRUB如何通过设备对应文件(device.map)来识别BIOS磁盘编号与Linux设备之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

grub-install 安装 GRUB 在第一个硬盘的 MBR:

# grub-install '(hd0)'

grub-install 会先搜寻设备对应的文件(/boot/grub/device.map),借此判断 BIOS 磁盘编号与Linux 设备之间的对应关系。

 

设备对应文件的每一行各描述一个“BIOS 磁盘 - Linux 设备” 对应关系,其格式如下:

(disk)  /dev/device

 

例如:

假设你的系统上有一个软驱与一块 SCSI 硬盘,则它们的对应关系应该描述如下:

(fd0)  /dev/fd0

(hd0)  /dev/sda

转载于:https://www.cnblogs.com/ivantang/p/4677516.html

### 如何正确处理或修复 `/boot/grub2/grub.cfg` 文件 #### 安全删除或修改 `grub.cfg` 在 Linux 系统中,GRUB 是主要的引导加载程序之一。其配置文件位于 `/boot/grub2/grub.cfg` 或类似的路径上。此文件由 GRUB 自动生成,因此不建议手动编辑它。如果需要调整 GRUB 的行为,可以通过修改源文件并重新生成配置来实现。 要安全地删除或修改 `grub.cfg` 文件: 1. **备份现有配置** 在操作之前,始终应创建一份当前配置文件的副本,以便在出现问题时恢复原始状态。 ```bash cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup ``` 2. **通过源文件调整设置** 修改 GRUB 配置通常涉及更改 `/etc/default/grub` 和 `/etc/grub.d/` 中的相关脚本。这些文件定义了最终生成到 `grub.cfg` 的内容。例如,可以在 `/etc/default/grub` 中添加自定义参数: ```bash GRUB_CMDLINE_LINUX="rhgb quiet" ``` 3. **重新生成配置文件** 使用以下命令重新生成 `grub.cfg` 文件,这会覆盖旧版本的内容[^3]。 ```bash grub2-mkconfig -o /boot/grub2/grub.cfg ``` 4. **验证新配置** 可以预先查看即将写入的新配置内容,确保无误后再应用。 ```bash grub2-mkconfig | less ``` --- #### 解决与 `grub.cfg` 相关的引导问题 当 `/boot/grub2/grub.cfg` 被意外删除或损坏时,系统可能无法正常启动。以下是几种常见场景及其解决方案: 1. **未关闭电源即删除文件的情况** 如果是在运行中的系统中发现该文件丢失,则可以直接使用以下命令重建配置文件[^2]。 ```bash grub2-mkconfig -o /boot/grub2/grub.cfg ``` 2. **CentOS 7 特定注意事项** 对于 CentOS 7 用户来说,需要注意根分区的实际挂载位置(通常是 LVM 映射)。可通过以下命令确认实际设备名称,并将其用于 GRUB 设置[^4]。 ```bash df -h / ``` 输出类似于: ``` Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 12G 38G 24% / ``` 将上述信息反映至 `/etc/default/grub` 中的 `GRUB_CMDLINE_LINUX` 参数。 3. **Fedora 系统上的通用方法** Fedora 提供了一套标准化工具链来管理 GRUB 更新过程。遵循官方文档推荐的方式能够有效减少错误发生概率。 4. **救援模式下的修复流程** 当完全失去访问权限时,可借助安装介质进入救援模式完成修复工作。具体步骤如下: - 启动光盘/DVD 并选择 Rescue Mode; - 挂载目标磁盘分区; - 执行必要的 GRUB 工具指令。 --- ```python def regenerate_grub_config(): import subprocess try: # 备份原文件 backup_command = 'cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup' subprocess.run(backup_command, shell=True, check=True) # 查看预览 preview_command = 'grub2-mkconfig | less' subprocess.run(preview_command, shell=True, check=False) # 不抛异常 # 正式生成新的配置文件 generate_command = 'grub2-mkconfig -o /boot/grub2/grub.cfg' subprocess.run(generate_command, shell=True, check=True) return True except Exception as e: print(f'Error occurred: {e}') return False ``` --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值