여러 Linux 배포판에 대한 공통 /boot 파티션을 만드는 방법은 무엇입니까?

여러 Linux 배포판에 대한 공통 /boot 파티션을 만드는 방법은 무엇입니까?

저는 Windows와 두 개의 Linux 배포판, 즉 Parrot OS Electro Ara 및 Ubuntu 20.04를 멀티 부팅하려고 합니다. grub 및 부트로더는 원래 Parrot OS에 의해 설치되었습니다. 그래서 방해하지 않기 위해 부트로더 없이 Ubuntu를 설치했습니다. 왜냐하면 ubiquity -bParrot 자체의 grub을 사용하고 싶었기 때문입니다.

하지만 나도 같은 걸 사용하고 있어/시작하다파티션( /dev/nvme0n1p9)은 두 운영 체제 모두의 설치 지점 역할을 합니다. 이것은 Parrot OS의 마운트 지점입니다.lsblk

    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1                                       259:0    0 953.9G  0 disk  
├─nvme0n1p1                                   259:1    0   260M  0 part  /boot/efi
├─(windows partitions were hided)
├─nvme0n1p7                                   259:7    0   200M  0 part  
├─nvme0n1p8                                   259:8    0     4G  0 part  [SWAP]
├─nvme0n1p9                                   259:9    0     1G  0 part  /boot
├─nvme0n1p10                                  259:10   0    20G  0 part  /
├─nvme0n1p11                                  259:11   0    40G  0 part  /opt
├─nvme0n1p12                                  259:12   0    40G  0 part  
│ └─luks-...(UUID Hided)                      253:0    0    40G  0 crypt /home
└─nvme0n1p15                                  259:15   0  47.4G  0 part  

참고: 저는 동일하게 공유했고 /opt( /bootefi 파티션은 기본적으로 공유됩니다)

/dev/nvme0n1p15에서 ubuntu가 감지되었다는 메시지가 표시되지만 소스 코드를 보거나 grub 화면에서 부팅하면 앵무새 OS로 직접 연결됩니다. 문제는 앵무새 운영 체제가 우분투의 initramfs 및 vmlinuz 파일에서 부팅되고 아무런 문제 없이 앵무새로 부팅된다는 것입니다. 또한 우분투에서 시도할 때 update-grubParrot OS에 대해 이야기하고 있지만 여전히 Parrot OS의 커널(5.16 및 5.18)을 사용하여 우분투로 부팅하므로 initramfs에 대한 오류가 발생하지만 커널 5.15 실수로 부팅할 때는 오류가 발생하지 않습니다.

다음은 그것이 어떻게 보이는지 보여주는 grub-customizer 페이지입니다. (사용자 정의는 일시적으로 Ubuntu 이미지로 부팅하도록 하는 것입니다.)

여기에 이미지 설명을 입력하세요.

/boot여기에는 설치 전, 우분투 설치 후, update-grub 실행 후 폴더에 있는 파일도 첨부했습니다.

Ubuntu를 설치하기 전(Parrot 및 Windows에만 해당)

config-5.16.0-12parrot1-amd64
config-5.18.0-1parrot1-amd64
efi
grub
initrd.img-5.16.0-12parrot1-amd64
initrd.img-5.18.0-1parrot1-amd64
System.map-5.16.0-12parrot1-amd64
System.map-5.18.0-1parrot1-amd64
vmlinuz-5.16.0-12parrot1-amd64
vmlinuz-5.18.0-1parrot1-amd64

우분투를 설치하고 chroot를 통해 grub update를 실행한 후

total 256M
drwxr-xr-x 2 root root 4.0K செப். 20 16:36 efi
drwxr-xr-x 5 root root 4.0K செப். 20 16:36 grub
lrwxrwxrwx 1 root root   28 செப். 20 16:36 initrd.img -> initrd.img-5.15.0-46-generic
-rw-r--r-- 1 root root 117M செப். 20 16:36 initrd.img-5.15.0-46-generic
-rwxr-xr-x 1 root root  94M செப். 20 16:36 initrd.img-5.16.0-12parrot1-amd64
-rw-r--r-- 1 root root  14M செப். 20 16:36 initrd.img-5.18.0-1parrot1-amd64
lrwxrwxrwx 1 root root   32 செப். 20 16:36 initrd.img.old -> initrd.img-5.18.0-1parrot1-amd64
-rw-r--r-- 1 root root 179K செப். 20 16:36 memtest86+.bin
-rw-r--r-- 1 root root 181K செப். 20 16:36 memtest86+.elf
-rw-r--r-- 1 root root 181K செப். 20 16:36 memtest86+_multiboot.bin
-rw------- 1 root root 6.0M செப். 20 16:36 System.map-5.15.0-46-generic
-rwxr-xr-x 1 root root   83 செப். 20 16:36 System.map-5.16.0-12parrot1-amd64
-rwxr-xr-x 1 root root   83 செப். 20 16:36 System.map-5.18.0-1parrot1-amd64
lrwxrwxrwx 1 root root   25 செப். 20 16:36 vmlinuz -> vmlinuz-5.15.0-46-generic
-rw-r--r-- 1 root root  11M செப். 20 16:36 vmlinuz-5.15.0-46-generic
-rwxr-xr-x 1 root root 7.1M செப். 20 16:36 vmlinuz-5.16.0-12parrot1-amd64
-rwxr-xr-x 1 root root 7.2M செப். 20 16:36 vmlinuz-5.18.0-1parrot1-amd64

마지막으로 Parrot OS에서 update-grub을 실행하고 심볼릭 링크를 삭제합니다.

config-5.16.0-12parrot1-amd64
config-5.18.0-1parrot1-amd64
efi
grub
initrd.img-5.15.0-46-generic
initrd.img-5.16.0-12parrot1-amd64
initrd.img-5.18.0-1parrot1-amd64
memtest86+.bin
memtest86+.elf
memtest86+_multiboot.bin
System.map-5.15.0-46-generic
System.map-5.16.0-12parrot1-amd64
System.map-5.18.0-1parrot1-amd64
vmlinuz-5.15.0-46-generic
vmlinuz-5.16.0-12parrot1-amd64
vmlinuz-5.18.0-1parrot1-amd64

내가 원하는 솔루션은 다음과 같은 grub 부팅 옵션을 제공하는 것입니다.

  • 앵무새
  • 앵무새의 고급 옵션
  • 우분투
  • Ubuntu의 고급 옵션
  • 윈도우

도움을 주셔서 미리 감사드립니다.

관련 정보