내부 하드 드라이브에 Debian 10을 설치했는데 UEFI 보안 부팅에서 제대로 실행됩니다.
외부 USB에 두 번째 데비안을 설치하면 해당 USB에서만 부팅됩니다.
SSD로 부팅하기 위해 노트북에서 USB를 분리하면 오류가 발생합니다.
bash와 같은 최소한의 라인 편집.
보안 부팅을 비활성화해도 도움이 되지 않습니다.
Disk /dev/sda: 238,5 GiB, 256060514304 bytes, 500118192 sectors
Disk model
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:
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 1550335 499712 244M Linux filesystem
/dev/sda3 1550336 500117503 498567168 237,8G Linux filesystem
Disk /dev/sdb: 57,3 GiB, 61505273856 bytes, 120127488 sectors
Disk model: Ultra USB 3.0
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:
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 1550335 499712 244M Linux filesystem
/dev/sdb3 1550336 120125439 118575104 56,6G Linux filesystem
Disk /dev/mapper/sdc3_crypt: 56,5 GiB, 60693676032 bytes, 118542336 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/usb--vg-root: 48,7 GiB, 52240056320 bytes, 102031360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/usb--vg-swap_1: 7,9 GiB, 8451522560 bytes, 16506880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
lvs 출력
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root intern-vg -wi-a----- 229,80g
swap_1 intern-vg -wi-a----- <7,87g
root usb-vg -wi-ao---- 48,65g
swap_1 usb-vg -wi-ao---- 7,87g
답변1
이 글을 쓰는 시점에서 데비안 10은 아직 testing
초기 단계이므로 약간의 거친 부분이 있을 수 있다는 점에 유의해야 합니다.
내 생각엔 데비안 설치 프로그램이 두 번째 설치가 이동식 드라이브에 있을 것이라는 사실을 모르고 USB 장치에서 부팅하도록 구성된 버전으로 EFI 시스템 파티션(ESP)에 처음 설치된 GRUB 복사본을 덮어썼던 것 같습니다.
이 문제를 해결하려면 다음 두 가지 작업을 순서에 관계없이 수행해야 합니다.
1.) USB 기반 설치가 자체 부팅 가능한지 확인해야 합니다. 즉, USB 드라이브에는 부트로더 복사본이 포함된 FAT32 파티션이 있어야 합니다 \EFI\boot\bootx64.efi
. 이것이 UEFI 관점에서 이동식 USB를 부팅 가능하게 만드는 것입니다.
2.) 내부 HDD에 설치된 부트로더를 수정하려면 USB 기반 설치로 부팅한 다음 내부 HDD 기반 설치의 파티션을 마운트하고 해당 설치로 chroot할 수 있습니다.
출력 fdisk -l
에 따르면 LVM도 사용 중일 수 있습니다.
출력 에 따르면 fdisk -l
이는 필수 명령의 시작 부분이어야 합니다. 이 모든 작업은 루트로 실행되어야 하므로 먼저 su -
루트 비밀번호를 사용하여 입력하거나 sudo -i
루트가 되려면 자신의 비밀번호를 입력하세요.
# mkdir /mnt/hddsystem
# cryptsetup luksOpen /dev/sda3 sda3_crypt
<the above command will ask you the encryption passphrase of the HDD installation.
If successful, then /dev/mapper/sda3_crypt should now exist>
# vgscan
<this detects the LVM volume group within the encrypted container of the HDD installation>
# lvs
<this displays all the detected LVM logical volumes and their names>
# vgchange -ay intern-vg
# mount /dev/mapper/intern--vg-root /mnt/hddsystem
<if successful, directories like /mnt/hddsystem/dev, /mnt/hddsystem/proc, /mnt/hddsystem/sys
should be visible and empty at this point. Other directories should be visible under /mnt/hddsystem too.>
# mount /dev/sda2 /mnt/hddsystem/boot
# mount /dev/sda1 /mnt/hddsystem/boot/efi
이 시점에서 USB 시스템 부팅을 수정하는 것은 USB 미디어를 찾는 GRUB 버전을 USB에 복사한 다음 이를 HDD에 덮어쓰는 것만큼 쉬울 수도 있습니다.
# mkdir /mnt/usb-esp
# mount /dev/sdb1 /mnt/usb-esp
# mkdir -p /mnt/usb-esp/EFI/boot
# cp -r /mnt/hddsystem/boot/efi/EFI/debian /mnt/usb-esp/EFI/
# cp /mnt/usb-esp/EFI/debian/grubx64.efi /mnt/usb-esp/EFI/boot/
# cp /mnt/hddsystem/boot/efi/EFI/debian/shimx64.efi /mnt/usb-esp/EFI/boot/bootx64.efi
# umount /mnt/usb-esp
하드 드라이브 설치 수리로 돌아가기...
# mount -o bind /dev /mnt/hddsystem/dev
# mount -o bind /proc /mnt/hddsystem/proc
# mount -o bind /sys /mnt/hddsystem/sys
<these commands are preparations for the following chroot command, mounting all the necessary real and virtual filesystems so that the inactive HDD-based installation can be used like an active, running system.>
# chroot /mnt/hddsystem /bin/bash
<this command transitions us to the HDD-based environment; from this point onwards, for this shell session only, /mnt/hddsystem is /.>
# grub-install /dev/sda1
# update-grub
<these two commands to fix the bootloader are what all the preparations above were for.>