외부 USB와 SSD 간 부팅 시 Debian10 부팅 문제

외부 USB와 SSD 간 부팅 시 Debian10 부팅 문제

내부 하드 드라이브에 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.>

관련 정보