Linux는 하드 드라이브 파티션에 있고 부트로더는 USB 플래시 드라이브에 있습니다.

Linux는 하드 드라이브 파티션에 있고 부트로더는 USB 플래시 드라이브에 있습니다.

USB 플래시 드라이브를 사용하여 (다른) 하드 드라이브의 파티션에서 Linux를 부팅하는 방법은 무엇입니까?

내 하드 드라이브의 암호화된 파티션에 Linux를 설치하려고 합니다(LUKS의 LVM 사용).

/boot암호화되지 않은 별도의 파티션에 있어야 하기 때문에 USB 플래시 드라이브에 저장하고 싶습니다.

내 계획은 GRUB(2)를 플래시 드라이브( /dev/sdb)에 설치하고 해당 MBR에서 Linux를 부팅하거나, 드라이브가 분리된 경우 하드 드라이브( /dev/sda) MBR에서 Windows를 부팅하는 것입니다.


GRUB(2)를 에 설치했지만 /dev/sdb플래시 드라이브에서 부팅하려고 하면 다음 메시지가 나타납니다.

GRUB 로딩

몇 초 후에 다음과 같은 추가 메시지를 받았습니다.

읽기 오류

테스트 목적으로 내용을 삭제하려고 시도했지만 /boot플래시 드라이브에서 다시 부팅한 후에도 동일한 메시지가 표시되었습니다.


파티션 세부정보

/dev/sda(하드 디스크):

MBR: Windows Bootloader
/dev/sda1 - Windows System Partition
/dev/sda2 - Windows Boot Partition
/dev/sda3 - Windows Data Partition
/dev/sda4 - Linux partition

/dev/sdb(USB 플래시 드라이브):

MBR: GRUB
/dev/sdb1 - Linux /boot Partition

GRUB 세부정보

/etc/default/grub:

GRUB_CMDLINE_LINUX="cryptdevice=/dev/disk/by-uuid/$SDA4_UUID:vg root=/dev/mapper/vg-root resume=/dev/mapper/vg-swap cryptkey=/dev/disk/by-uuid/$SDB1_UUID:ext2:/key"
..
GRUB_DISABLE_LINUX_UUID=true

설치 명령

grub-install --target=i386-pc --recheck /dev/sdb

저는 아치 리눅스를 사용하고 있습니다.

답변1

시도해 봤어?

grub-install --target=i386-pc --recheck /dev/sdb1

/dev/sdb1이 USB 장치로 나타납니다.

MBR: GRUB
/dev/sdb1 - Linux /boot Partition

어쩌면 이것을 시도해보십시오:

title Start Ubuntu from USB DISK (PC)
root (cd)
kernel /boot/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper noprompt cdrom-detect/try-usb=true persistent
initrd /boot/initrd.lz
boot

답변2

두 가지: 먼저 USB 키를 지울 수 있나요? 내 생각에는 간결한 "읽기 오류" 메시지가 이전 버전의 grub에서 나온 것 같습니다.

내용을 확인하셨나요 grub.cfg? GRUB_DISABLE_UUID_LINUX여러 개의 드라이브로 원하는 작업을 수행하지 못할 수도 있습니다(장치 노드 이름이 전달됩니다.). 나는 update-grub그 줄을 다시 실행하고 주석을 달 것입니다.

관련 정보