我正在尝试将 grub 从正在运行的 Debian-12 系统安装到我的电脑的另一个磁盘上。
问题:我有两个磁盘,磁盘1和磁盘2。磁盘1使用 Debian 12(如上所述)和其他磁盘2,这台电脑上有 Windows 10 和我的 Debian 的克隆分区磁盘1。
如下所示,我安装 grub 的尝试取得了部分成功。但我在配置 grub 时遇到了麻烦,无法识别磁盘2,即使我从磁盘2grub 仍然从以下分区启动磁盘1
我目前所做的就是重新分区磁盘2- 删除了 windows bootloader 分区,将 windows 分区移到右侧,为 grub 创建了 EFI 分区,通过 clonezila 我从中复制了我的 Debian ext4 分区磁盘1到磁盘2,创建了 linux-swap 分区。以下是输出lsblk
命令:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 237G 0 part /
└─nvme0n1p3 259:3 0 977M 0 part [SWAP]
nvme1n1 259:4 0 931.5G 0 disk
├─nvme1n1p1 259:5 0 512M 0 part
├─nvme1n1p2 259:6 0 232.8G 0 part
├─nvme1n1p3 259:7 0 660.9G 0 part
└─nvme1n1p4 259:8 0 37.2G 0 part
以下是分区方案磁盘2通过fdisk -l /dev/disk2
:
Disk /dev/nvme1n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ADATA LEGEND 800
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BB47134C-B71E-4797-844A-799AF566DEF2
Device Start End Sectors Size Type
/dev/nvme1n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme1n1p2 1054720 489336831 488282112 232.8G Microsoft basic data
/dev/nvme1n1p3 489347072 1875390463 1386043392 660.9G Linux filesystem
/dev/nvme1n1p4 1875400704 1953515519 78114816 37.2G Linux swap
这里是tree /mnt/
EFI 分区的输出(挂载到 /mnt)
/mnt/
├── boot
│ ├── efi
│ │ └── grub
│ └── grub
└── EFI
└── GRUB
├── BOOTX64.CSV
├── fbx64.efi
├── grub.cfg
├── grubx64.efi
├── mmx64.efi
└── shimx64.efi
7 directories, 6 files
所以我猜我的 grub 安装已经成功了一半,但出于某种奇怪的原因,我无法配置 grub 以使其识别上述两个分区。我想添加 grub.cfg 文件,但此时我有点不知所措,因为如您所见,文件夹/boot/grub/
有点空。
请问有人能告诉我我做错了什么并帮助我解决这个问题吗?
答案1
您需要做的第一件事是重新安装 GRUB。这里有关于如何操作的很好的描述 ->如何重新安装 GRUB2 EFI? 或者如果你想要另一种选择,请尝试 ->https://www.fosslinux.com/115040/a-complete-guide-to-installing-grub-bootloader-on-linux.htm 但关于重新安装或修改启动顺序的大多数内容都涵盖在内
现在非常重要!使用您最喜欢的映像写入器在 USB 上创建 Debian 12 Live 映像,如果您没有,Rufus 或 balenaEtcher 会被大量使用。现在启动它并登录到它 user=user password=live。此时,您可以在所有命令前面加上 sudo 或执行 sudo -i 虽然您可以在这个级别使用任何实时系统,但 Debian 12 中可能有些事情更容易。您可以打开一个终端,只要您有网络,您就可以安装任何您没有的东西。只需记住将东西直接放到您尝试修复的磁盘上,因为您的根目录在 USB 上。现在执行 LSBLK 查看所有设备,然后开始工作。