GRUB 命令行。必须手动启动

GRUB 命令行。必须手动启动

不知何故,我的 grub 在更新我的 Pop!_OS 系统时被损坏了。我重写了分区,grub安装,引导修复,我尝试了一切。

好吧,我可以通过输入以下几行来启动。

set prefix=(hd1,gpt3)/boot/grub
set root=(hd1,gpt3)
insmod normal
normal

但我无法让 grub 自动执行此操作。这并没有“那么糟糕”,但每次启动时都要输入这些内容确实很烦人。

是否有任何配置文件可以用来再次“自动化”这些东西?谢谢各位指教!

**

编辑:我尝试了 update-grub、grub-install。各种方法,就是不明白。

**

以下是一些基本信息:

内核:5.19.0-76051900-通用

分区:

/dev/md0p3       /
/dev/md0p4       /home
/dev/md0p1       /boot/efi

这是我的 /boot 目录的树:

.
├── config-5.18.10-76051810-generic
├── config-5.19.0-76051900-generic
├── efi
│   ├── EFI
│   │   ├── BOOT
│   │   │   ├── bkpbootx64.efi
│   │   │   └── bootx64.efi
│   │   ├── pop
│   │   │   ├── grub.cfg
│   │   │   └── grubx64.efi
│   │   ├── pop_os
│   │   │   ├── grub.cfg
│   │   │   └── grubx64.efi
│   │   └── Pop_OS-f8340379-32a0-45b0-82fa-f157f426bd50
│   │       ├── cmdline
│   │       ├── initrd.img
│   │       ├── initrd.img-previous
│   │       ├── vmlinuz.efi
│   │       └── vmlinuz-previous.efi
│   └── loader
│       ├── entries
│       │   ├── Pop_OS-current.conf
│       │   └── Pop_OS-oldkern.conf
│       └── loader.conf
├── grub
│   ├── fonts
│   │   └── unicode.pf2
│   ├── grub.cfg
│   ├── grubenv
│   ├── locale
        # Tons of locale-files
│   │   └── zh_TW.mo
│   ├── unicode.pf2
│   └── x86_64-efi
│       #Tons of .mod files
│       ├── xzio.mod
│       ├── zfscrypt.mod
│       ├── zfsinfo.mod
│       ├── zfs.mod
│       └── zstd.mod
├── grub.bak
│   ├── grub.cfg
│   └── grubenv
├── initrd.img -> initrd.img-5.19.0-76051900-generic
├── initrd.img-5.17.5-76051705-generic-nouveau
├── initrd.img-5.18.10-76051810-generic
├── initrd.img-5.19.0-76051900-generic
├── initrd.img.old -> initrd.img-5.18.10-76051810-generic
├── System.map-5.18.10-76051810-generic
├── System.map-5.19.0-76051900-generic
├── vmlinuz -> vmlinuz-5.19.0-76051900-generic
├── vmlinuz-5.18.10-76051810-generic
├── vmlinuz-5.19.0-76051900-generic
└── vmlinuz.old -> vmlinuz-5.18.10-76051810-generic

答案1

首先,我建议您以 root 用户身份输入以下内容来创建一个新的 grub cfg 文件:

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

然后,再次以 root 用户身份

update-grub2

注意:如果update-grub2不存在则使用update-grub

答案2

要为已安装的新内核定义新的引导选项,请转至具有 root 访问权限的 (/boot/loader/entries) 目录,并创建一个扩展名为 .conf 的新文件,并将该文件命名为与内核的名称相同的文件。新安装的内核,例如:ef8547eded9a4d-5.19.0-76051900-generic.conf

然后将您想要的设置写入该文件中。

以下是适合您的设置示例:

title PopOs(Workstation)

version 5.19.0-76051900-generic

linux /vmlinuz-5.19.0-76051900-generic

initrd /initrd.img-5.19.0-76051900-generic

options root=UUID=52d3d64b-5de1-4483-9fd9-e171b7acdbe9 ro 

resume=UUID=0cb3dec1-cce5-46d6-89b6>

grub_users $grub_users

grub_arg --unrestricted

答案3

当我尝试在 USB 磁盘上创建 Xubuntu 发行版时,就发生了这种情况。我尝试了sudo update-grub上面给出的选项,但它不起作用。对我来说,修复方法是使用您建议的命令启动 Linux,但我的根分区是 (hd2,gpt2),然后我必须重新安装 grub 引导加载程序。我曾经lsblk找到我的引导设备的名称, /dev/nvme1n1然后我使用了安装命令:

sudo grub-install --boot-directory=/boot /dev/nvme1n1

我希望如果从 grub 命令行启动 linux 存在困难的话,所有这些也可以通过实时 Ubuntu USB 磁盘来完成(如果您有很多磁盘,找到正确的磁盘可能会很棘手)。可以挂载硬盘,更改命令指向启动目录的挂载位置。

相关内容