나는 데비안 부트로더를 /boot
하드 드라이브에서 USB 스틱으로 옮기기로 결정했습니다. LUKS를 사용하여 하드 드라이브를 암호화/해독하고 있는데, 부트로더가 암호화되지 않은 유일한 파티션입니다.
어떻게 하면 쉽게 할 수 있나요? 하드 드라이브에서 삭제하고, 삭제 후 여유 공간을 확보하기 위해 파티션( /
, /var
, )의 크기를 조정 하고 새 부트로더를 USB 스틱에 넣고 싶습니다. 사용되는 부트로더는 GRUB 입니다 ./tmp
/boot
/dev/sda1
답변1
조이십시오 grub
. 이는 해결하기 어려운 문제라고 믿게 만드는 약간의 복잡성을 가져올 수 있습니다. 컴퓨터가 5년 미만이라면 아마도 UEFI 펌웨어로 부팅하고 있을 것입니다. 이 경우 Debian 기반 Linux 커널이 필요합니다.이미 부트로더입니다.
디스크를 분할합니다:
printf %c\\n o y n 1 '' '' ef00 w y | gdisk /dev/usb-stick/or-whatever-path
이는 프로그램에 대화형으로 제공하려는 옵션에 대한 스크립트 단축키입니다. GUID 파티션 테이블과 유형의 테이블을 생성합니다.EFI 시스템전체 디스크에 걸쳐 있습니다.
하지만 이
gdisk
프로그램은 사용하기 쉽기 때문에 대화형으로 사용하는 것이 더 좋습니다. 실행 중에는 대상 디스크를 마운트하면 안 되며,w
변경 사항을 쓰려면 루트 권한이 필요할 수도 있습니다. 일반적으로 이 프로그램에서는 원하는 거의 모든 작업을 수행할 수 있으며w
작성하기 전까지는 어떤 결과도 발생하지 않으므로 반드시 수행해야 합니다.
스틱을 fat32로 포맷합니다.
mkfs.vfat -nLABEL /dev/usb-stick/or-whatever-path
- 상표당신이 원하는 것은 무엇이든 됩니다. 당신은해야상표 모두제 생각에는 디스크입니다.
필요한 경우 부팅 메뉴 관리자를 설치하십시오. 좋아요마이크로플레이트 리더:
dpkg -i refind_0.8.7-1_amd64.deb
USB에 자동으로 설치되지 않을 수 있으므로 나중에 설치하는 것이 좋습니다.
/path/to/refinds/install/dir/install.sh --usedefault /dev/usbstick
rEFInd를 사용하는 경우 나중에 다음과 같은 작업을 수행해야 합니다.
mount /dev/usbstick /mnt mkdir -p /mnt/EFI/debian /esp cp -ar /boot/* /mnt/EFI/debian cat <<\TWONEWLINES >>/etc/fstab LABEL=LABEL /esp vfat defaults 0 2 /esp/EFI/debian /boot none bind,defaults 0 0 TWONEWLINES cat <<\ONESIMPLECONFIG >/mnt/EFI/debian/refind_linux.conf "Debian Menu Entry" root=LABEL=rootlabel other_kernel_params ONESIMPLECONFIG
그러나 rEFInd를 건너뛰고 펌웨어의 부팅 메뉴를 사용할 수 있습니다.
efibootmgr -c -d /dev/rootdevice \ -p 1 -L "Debian" \ -l '\EFI\debian\kernelfile' \ -u root=/dev/sda3 kparams \ initrd=EFI/debian/initramfs_image_file
거의 그 정도입니다. 거의 영원히 - 더 이상 소란이 없습니다. 펌웨어는 USB 스틱에서 포맷한 EFI 시스템 파티션에서 커널을 로드합니다. 커널은 초기 루트를 initramfs 파일에 로드합니다. LUKS를 성공적으로 시작했다면 어떻게든 해당 키에 액세스하도록 준비해야 합니다. 키가 이미 initramfs 이미지에 있을 것입니다. 그렇지 않다면 USB나 USB에 넣어야 합니다.
부팅 파티션은산UEFI 시스템에서는 부트로더 및 MBR 내장과 관련된 모든 구식 더러운 것들이 완전히 불필요합니다. 펌웨어 설치에서 부팅하고 커널 실행 파일을 로드한 후 계속 진행하면 됩니다.
USB 스틱에 디렉토리를 설치하기 fstab
만 하면 모든 커널 업데이트가 평소대로 수행됩니다. 그래도 마음에 들면 완전히 제거할 수 있습니다. 사악한 체인에서 다른 스크립트를 읽거나 생성하는 일련의 스크립트와 같은 신비한 업데이트 프로세스는 약간 우스꽝스럽고 쉽게 피할 수 있는 악몽입니다.--bind
/boot
grub
그러나 내 조언을 받아들이면 rEFInd를 사용하게 될 것입니다. 아름다운 메뉴가 있으므로 걱정할 필요가 없습니다. install.sh
위 스크립트의 효과를 쉽게 재현할 수 있습니다.(대부분 상단에 있음)단 하나의 cp
명령만 필요합니다. /EFI/BOOT
펌웨어에 커널을 찾을 수 있는 위치를 알려주는 작은 EFI 실행 파일이 포함된 EFI 시스템 파티션에서 호출되는 정적 디렉터리 일 뿐입니다 . 이것핵심실제 부트로더입니다. 그래야 합니다.
위의 설정을 사용하면 원하는 수의 EFI 실행 파일을 시작할 수 있습니다./boot
(또는 부팅 파티션이 무엇이든)USB 스틱 어딘가에 있는 콘텐츠가 /EFI
있으면 rEFInd는 해당 콘텐츠를 자동으로 찾아 Microsoft 시스템을 포함한 펌웨어 메뉴의 옵션으로 제공할 수 있습니다. 영원히.
답변2
우선, 다음을 수행할 수 있습니다.
- USB 드라이브 분할, 포맷 및 마운트
- 이전 파일의 모든 파일을
/boot
USB 스틱으로 복사 /etc/fstab
USB 스틱 파일 시스템을 새 시스템으로 변경하세요 ./boot
umount /boot
,mount /boot
공식화하다- 스틱에 부트로더(
grub-install /dev/sdx
또는 기타) 를 설치합니다. - 다시 시작하고 작동하는지 확인하세요.
/boot
오래된 공간을 이미 암호화된 시스템으로 회수하는 경우 . 이전 부팅 파티션의 크기에 따라 다른 모든 데이터(또는 추가 LUKS 컨테이너 및 여러 컨테이너 사용에 따른 모든 복잡성)를 이동해야 할 수 있으므로 이 작업은 가치가 없을 수 있습니다. 아직 이들 중 하나가 없다면 암호화된 스왑 파티션으로 사용할 수 있습니다.