암호화된 파일 시스템에 GRUB를 다시 설치할 수 없습니다

암호화된 파일 시스템에 GRUB를 다시 설치할 수 없습니다

GRUB를 포함하여 /boot 디렉토리의 내용을 삭제하는 실수를 저질렀습니다(그런데 시스템을 부팅할 수 없게 된다는 사실을 인지하지 못한 채 삭제하기 쉽습니다)!

재부팅하기 전에 GRUB을 디렉터리에 다시 복사하려고 했지만 잊어버리고 재부팅했는데 당연히 부팅에 실패했습니다. 암호화된 파일 시스템과 암호화된 홈 디렉터리가 있습니다.

이제 liveUSB에서 다양한 포럼 제안을 시도하고 있습니다(직접 게시하지 않음)....운이 없습니다. 암호화된 드라이브를 성공적으로 마운트했지만(예) 부팅 복구 패키지와 grub 복구 모두에서 오류가 발생합니다. 이것은 내 붙여넣기 상자입니다. http://paste.ubuntu.com/14875709/

이런 상황에 처한 사람이 있습니까? 도움을 줄 수 있습니까?

디스크 드라이브:

Device       Start       End   Sectors  Size Type   
/dev/sda1     2048   1050623   1048576  512M BIOS boot   
/dev/sda2  1050624   1550335    499712  244M Linux filesystem   
/dev/sda3  1550336 976771071 975220736  465G Linux filesystem   
/dev/sdb1  *      128 3911679 3911552  1.9G  b W95 FAT32  

아래 제안된 grub-install, update-grub 순서를 시도했는데 일련의 경고가 발생했습니다.

/run/lvm/lvmetad.socket: connect failed: No such file or directory  
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.  

그러나 성공한 것 같습니다. grub-install이 종료됩니다.

Installation finished. No error reported.  

update-grub은 다음으로 끝납니다.

Adding boot menu entry for EFI firmware configuration  
done  

그런데, 나도 (이전에) 편집 /etc/default/grub하고 추가했다는 점을 언급하고 싶습니다.

GRUB_ENABLE_CRYPTODISK=y  

다른 포럼에서 제안한 대로 - 꼭 필요한가요?

어쨌든, 재부팅 후 즉시 암호화된 디스크 비밀번호를 요청한 후 이를 수락하는 것처럼 보이고 그럽 메뉴가 표시되며 대부분의 부팅 시퀀스를 완료한 후 다음 오류가 표시됩니다(정확하지 않을 수 있으므로 적어 두었습니다).

drm:intel_pipe_config_compare error: mismatch in ips_enabled (expected 1, found 0)  

이는 나에게 busybox 비상 쉘 프롬프트를 보내고 다음과 같은 cat /proc/cmdline이유로 이 작업을 수행하도록 조언합니다.

/dev/mapper/ubuntu--vgroot does not exist  

하지만 존재합니다. liveCD를 통해 설치할 수 있으며 암호화되어 있을 뿐입니다. 그래서 또 갇혔어요.

고쳐 쓰다:제안된 대로 "/etc/lvm/lvm.conf" 편집을 시도했는데 이제 재부팅하면 grub 메뉴가 표시되지만 Ubuntu를 선택한 후 동일한 오류와 함께 다시 비상 셸로 이동합니다.

drm:intel_pipe_config_compare [i915] ERROR mismatch in ips_enabled (expected 1, found 0)

답변1

당신이 우분투에 대해 이야기하고 있기 때문에 그것을 사용한다고 가정하겠습니다.

문제를 해결하려면 다음을 수행하세요.

  • 먼저, 현재 작업 중인지 확인하세요.설치됨실시간 시스템이 아닌 시스템입니다. 라이브 이미지에는 일반적으로 자체 루트 파일 시스템이 있으므로 grub을 다시 설치하기가 더 어렵습니다. 에 루트 파일 시스템이 마운트되어 있다고 가정하면 /mnt다음 명령을 실행하여 이 작업을 수행할 수 있습니다(모두 루트로 실행되므로 필요한 경우 sudo 또는 이와 유사한 명령을 사용).

    mount -o bind /dev /mnt/dev
    mount -t process proc /mnt/proc
    mount -t sysfs sys /mnt/sys
    chroot /mnt
    

    마지막 명령은 설치된 시스템에서 쉘을 시작합니다. 이 셸에서 다음 명령을 실행하세요.

  • MBR에 grub을 다시 설치하십시오: grub-install --boot-directory=/boot /dev/sda. 이는 컴퓨터에 하드 드라이브가 하나만 있거나 여러 개의 하드 드라이브가 있는 경우 슬레이브로 설정되어 있다고 가정합니다 sda. 그렇지 않은 경우 적절하게 조정하십시오.
  • 좋은 결과를 얻으려면 그럽 메뉴를 다시 생성하십시오 update-grub.
  • 이제 쉘을 종료하고 다시 시작하십시오.

모든 것이 정상으로 돌아가야 합니다. 그렇지 않은 경우 실패한 이유에 대한 자세한 내용으로 질문을 업데이트하십시오.

고쳐 쓰다lvmetad: update-grub이 게스트 시스템 대신 호스트 시스템에서 실행 중인 시스템과 통신 하려고 하기 때문에 여전히 문제가 발생하는 것 같습니다. 이 문제를 해결하는 가장 쉬운 방법은 데몬을 (일시적으로) 비활성화하는 것입니다. 이렇게 하려면 을 편집하고 /etc/lvm/lvm.conf표시된 설정을 찾아 use_lvmetad = 1로 설정하십시오 0. 그런 다음 재구축 initramfs를 실행하십시오 update-initramfs -u -k all.

관련 정보