내 현재 ESP 파티션은 다음 위치에 있습니다 /boot/efi
(실제로는 거기에 마운트되지도 않았고 /etc/fstab
항목도 전혀 없습니다. 몇 년 전에 시스템을 설치했는데 왜 이렇게 설정했는지 기억이 나지 않지만 지금까지는 잘 작동합니다). in 로 변경하는 것과 같습니다 /boot
. 저는 현재 GRUB 2를 부트로더로 사용하고 있지만 그것이 어떻게 작동하는지 잘 모르겠습니다(다시 말하지만, 몇 년 전에 설치했고 그 이후로는 건드리지 않았습니다). 아치리눅스 입니다.
이것을 달성하려면 어떻게 해야 합니까?
/boot
모든 것을 ESP에 복사 하고 /etc/fstab
ESP를 설치할 항목을 추가했지만 이제 대신 EFI가 있는 것으로 의심됩니다. /boot
일부 구성 파일에 변경해야 할 경로가 있을 수 있습니다./boot/EFI
/boot/efi/EFI
현재 콘텐츠 /boot
:
- 유충/
- initramfs-linux.img
- initramfs-linx-fallback.img
- intelucode.img
- vmlinuz-linux
ESP 내용:
- EFI
- 아치
- grubx64.efi
- fwupdx64.efi
- 펌웨어/
- 델/바이오스/복구/
- 아치
문맥:전체 디스크 암호화(LUKS 2에서 LVM 사용, 현재 암호화가 전혀 없음 /
) 로 이동하고 싶습니다 /home
. 그렇게 하려면 GRUB가 로드될 수 있도록 암호화되지 않은 파티션에 커널과 initramfs를 배치해야 합니다(올바른) 나) 내가 틀렸다면). 가장 쉬운 방법은 단순히 ESP에 넣어서 ESP /boot
대신 ESP를 만드는 것입니다 /boot/efi
.
대안에 대한 제안을 환영합니다(장단점을 알려주세요).
답변1
간단히 말해서:
/boot
모든 것을 ESP에 복사- ESP를 설치하세요
/boot
/boot/grub/grub.conf
다음 을 통해 재생성grub-mkconfig
- 실행
grub-install
(주로 EFI 부팅 업데이트) - 새 부팅으로 재부팅
- 이전 시작 지우기(
/boot
,EFI/arch
,efibootmgr
)
내가 마침내 해낸 일:
- ESP를 어디에나 설치하세요(사용해본 적이 있습니다
/boot/efi
) - 모든 것(특히 initramfs, 마이크로코드, 커널 및
grub/
폴더(마지막 폴더는 필요하지 않을 수 있음))를/boot
ESP에 복사합니다. - ESP 제거 후 다시 설치
/boot
- 실행하여
grub-mkconfig
새 생성/boot/grub/grub.conf
그 시점에서 나는 모든 것이 잘 돌아가고 있는지 확인하고 싶어서 다음과 같이 했습니다.
- ESP를 제거하고 다시 설치하십시오.
/boot/efi
/boot/grub/grub.conf
와 를 구별하다/boot/efi/grub/grub.conf
- (희망적으로) 두 옵션을 모두 시작할 수 있도록 청크를 한 곳에서
menuentry
다른 곳으로 복사하세요. - 재부팅하고 ESP에서 부팅하는 새로운 옵션을 시도해 보세요. 작동합니다(즉, IIUC, ESP에 복사된 파일이 시스템을 부팅할 수 있음).
그런 다음 격차를 뛰어 넘어 전환했습니다.
- ESP를 설치하세요
/boot
/etc/fstab
부팅 시 설치하도록 편집되었습니다 (실제로genfstab
적절한 fstab 라인을 생성하는 데 사용했습니다).- 실행 ( 충돌이 없도록
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
이전 이름이 지정됨 )arch
- 재부팅(만약의 경우를 대비하여 이전 "시스템"에서 부팅할 수 있도록 이전 grub.conf의 메뉴 항목이 있음을 참고하세요)
마지막으로 몇 가지 정리 작업을 수행합니다.
- ESP를 제거하고 그 안의 모든 콘텐츠를 삭제합니다.오래된
/boot
(어쨌든 여기에 ESP가 설치되어 이러한 파일을 숨깁니다.) - grub.conf에 추가한 메뉴 항목을 제거합니다.
- 다음 명령을 사용하여 EFI에서 이전 GRUB 항목을 삭제합니다.
efibootmgr
- ESP에서 이전 GRUB 항목 제거(
/boot/EFI/arch/
)