十三、grub.cfg修复

wangzhaoyang 发布于 9 天前 21 次阅读 网络工程中的Linux系统 无~ 1238 字



GRUB 配置文件丢失或错误修复及设备命名规则

1. GRUB 配置文件丢失或错误修复

故障描述

在 Linux 系统中,如果 grub.cfg 配置文件丢失或损坏,可能导致无法正常引导系统。这种情况通常发生在系统更新、文件损坏或不正确的磁盘操作后。

修复思路

  1. 手动引导系统
    使用 GRUB 命令行手动引导系统,重新生成 grub.cfg 文件。
  2. 手动引导步骤
  • 在 GRUB 引导菜单中,选择 Advanced options for Ubuntu(或相应的发行版)。
  • e 编辑引导参数。
  • 使用下面的命令手动设置根文件系统并引导内核。 步骤示例:
  • 输入以下命令以指定 boot 所在的分区: set root='hd0,msdos1' 如果有多个磁盘或分区,使用相应的设备名称,如 hd0, hd1, nvme0n1 等,来识别正确的磁盘。
  • 输入以下命令引导内核: linux /vmlinuz-5.14-xxx ro root=/dev/sda1 这里,/dev/sda1 是你选择的根分区,可能是 /dev/nvme0n1p1 或其他设备。
  • 输入以下命令来加载初始 RAM 磁盘: initrd /initramfs-5.14-xxx
  • Ctrl+x 启动系统或者输入 boot引导系统 boot
  1. 修复 grub.cfg 文件
  • 登录到系统后,重新生成 GRUB 配置文件。
    bash sudo grub-mkconfig -o /boot/grub/grub.cfg
  • 如果使用的是 UEFI 引导模式,可能需要运行以下命令:
    bash sudo grub-install --efi-directory=/boot/efi
  • 重新生成后,重新启动系统检查是否能正常启动。

2. Linux 设备命名规则

2.1 SATA / SAS 硬盘设备

  • 命名示例:
    • /dev/sda:第一个硬盘。
    • /dev/sdb:第二个硬盘。
    • /dev/sdc:第三个硬盘,依此类推。
  • 说明: 这是传统的硬盘设备命名方式,适用于 SATA 或 SAS 硬盘。

2.2 NVMe 设备

  • 命名示例:
    • /dev/nvme0n1:第一个 NVMe 设备。
    • /dev/nvme0n1p1:第一个 NVMe 设备的第一个分区。
    • /dev/nvme1n1:第二个 NVMe 设备。
  • 说明: NVMe 设备采用此命名方式,常用于支持 NVMe 协议的固态硬盘(SSD),比 SATA 硬盘速度更快。

2.3 Virtio 设备

  • 命名示例:
    • /dev/vda:第一个虚拟磁盘设备。
    • /dev/vdb:第二个虚拟磁盘设备。
    • /dev/vdc:第三个虚拟磁盘设备,依此类推。
  • 说明: 适用于虚拟机中的磁盘设备,通常在 KVM/QEMU 等虚拟化技术中使用。

2.4 SCSI 磁盘设备

  • 命名示例:
    • /dev/sda:第一个 SCSI 磁盘设备。
    • /dev/sdb:第二个 SCSI 磁盘设备。
  • 说明: SCSI 硬盘设备与 SATA 硬盘命名规则相同,在现代系统中通常不再有明显区别。

3. LVM(逻辑卷管理)命名规则

如果你使用 LVM(Logical Volume Manager),磁盘和分区的命名方式会有所不同。LVM 中的设备命名规则如下:

  • 命名示例:
    • /dev/VolGroup/lv_root:表示逻辑卷 lv_root 位于卷组 VolGroup 中。
    • /dev/mapper/VolGroup-lv_root:也是表示同一个逻辑卷,但采用 mapper 设备命名方式。
  • 说明: LVM 允许创建多个逻辑卷和卷组,设备的命名反映了卷组和逻辑卷的关系。

4. RAID 阵列设备命名规则

在使用 RAID 阵列时,设备的命名规则如下:

  • 命名示例:
    • /dev/md0:第一个 RAID 阵列。
    • /dev/md1:第二个 RAID 阵列,依此类推。
  • 说明: 在 RAID 配置中,设备路径通常显示为 /dev/mdXmd 表示 RAID 设备。

5. 常见设备命名示例

设备类型命名示例说明
NVMe 设备/dev/nvme0n1, /dev/nvme0n1p1NVMe 硬盘设备。nvme0n1 是设备本身,nvme0n1p1 是分区。
Virtio 设备/dev/vda, /dev/vdb, /dev/vdc虚拟机中的磁盘设备,vda 是第一个虚拟磁盘,vdb 是第二个,依此类推。
SATA / SAS 硬盘/dev/sda, /dev/sdb, /dev/sdc传统硬盘设备,sda 是第一个硬盘,sdb 是第二个,依此类推。
SCSI 磁盘/dev/sda, /dev/sdbSCSI 硬盘设备,类似于 SATA。
RAID 阵列/dev/md0, /dev/md1RAID 阵列设备。

总结

  • /dev/sda, /dev/sdb:传统硬盘(SATA/SAS)。
  • /dev/nvme0n1, /dev/nvme1n1:NVMe 固态硬盘。
  • /dev/vda, /dev/vdb:虚拟化环境中的磁盘设备,通常用于 KVM/QEMU。
  • /dev/md0, /dev/md1:RAID 阵列设备。
  • nfs://server:/path:根分区通过 NFS 挂载。

适用场景

  • 在系统引导时,根据磁盘类型选择正确的设备路径,例如根分区可以是 /dev/sda1/dev/nvme0n1p1 或者 LVM 的 /dev/VolGroup/lv_root
  • 如果在虚拟机中工作,可能会遇到 Virtio 设备,如 /dev/vda
  • 如果使用 RAID 阵列或网络挂载,可以参考 RAID 或 NFS 的设备命名规则。

希望这份整理过的笔记能够帮助你更有效地处理 GRUB 配置文件修复和设备命名相关的问题!