AWS 서버에서 Ubuntu를 업그레이드 할 때 "새 버전의 /boot/grub/menu.lst를 사용할 수 있습니다"


29

방금 sudo do_release_upgradeAWS EC2 Ubuntu 13.10 서버에서 14.04로 업그레이드하려고했습니다. 다음 메시지가 나타날 때까지 모든 것이 잘 진행되었습니다.

A new version of /boot/grub/menu.lst is available, but the version installed 
currently has been locally modified.

  What would you like to do about menu.lst?       

   * install the package maintainer's version
   * keep the local version currently installed
   * show the differences between the versions
   * show a side-by-side difference between the versions
   * show a 3-way difference between available versions
   * do a 3-way merge between available versions (experimental)
   * start a new shell to examine the situation

  <Ok>

나는 확실히 menu.lst를 수정하지 않았으므로 로컬 수정이 아마존이하고 있다고 가정합니다. "현재 설치된 로컬 버전 유지"옵션을 선택하고 최선을 다하겠습니다.

그러나 왜이 메시지가 표시됩니까? 이것이 올바른 메시지 처리 방법입니까?


답변:


8

이 문제는 다양한 문제로 인해 발생할 수 있으므로 단일 솔루션이 없습니다. 이 단계는 EC2에서 작동해야합니다.

출처:

이 문제는 Grub 레거시 구성 에서 로컬 및 원격 변경 충돌로 인해 발생 합니다. Grub 레거시와 Grub2는 다른 구성 위치를 사용합니다.

  • 기존 유산 : /boot/grub/menu.lst
  • 그럽 2 : /boot/grub/grub.cfg

원인 :

아마 Amazon EBS 지원 AMI를 사용하고있을 것입니다. 인스턴스는 사전 빌드 된 기본 이미지 (스냅 샷)에서 루트 파일 시스템을 구성합니다. grub 구성이 스냅 샷에 작성되었지만 UCF 레지스트리가 올바르게 제거되지 않았습니다. 이는 menu.lst구성이 로컬로 수정 되었다고 생각하는 스냅 샷이 있음을 의미합니다 . 자세한 내용은 여기에서 찾을 수 있습니다 : https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685

우분투가 grub에 UCF를 사용하는 이유는 여기에 설명되어 있습니다 : https://askubuntu.com/a/147079

해결책 :

작동하는 일반적인 솔루션 중 하나는 menu.list를 제거하고 다시 구성하는 것입니다. 이는 ucf 레지스트리 항목 및 구성 파일이 동일한 해시로 해석되도록합니다.

#Remove the menu.lst config.

sudo rm /boot/grub/menu.lst
# Generate a new configuration file. 
sudo update-grub-legacy-ec2 -y

#Upgrade the configuration
sudo apt-get dist-upgrade -qq --force-yes

두 번째 해결책은 UCF 구성을 수정하여 관리자 변경 사항을 자동으로 수락하는 것입니다.

unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /var/run/grub/menu.lst
sudo apt-get dist-upgrade -qq --force-yes

기권:

이 문제는 매우 광범위하며 사용 사례는 필요한 솔루션에 영향을 미칩니다. 가능하면 grub2로 업그레이드하는 것이 좋습니다. 시스템 파일을 수정하지 않고 Grub2를 구성 할 수 있습니다.

우분투 트래커에는 다양한 솔루션이 제공되고 이슈 보고서가 열립니다. 나는 그들 모두와 연결하고 싶지만 담당자가 없습니다.

행운을 빕니다 :)


우분투 18.04 W : --force-yes는 더 이상 사용되지 않습니다. 대신 --allow로 시작하는 옵션 중 하나를 사용하십시오.
Scott Stensland

2019 년 이며이 솔루션은 더 이상 작동하지 않습니다. 버그가 다시 회귀 한 것 같습니다. bugs.launchpad.net/cloud-images/+bug/1747464
DarkNeuron

0

이 질문의 나의 버전은 간다 : "내가 한 최근 EC2에서 자동 커널 upates 있고, apt-get autoremove -y후에도. sudo update-grub난 단지 참조 3.13.0-48에 나와 /boot/grub/menu.lst있지만 설치 커널 사이에 I 오전 나사 어떻게.?"

내 대답 : "아마도 나사로 고정되지 않았습니다. 다른 Ubuntu 시스템 menu.lst에는 존재하지 않으며 update-grub구성을 /boot/grub/grub.cfg대신 사용하는 것 같습니다. menu.lstEC2의 Ubuntu AMI의 이상한 아티팩트이거나 패키징 또는 로컬 구성 관리와 상호 작용하는 것 같습니다. "


0

개인적으로 저는 "버전 간 차이"를 보여주고 변경 사항을주의 깊게 확인한 다음 "개발"AWS 인스턴스의 새로운 차이점을 실험 해 보려고합니다. 내가 좀 더주의를 기울 였다면, 단순히 변경 사항에 대한 매뉴얼 페이지를 읽으면됩니다. .

또는이 가상 머신을 복제하고, 업그레이드를 수행하고, 어떤 일이 발생하는지 확인하고, 실패 할 경우 새 VM을 정리하고 다른 선택으로 프로세스를 다시 시작할 수 있습니다. 가상 머신은 이러한 이유만으로도 좋습니다.


0

방금 OVH의 VPS와 동일한 "문제"에 부딪 쳤습니다.
필자의 경우 (그리고 인터넷 검색 중에 찾은 다른 많은 사람들) 유일한 변경 사항은 공백이었습니다.
그들이 어디에서 왔는지 모르겠지만, 당신이 선택 show the differences between the versions하고 대답은 No non whitespace changes detected단지 관리자 버전을 취하는 것입니다.


-1

당신의 선택

  • 버전 간의 차이점을 보여

그때

  • 패키지 관리자 버전을 설치하십시오

또는

  • 현재 설치된 로컬 버전 유지

어쨌든, 당신은 지금 실행할 수 있습니다

ls -hl /boot/grub/menu.lst*
diff --suppress-common-lines /boot/grub/menu.lst*

1
-1; 이것은 전혀 질문에 대답하지 않으며 (실제로 이미 인용 한 메시지의 비트를 반복합니다) 제공된 코드를 실행하려는 이유 또는 수행 할 작업을 설명하지 않습니다.
Mark Amery

파일 해시 불일치로 인해 메시지가 옵션으로 표시되므로 올바른 옵션을 선택하려면 차이점이 있어야합니다. "whatis ls diff"는 명령 설명을 인쇄합니다.
Imya

"파일 해시 불일치로 인해 메시지가 옵션으로 표시됨" -예, 읽을 수 있습니다. 내 질문은 이러한 차이점이 EC2 인스턴스에 존재하는 이유와이를 유지 또는 폐기하면 어떤 결과가 발생하는지입니다. 귀하의 답변은이 문제를 전혀 다루지 않으며 메시지에 인쇄 된 내용 만 반복합니다. 귀하의 답변에는 Amazon 또는 EC2도 언급되어 있지 않습니다. 요청 된 질문과 관련이 없습니다.
Mark Amery

오보이, 심지어 파일의 내용을 제공하지 않고 다른 사람들이 그의 시스템에서 무슨 일이 일어나고 있는지 알기를 기다립니다.
Imya

1
"내 시스템"이 아닙니다. EC2에 대한 질문에 대한 표준 EC2 설치 동작에 대해 묻고 EC2 태그로 태그를 지정했습니다. 물론, 질문을 이해하고 대답 할 필요가 없기 때문에 파일의 전체 내용을 질문에 버리지 않기로 결정했습니다. EC2에서 Ubuntu를 사용하는 사람은 누구나 문제를 조사하려는 경우 내용을 확인할 수 있습니다. 질문하기 전에 인기있는 라이브러리의 소스 코드를 Stack Overflow 질문에 덤프하는 것보다 여기에 파일의 소스를 제공 해야하는 이유를 알 수 없습니다.
Mark Amery
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.