다른 드라이브에 Grub을 다시 설치하시겠습니까?

다른 드라이브에 Grub을 다시 설치하시겠습니까?

컴퓨터를 분해했다가 다시 조립했는데 GRUB가 사라졌습니다.
SSD(sdb, GPT)와 HDD(sda, MBR)라는 두 개의 디스크가 있습니다.

  • sda1: "섹션" (128MB)
  • sda2: 윈도우, NTFS
  • sda3: windows 다시, ntfs (grub 및 arch 설치 후 이 파티션 추가)
  • sda4:vaultLinux/

  • sdb1: Windows용 복구(ntfs)

  • sdb2: /boot/efi (vfat)
  • sdb3: 다시 "부분", 16MB
  • sdb4: windows 다시 (기본 Windows 파티션, 여기에 설치됨)

저는 보통 SSD로 부팅하고 Windows 부트 로더와 Arch_grub을 가지고 있습니다. 이제
Windows 부트 로더만 있지만 grub용 파일은 여전히 ​​거기에 grubx64.efi있습니다 /boot/efi/EFI/arch_grub. grubenvUEFI 모드에서는 Architect를 사용했습니다) grub.cfgx86_64-efi/boot

따라서 기본적으로 grub은 /boot내 HDD(및 /boot/efi내 SSD)에 있으며 지금까지는 매우 좋습니다. 우분투 라이브 USB에서 사용하려고 하는데 "아치 패키지가 설치되지 않았습니다" boot-repair라는 오류가 발생합니다 .grub-amd64-efi-signed

아직 아치에서 발사할 수 있을 것 같아요그럽 명령줄그런데 어떻게 해야 합니까? 필요한 파일이 이미 모두 있으므로그럽 설치아무 소용없을 거야

답변1

Linux 복구 미디어/Live CD에서 부팅하고 /dev/sda4를 /mnt에 마운트하고 /dev/sdb2를 /mnt/boot에 마운트합니다. chroot /mnt를 실행한 다음 grub-install /dev/sdb를 실행합니다.

답변2

도움을 주신 Raman Sailopal과 cas에게 감사드립니다. 하지만 제 경우에는 적합하지 않습니다. /dev/sda4가 Linux 루트이고, /dev/sdb2가 EFI 파티션(/boot/efi에 있음)이고, linux/initrd 파일이 우분투 의 라이브 USB(16.04?)
라고 가정하고 따라야 할 정확한 단계는 다음과 같습니다 . amd64 아키텍처를 사용하여 이를 실행하고 다음 명령을 붙여넣습니다. /boot/vmlinuz-linux/boot/initramfs.img

sudo os-prober
efibootmgr

아직 설치되지 않은 경우 os-prober 또는 efibootmgr을 설치하십시오.

sudo apt-get install os-prober
sudo apt-get install efibootmgr

efi 모드의 Grub은 설치되지 않을 수 있습니다. Grub도 설치하십시오.

sudo apt-get install grub-efi-amd64-signed

그런 다음 grub을 설치하십시오.

sudo mount -t ext4 /dev/sda4 /mnt
sudo mount -t vfat /dev/sdb2 /mnt/boot/efi
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=grub

그것을 사용하려고 시도하지 마십시오 grub-mkconfig. 작동하지 않습니다.
대신, 새로운 grub 부트로더에서 부팅하세요.grub 쉘이 있으면 다음 명령을 붙여 넣으십시오.:

set root=(hd0,4)
linux /boot/vmlinuz-linux root=/dev/sda4
initrd /boot/initramfs.img
boot

그런 다음 Linux에서는 efi 파티션을 마운트하고(아직 마운트되지 않은 경우) grub/os-prober/efibootmgr을 설치한 후 다음 명령을 실행해야 합니다.

sudo os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

재부팅하고 땅벌레가 돌아 왔습니다.

관련 정보