파티션을 복사하고 새로 복사한 파티션에서 부팅합니다.

파티션을 복사하고 새로 복사한 파티션에서 부팅합니다.

전체 파티션의 이미지를 생성하고, 다른 파티션에 이미지를 복원하고, 새 파티션에서 부팅하는 스크립트를 생성하려고 합니다.

새 파티션에서 부팅하도록 변경하는 마지막 부분에 문제가 있습니다.

이를 위해 자동 파티셔닝을 사용하여 우분투/데비안을 설치하고 하드 드라이브를 다음과 같이 구성했습니다.

  • /dev/sda
    • /dev/sda1 - /boot/efi
    • /dev/sda2 - / (우분투/데비안)
    • /dev/sda3 - 스왑
    • /dev/sda4 - 마운트되지 않음 - sda2 이미지 복사/복원을 위한 대상 파티션

그래서 제가 하고 싶은 것은 이미지를 생성 dev/sda2하고 이를 복원 /dev/sda4한 다음 에서 부팅하는 것입니다 /dev/sda2.

그 이유는 전체 Unix 설치 이미지를 제공하고 인터넷 연결 없이 특정 IoT 장치를 "업데이트"할 수 있기 때문입니다. 따라서 새 이미지를 제공할 때마다 이미지는 파티션 중 하나에 복원되고 해당 파티션은 부팅 파티션이 됩니다. 이 프로세스는 새 이미지를 프로비저닝할 때마다, 즉 파티션 전환이 시작될 때마다 적용됩니다. 새 이미지를 적용/설치하는 데 문제가 있는 경우 부팅 파티션을 변경하지 말고 "이전 작업" 파티션에서 부팅해야 합니다.

지금까지 이미지를 성공적으로 생성 dump하고 대상 파티션에 복원했습니다.

grub에게 복구 덤프의 다른 파티션에서 부팅하도록 변경하는 데 문제가 있습니다.

grub-install복원된 설치로 루트를 변경 하고 이러한 명령을 실행하는 등 다양한 방법을 시도했지만 update-grub제대로 작동하지 않았습니다.

내가 원하는 것을 달성하기 위해 무엇을 해야 하는지 설명해줄 수 있는 사람이 있나요?

답변1

최신 Linux 배포판에서는 파일 시스템 UUID(또는 이에 상응하는 항목)를 사용하여 부팅할 파일 시스템을 식별하도록 GRUB를 구성하는 경향이 있습니다. sda2에 복제하면 sda4이제 동일한 UUID를 가진 두 개의 파일 시스템이 생성됩니다. GRUB는 일치하는 UUID가 있는 첫 번째 시스템을 시작하거나 일치하는 UUID가 여러 개 감지되면 중지할 가능성이 높습니다.

따라서 파일 시스템을 복제한 후 가장 먼저 해야 할 일은 sda4UUID가 다시 고유하도록 새 UUID를 새 복제본에 할당하는 것입니다.이것은 다양한 파일 시스템 유형의 UUID를 변경하는 방법을 지정하는 답변이 포함된 질문입니다.내 생각엔 당신이 이 단계를 놓친 것 같아요.

두 번째 단계는 위치한 미니온을 업데이트하는 것입니다 grub.cfg. 여기에는 기본 GRUB 구성 파일이 포함된 파일 시스템을 찾는 명령이 포함되어 있습니다. UUID를 업데이트하면 GRUB는 원래 파일 시스템 대신 새 복제본에서 해당 구성을 찾습니다.sda1/boot/efi/EFI/<name of distribution>/grub.cfgsearch.fs_uuid/boot/grub

/boot/grub/grub.cfg마지막으로 이를 실제로 사용하려면 새 복제본과 새 UUID를 업데이트해야 합니다 ./etc/fstabsda4sda4

(UUID 대신 파티션/장치 이름을 사용하도록 선택한 경우에도 동일한 위치를 모두 변경해야 합니다.)

관련 정보