不知何故,我的 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 磁盘来完成(如果您有很多磁盘,找到正确的磁盘可能会很棘手)。可以挂载硬盘,更改命令指向启动目录的挂载位置。