여러 드라이브가 있는 Windows MacOS 및 Linux에서 안정적인 rEFInd 또는 grub 멀티부팅을 달성하는 방법은 무엇입니까?

여러 드라이브가 있는 Windows MacOS 및 Linux에서 안정적인 rEFInd 또는 grub 멀티부팅을 달성하는 방법은 무엇입니까?

Windows 10 NTFS를 실행하는 250GB SSD(sda)가 있습니다. 두 번째 1TB SSD(sdb)에는 apfs를 사용하는 MacOS 10.15.7, btrfs를 사용하는 Linux Mint 20, ext4를 사용하는 두 개의 예비 파티션이 있습니다. rEFInd가 설치되어 있고 멀티부팅으로 모든 것이 잘 작동합니다. 운이 좋을 수도 있지만 Rod Smith의 문서를 많이 읽었지만 충분하지 않을 수도 있습니다. 두 SSD 모두 gpt이고 EFI 파티션이 있습니다. 문제가 발생했습니다. 정확히 무엇인지는 모르겠지만 이제는 MacOS를 직접(Alt 길게 누르기) 부팅할 수 있으며 rEFInd에서만 부팅할 수 있습니다. rEFInd에는 여전히 올바른 3개의 운영 체제 아이콘이 표시됩니다. 라이브 USB에서 Linux를 부팅하고 그럽할 수 있습니다. SSD에서 Windows나 Mint를 전혀 부팅할 수 없지만 여전히 존재합니다. grub-repair를 실행했지만 상황이 더 나아지지 않는 것 같습니다. rEFInd를 부팅 순서 아래로 더 이동시켰고 efibootmgr을 사용하여 다시 거기에 넣어야 했습니다.

Q1. SSD가 두 개인 경우 /EFI/rEFInd 폴더를 가져올 SSD를 결정하는 방법은 무엇입니까?

Q2. 두 SSD 모두에 /EFI/ubuntu 폴더가 있는 이유는 무엇입니까?

Q3. 두 개의 SSD와 아래 폴더가 주어지면 각 운영 체제에 대한 올바른 grub 메뉴 항목은 무엇입니까?

Q4. 목록에는 sda 및 sdb가 표시되며 이들이 hd0 및 hd1과 어떻게 동등한지 확인할 수 있습니다. 그러나 라이브 grub2는 hd8,gpt3(WindowsOS의 경우) 및 hd9,gpt3(btfrs(mint)의 경우)를 나타냅니다. 8과 9는 어디에서 왔습니까?

감사해요

mint@mint:~$ sudo fdisk -l

Disk /dev/sda: 233.78 GiB, 251000193024 bytes, 490234752 sectors
Disk model: APPLE SSD SM256E
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: E38BCA08-61D9-45FC-8828-D08FD28E1A22

Device         Start       End   Sectors   Size Type                 FS      Flags       Comments
/dev/sda1       2048    206847    204800   100M EFI System           fat32   boot,esp  
/dev/sda2     206848    239615     32768    16M Microsoft reserved   unknown msftres
/dev/sda3     239616 489196172 488956557 233.2G Microsoft basic data ntfs    msftdata    Windows OS
/dev/sda4  489197568 490231807   1034240   505M Windows recovery env ntfs    hidden,diag


Disk /dev/sdb: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 860 
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: EF574C35-C453-45DC-9D86-1DE841DD934E

Device          Start        End   Sectors   Size Type                FS     Flags       Comment
/dev/sdb1          40     409639    409600   200M EFI System          fat32  boot,esp 
/dev/sdb2      409640  585615815 585206176   279G unknown             apfs               MacOS Catalina  
/dev/sdb3   585617408 1171347455 585730048 279.3G Linux filesystem    btrfs              Linux Mint
/dev/sdb4  1171347456 1562437631 391090176 186.5G Linux filesystem    ext4               Spare1 not used  
/dev/sdb5  1562437632 1953523711 391086080 186.5G Linux filesystem    ext4               Spare2 not used


mint@mint:/mnt$ tree -L 5 -P *.efi --ignore-case      sda
.
└── EFI
    ├── Boot
    │   └── bootx64.efi
    ├── Microsoft
    │   ├── Boot
    │   │   ├── bootmgfw.efi
    │   │   ├── bootmgr.efi
    │   │   └── memtest.efi
    │   └── Recovery
    └── ubuntu
        ├── grubx64.efi
        └── shimx64.efi

6 directories, 3 files

mint@mint:/mnt$ tree -L 5 -P *.efi --ignore-case       sdb
.
└── EFI
    ├── APPLE
    │   └── CACHES
    │       └── CAFEBEEF
    ├── BOOT
    │   ├── BOOTX64.EFI
    │   ├── fbx64.efi
    │   └── mmx64.efi
    ├── Linux
    │   ├── grubx64.efi
    │   ├── mmx64.efi
    │   └── shimx64.efi
    ├── refind
    │   ├── icons
    │   │   └── licenses
    │   ├── icons-backup
    │   │   └── licenses
    │   ├── keys
    │   └── refind_x64.efi
    ├── tools
    │   └── gptsync_x64.efi
    └── ubuntu
        ├── grubx64.efi
        ├── mmx64.efi
        └── shimx64.efi

mint@mint:/boot$ tree                                sdb3 Linux Mint /boot
.
├── System.map-5.4.0-26-genericefibootmgr
├── config-5.4.0-26-generic
├── grub
│   ├── gfxblacklist.txt
│   ├── grubenv
│   └── unicode.pf2
├── initrd.img -> initrd.img-5.4.0-26-generic
├── initrd.img.old -> initrd.img-5.4.0-26-generic
├── vmlinuz -> vmlinuz-5.4.0-26-generic
└── vmlinuz.old -> vmlinuz-5.4.0-26-generic

1 directory, 9 files

답변1

Q1. SSD가 두 개인 경우 /EFI/rEFInd 폴더를 가져올 SSD를 결정하는 방법은 무엇입니까?

예를 들어, SSD 중 하나가 시스템 보드에 납땜되어 있고 다른 하나는 분리 가능한 경우, 분리 가능한 SSD에도 자체 ESP 파티션과 해당 부트로더 폴더가 있어서 사용할 수 있도록 하는 것이 합리적일 수 있습니다. if / 필요할 때 다른 시스템으로 더 쉽게 이식할 수 있습니다.

시스템 펌웨어가 하나의 SSD를 감지하는 데 문제가 있지만 다른 SSD는 안정적으로 감지할 수 있는 경우 유일한 옵션은 모든 부트 로더가 포함되어 있고 운영 체제가 자체 커널과 스토리지 드라이버의 모든 콘텐츠를 부팅해야 하는 쉽게 감지할 수 있는 SSD를 사용하는 것입니다.

그 외에도 대부분 귀하의 선호도에 달려 있습니다.

Q2. 두 SSD 모두에 /EFI/ubuntu 폴더가 있는 이유는 무엇입니까?

다음 중 하나:

  • 설치 프로그램에 ESP 파티션이 여러 개 있는 경우 각 파티션에 Ubuntu의 부트로더를 추가하여 안전하게 실행할 수 있습니다. 어쩌면 펌웨어가 모든 디스크를 볼 수 없거나 일부 디스크가 제거 가능하고 설치 프로그램이 해당 디스크가 무엇인지 알지 못할 수도 있습니다.

  • 복구 작업을 실행 중이었고 디스크 중 하나의 초기 설치가 어떤 이유로 제대로 작동하지 않았기 때문에 grub-repair/boot-repair가 추가 복사본을 생성했을 수 있습니다.

Q3. 두 개의 SSD와 아래 폴더가 주어지면 각 운영 체제에 대한 올바른 grub 메뉴 항목은 무엇입니까?

MacOS는 GRUB이 아직 지원하지 않는 APFS를 사용하는 것으로 보이기 때문에 GRUB을 통해 부팅되지 않을 수 있습니다. APFS가 도입되기 전에는 필수 GRUB 메뉴 항목이 다음과 같았습니다.

menuentry "OS X" {
    insmod hfsplus
    search --set=root --file /System/Library/CoreServices/boot.efi
    chainloader /System/Library/CoreServices/boot.efi
}

sudo blkid안타깝게도 다양한 파일 시스템에 대한 올바른 파일 시스템 UUID가 포함된 출력 이나 lsblk -o +UUID그에 포함된 출력이 없습니다 . /dev/sdb4또한 Linux 루트 파일 시스템을 식별하지 않습니다. 아마도 /dev/sdb5.

Windows의 경우 최소 GRUB 부팅 항목은 다음과 같습니다.

menuentry 'Windows Boot Manager' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root <place the UUID reported for the sda1 partition here>
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Mint의 경우 최소 GRUB 부팅 항목은 다음과 같습니다.

menuentry "Linux Mint" {
        insmod gzio
        insmod part_gpt
        insmod btrfs
        search --no-floppy --fs-uuid --set=root <place the UUID reported for the sdb3 partition here>
        echo "Loading Linux Mint kernel..."
        linux /vmlinuz root=<place the Linux device pathname of the Linux root filesystem here> ro quiet splash
        echo "Loading Linux Mint initramfs..."
        initrd /initrd.img

}

참고: 이러한 부분을 <angle brackets>실제 값으로 교체하십시오.

Q4. 목록에는 sda 및 sdb가 표시되며 이들이 hd0 및 hd1과 어떻게 동등한지 확인할 수 있습니다. 그러나 라이브 grub2는 hd8,gpt3(WindowsOS의 경우) 및 hd9,gpt3(btfrs(mint)의 경우)를 나타냅니다. 8과 9는 어디에서 왔습니까?

시스템의 UEFI 펌웨어는 SSD뿐만 아니라 내장 인터넷 복구 볼륨 및/또는 당시 연결되는 기타 저장 장치도 제공할 수 있습니다. GRUB 명령 프롬프트로 이동하여 다음을 입력한 ls (hd후 를 눌러 TAB펌웨어가 GRUB에 알린 모든 디스크를 확인하고 어떤 디스크인지 알아내야 할 수도 있습니다.

관련 정보