우리는 데비안 기반 제품을 만들고 있습니다. 공장에서 이들을 구축하는 과정을 단순화하기 위해 기본 운영 체제를 설치하기 위한 라이브 디스크를 구축하려고 합니다. 이 프로세스를 사용하는 이전 제품이 있지만 Debian 7을 기반으로 합니다. 저는 데비안 11을 사용하고 있습니다. 내 Debian 11 복구 프로세스 및 이미지는 Debian 7을 기반으로 합니다. 둘 다 사용됩니다 . Debian 11 시스템은 우리 비트를 호스팅하는 패키지를 얻기 위해 live-build
메인라인 저장소와 내 저장소에서 운영 체제를 가져옵니다 . 이는 빌드 OS를 실행하고 이를 squashfs에 압축한 다음 드라이브 파티션, squashfs 파일을 적절한 파티션에 압축 해제 등의 작업을 수행하는 스크립트를 사용하여 주변에 라이브 OS를 빌드하는 bullseye
다단계 프로세스입니다 . live-build
심각하게 작동하지 않으면 GRUB를 사용하십시오.
빌드의 일부는 다음을 수행합니다.
install -d /boot/seed
grub-mkimage -Ox86_64-efi -o /boot/seed/BOOTX64.EFI -p '(hd0,1)/EFI/BOOT/grub' \
part_gpt part_msdos fat
grub-mkimage -Oi386-pc -o /boot/seed/mbr-core.img -p '(hd0,msdos1)/biosgrub' \
part_msdos fat biosdisk
grub-mkimage -Oi386-pc -o /boot/seed/gpt-core.img -p '(hd0,gpt1)/biosgrub' \
part_gpt fat biosdisk
cp -a /usr/lib/grub/i386-pc/boot.img /boot/seed/boot.img
cp -a /usr/lib/grub/i386-pc/modinfo.sh /boot/seed/modinfo.sh
grub-editenv /boot/seed/grubenv create
이러한 파일은 실제 운영 체제에 저장되며 GRUB 설치를 시도하기 전에 ESP 파티션에 복사됩니다. 이러한 파일과 다양한 GRUB 모듈은 모두 설치 스크립트 도중에 복사됩니다.
나중에 스크립트에서 grub-install
.
grub-install \
--directory /mnt/biosgrub \
--boot-image boot.img \
--core-image core_img \
/dev/sda
여기서 문제는 최신 버전이 grub-install
더 이상 지원되지 않으며 core-image
Debian boot-image
7 버전과 같은 전환이 즉시 실패한다는 것입니다. boot-image
및 스위치를 꺼냈는데 core-image
이제 실패합니다.
grub-install: error: failed to get canonical path of `overlay'.
예, 실제로 왼쪽 백틱과 오른쪽 작은따옴표가 있습니다 overlay
.
GRUB 단계를 제거하고 모든 것을 압축 해제한 다음 Manjaro(이미 배치됨)를 실행하는 그래픽 라이브 디스크로 부팅하여 GRUB 상황에 대한 추가 정보를 얻으려고 했습니다. 거기서 실행해도 grub-install
같은 방식으로 실패합니다.
인터넷 검색을 통해 대상 장치가 overlayfs를 사용하고 있다고 생각되고 어떤 실제 장치를 사용할지 알 수 없기 때문에 이것이 발생한다는 것을 이해 grub-install
하지만 여기에서 어디로 가야할지 또는 어떤 질문을 해야할지 잘 모르겠습니다. 독점 소프트웨어로 인해 일부 내용을 편집해야 했지만 자세한 내용을 기꺼이 제공해 드리겠습니다.
중요한 경우 생성된 OS 파티션을 시스템 외부에 수동으로 설치하면 모든 것이 올바른 위치에 있고 코드가 제 위치에 있으며 부트로더가 있으면 제대로 실행될 수 있음을 알 수 있습니다.
/proc
ETA: 여기서는 압축되지 않은 OS를 라이브 디스크의 디렉터리에 설치하고 , /sys
, 및 를 /dev
해당 디렉터리에 마운트하고, EFI 파티션을 마운트한 다음 chroot
ing하는 등 약간의 진전을 이루었습니다 . 그런 다음 실행되지만 grub-install /dev/sda
부팅할 때 grub이 여전히 누락됩니다.
답변1
debos
이 문제에 대해 많은 양의 트래픽이 발생한다는 알림을 받은 후, 질문에 설명된 프로세스를 사용하려고 하기보다는 빌드된 이미지와 플래셔 이미지를 사용하여 결국 문제를 해결했다고 게시해야겠다고 생각했습니다 .