"update-grub" 실행 시 Ubuntu 18.04 서버 설치가 66%에서 멈춤

"update-grub" 실행 시 Ubuntu 18.04 서버 설치가 66%에서 멈춤

Ubuntu 서버를 설치하려고 하는데 grub을 업데이트할 때 마지막 단계에서 계속 멈춥니다. 프로세스를 취소하고 시스템을 재부팅하면 grub 명령 프롬프트가 표시됩니다 grub>.

프롬프트에서 수동으로 시작해 보았습니다.

root=(hd1,gpt5)       # Ubuntu root partition
linux   /boot/vmlinuz-something-   root=/dev/sda5
initrd    /boot/initramfs-something-
boot
<enter>

일부 시작 메시지를 스크롤한 후 계속 멈췄습니다.

Busybox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3) built-in. shell (ash) 

initramfs>프롬프트를 따르십시오 . 여기에서 나는 exit 커널 패닉을 보여주었습니다! 여기에 두 가지 팁이 있습니다.

mount: mounting/says on /root/says failed : No such file or directory
mount: mounting /process on /root/process failed: No such file or directory

답변1

해결책은 아니지만 몇 가지 해결 방법. 분명히 이것은허점os-prober에서. 저는 개인적으로 두 번째 방법을 시도했는데 정말 효과가 좋았습니다! 링크에서 인용:

해결 방법 1: (활성)

"마스터 부트 레코드에 GRUB 부트 로더를 설치하시겠습니까?" 프롬프트가 표시되면
(제 경우에는 그러한 프롬프트가 나타나지 않았지만 grub이 설치된 시점을 알아냈습니다) 콘솔(ctrl+alt+[f2-f6])로 전환하고 삭제합니다. 이 파일:

rm /target/etc/grub.d/30_os-prober

이렇게 하면 update-grub이 os-prober를 실행하는 것을 방지하고 이 문제가 발생하는 것을 방지할 수 있습니다. 물론 다른 운영 체제는 나열되지 않지만 최소한 이렇게 하면 설치 프로세스가 완전히 중단되는 것을 방지할 수 있습니다. 부팅된(암호화되지 않은) LVM과 표준 및 SSH 작업이 있는 가상 머신에서 이것을 성공적으로 테스트했습니다(원래 문제를 재현한 방식입니다).

해결 방법 2: (반응)

그렇지 않고 프로세스가 중단되면 ps 출력의 첫 번째 열에서 프로세스 식별자(PID)를 찾습니다.

ps | grep 'dmsetup create'

그런 다음 dmsetup 프로세스를 종료합니다. 위의 출력에 따르면 다음과 같습니다.

kill 19676

(위와 동일한 설정/선택을 사용하여 가상 머신에서 성공적으로 테스트되었습니다.)

키비

답변2

2x SAS.a의 HDD 드라이브 에 설치할 때 이런 일이 발생했습니다.PERC RAID 1Dell Poweredge r630

콘솔을 받고 ctrl+alt+f2프로세스를 종료한 다음 설치 프로그램으로 돌아왔습니다 ctl+alt+f1. 마일리지는 다를 수 있습니다.

답변3

사전 구축된 자동화 솔루션

GRUB_DISABLE_OS_PROBER=true나중에 커널 매개변수를 전달하면 --- 단계 grub-install가 66%에서 중단되지 않고 변수가 대상 호스트의 grub 설정에 추가됩니다.

예를 들어:

/etc/default # grep PROB grub
GRUB_CMDLINE_LINUX="GRUB_DISABLE_OS_PROBER=true"

의 코드로 인해 작동합니다./etc/grub.d/30_os-prober

if [ “x${GRUB_DISABLE_OS_PROBER}” = “xtrue” ]; then
exit 0
fi

답변4

Bionic 18.04에서 이 문제가 발생했습니다. 제안된 답변이 작동하지 않습니다.

우분투 설치 중 멈추는 프로세스는 grub-probe입니다.

이는 SAS 하드 드라이브 읽기 오류로 인한 것 같습니다(아마도 서버 구성에 따라 다름). 이 드라이브는 설치 중에는 필요하지 않지만 /dev/ 및 /sys/block에는 여전히 존재합니다.

해결책은 /dev에서 이러한 드라이브를 숨기고 파티셔닝 프로세스를 다시 시작하는 것입니다. (또한 프로세스 ID -> 를 찾아 터미널에서 멈춰 있는 grub-probe를 종료해야 합니다 ps | grep grub-probe)

숨기려는 /dev/ 장치를 결정하고 다음 명령을 사용해야 합니다.

echo 1 > /sys/block/$dev/device/delete;

for 루프를 사용하여 설치 대상이 아닌 모든 드라이브 /dev/sd*에서 위 명령을 실행합니다.

관련 정보