LiveCD에서 update-grub을 어떻게 실행합니까?


62

좋아, 바보 같은 짓을 했어 Grub 항목을 정리하려고했지만 실수로 Grub에서 모든 Linux 커널을 제거했습니다 (아직 하드 드라이브에 있음). 이제 Grub은 우분투로 부팅 할 수있는 방법을 제공하지 않습니다. Windows로 부팅 할 수는 있지만 Ubuntu는 표시되지 않습니다.

그래서 나는 우분투를 목록으로 복원하기 위해 어떻게 든 "sudo upgrade-grub"을 실행하고 싶습니다. LiveCD로 부팅 할 수 있지만 일단 해당 명령을 어떻게 실행합니까? (내 우분투 설치는 sda5에 있습니다.)


이것은 단지 이일 전 - 해냈어 ... 완벽하게 작동 opensource-sidh.blogspot.in/2011/06/...
Nirmik

이 스레드에서-12.10 명령에서 update-grub이 grub <2.0에서 작동하지 않는다는 것을 가리키고 싶습니다! -저 자신은 지난 주말에 grub-install로 12.10 (pear OS 7.0.1)의 설치를 완료 한 다음 update-grub이 작동하지 않았습니다. supergrub-CD로 복구해야했습니다.
dschinn1001

답변:


81

grub 부트 로더가 나타나지만 메뉴가 비어 있다고 말했기 때문에 grub을 다시 설치할 필요는 없지만 요청에 따라 update-grub을 실행하십시오. 이를 위해 Live CD를 사용하고 하드 디스크에서 관련 파티션을 마운트하고 chroot를 마운트 된 디렉토리에 마운트 한 다음 update-grub을 실행하면 실제 하드 디스크에서 작업하는 것처럼 작동합니다.

"설치하지 않고 Ubuntu 사용"을 선택하여 Live CD로 부팅하십시오.

부팅되면 터미널 (ctrl-alt-t)을 열고 우분투 파티션을 / mnt에 마운트하십시오. 우분투 파티션이 / dev / sda5라고 가정하지만 직접 결정해야합니다. 이 작업을 수행하는 데 도움이 필요하면 알려주십시오.

sudo mount /dev/sda5 /mnt

그런 다음 필요한 디렉토리를 몇 개 더 마운트하십시오.

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

또한 별도의 Ubuntu 부팅 파티션이있는 경우 (요즘 매우 드물지만 실제로는 가능할 수 있음) :

sudo mount /dev/sdaX /mnt/boot

부팅 파티션이 있는지 어떻게 알 수 있습니까?

Ubuntu 파티션이 마운트되면를 엽니 다 /mnt/etc/fstab. 에 대한 항목이 표시되면 해당 /boot장치가 가리키는 장치 를 확인하십시오 ( /dev/sda4아마?). 이것은 당신이 마운트 해야하는 것입니다.

이것들이 마운트되면 chroot를 실행하여 마운트 된 디렉토리를 루트 파티션으로 사용하십시오 :

sudo chroot /mnt

당신은 얻을 것이다 #/프롬프트를. 가장 먼저 할 일은 올바른 /boot디렉토리를 사용하고 있는지 확인하는 것 입니다. 가서 /boot/grub거기에있는 파일들을보십시오. 많은 .mod 파일과 grub.cfg 파일이 있어야합니다. 디렉토리가 비어 있으면 실제 boot디렉토리 가 아니기 때문에 계속하지 마십시오 . 추가 boot디렉토리 를 마운트해야하는지 판별하는 방법을 보려면 위를보십시오 .

당신은 확인하면 /boot/그것이 의미, 올바른 파일이 포함되어 있습니다 정확한 위치, 유형 :

sudo update-grub

메뉴 항목으로 /boot/grub/grub.cfg 파일을 다시 작성해야합니다.

그런 다음 chroot를 종료하십시오.

exit

이 시점에서 사물이 올바르게 업데이트되었는지 확인할 수 있습니다. 이를 위해 cd /mnt/boot/grubgrub의 파일이 있는지 확인하십시오. .mod 파일과 grub.cfg가 있어야하며 후자는 우분투 커널에 대한 항목이 있어야합니다. grub.cfg 만 표시되고 .mod 파일이없는 경우 이것이 올바른 부팅 디렉토리가 아님을 의미하며 별도의 부팅 파티션을 마운트하는 방법은 위를 참조하십시오.

파일 시스템을 마운트 해제하십시오.

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

그런 다음 재부팅하면 Grub 메뉴가 복원되기를 바랍니다.


세 개의 마운트 명령을 실행하려고하면 "마운트 포인트 / mnt / dev가 없습니다"또는 각각에 해당하는 명령이 나타납니다.
Kelley

Ubuntu가 / dev / sda5에 설치되어 있습니까? 그렇다면 우분투 설치 트리를 볼 수 있고 볼 sudo mount /dev/sda5 /mnt수 있어야합니다 cd /mnt. dev, sys 및 proc이 있어야합니다. 그렇지 않은 경우 잘못된 파티션을 마운트하고있을 수 있습니다. 이것을 확인할 수 있습니까? 감사!
roadmr 2016 년

LiveCD를 다시 시작했는데 이번에는 작동하는 것 같습니다. 조심했지만 처음에 잘못된 것을 입력 했어야합니다. 어쨌든, 지금 재부팅 중입니다 ... 아무것도 변경되지 않았습니다. 여전히 Grub 메뉴에서 Ubuntu를 선택할 수 없습니다.
Kelley

따라서 "sudo mount / dev / sda5 / mnt"를 실행 한 다음 "cd / mnt"를 실행 한 후 dev, sys 및 proc이 표시됩니다.
Kelley

1
당신은 선생님, 생명의 은인입니다 :) 감사합니다. 매력처럼 일했다.
ereOn

14

라이브 CD에서 부팅하십시오.

히트 Alt+ Ctrl+ T터미널을 열고 다음 명령을 실행합니다 :

sudo 마운트 / dev / sda5 / mnt

GRUB2 부트 로더를 설치하십시오 :

sudo grub-install --root-directory = / mnt / dev / sda

그건 /dev/sda- 하드 디스크 자체가 아닌 우분투 파티션 - /dev/sda5.

Ubuntu 파티션을 마운트 해제하고 다음과 같이 컴퓨터를 다시 시작하십시오.

sudo umount / dev / sda5; sudo 재부팅

둘 이상의 OS가 설치되어 있으면 다음과 같이 OS를 다시 검색하십시오.

sudo update-grub

그게 다야!


1
삭제를 위해 광산을 신고 – 같은 일이 두 번 발생하지 않음
23 93 26 35 19 57 3 89

고맙지 만 작동하지 않습니다. Grub을 다시 설치하지만 재부팅해도 여전히 업데이트되지 않았으므로 Ubuntu 설치가 여전히 Grub에 표시되지 않습니다. 어떻게 든 LiveCD 에서처럼 재부팅하기 전에 Grub을 업데이트해야합니다.
Kelley

@Kelley 우분투 설치가 sda5에 확실합니까? 를 실행하여 확인할 수 있습니다 sudo fdisk -l. 우분투 설치는 */ dev / sdxx 뒤에 있습니다.
Basharat Sialvi 2016 년

예, sda5에 있습니다. 그러나 *는 sda2 뒤에 있습니다. 이는 내 Windows 파티션 (Grub 메뉴에서 유일한 선택이므로 부팅 할 수있는 마지막 파티션)입니다.
Kelley

Chroot. 다른 답변을 읽으십시오.
ish

1

그 문제에 대한 나의 해결책은 다음과 같습니다.

  1. http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/ 에서 supergrub2disk를 다운로드 하십시오.
  2. 펜 드라이브에 넣으십시오 http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. supergrub2disk가있는 pendrive에서 컴퓨터 부팅
  4. 우분투에 로그인
  5. https://help.ubuntu.com/community/Boot-Repair 에서 우분투 부팅 수리를 받으십시오

어쩌면 가장 빠른 솔루션은 아니지만 가장 쉬운 솔루션 일 것입니다.


1

이 솔루션은 roadmr의 대답과 똑같습니다.

  1. AntiX Live CD로 부팅하십시오.
  2. 메뉴> 응용 프로그램> 시스템 도구> 부팅 복구
  3. 'GRUB 구성 파일 복구'를 선택하십시오 (이 옵션은 update-grub을 실행합니다).
  4. / boot가 있는 드라이브 / 파티션을 선택하십시오
  5. 완료되면 재부팅하십시오.

제 경우에는 'GRUB Bootloader 다시 설치'로 해결되었습니다. 이중 부팅 창 / 리눅스 설정이 있습니다. Macrium 7을 사용하여 파일에 대한 드라이브 복제본을 만들었습니다. 그런 다음 해당 파일을 새 드라이브로 복원하십시오. 새 드라이브로 복원 한 후 왼쪽 상단에 커서가 깜박 거리 면서 검은 색 화면으로 부팅됩니다 .



-1

큰 도움을 주셔서 감사합니다! 그러나 결국 아무것도 작동하지 않는 것 같았고 별도의 / home 파티션이 있었으므로 데이터 손실없이 Ubuntu를 다시 설치할 수있었습니다. 여전히 프로그램을 다시 설치하고 일부 구성을 수행해야하지만이 시점에서 모든 것이 좋아 보입니다.


1
어떻게 든 해결했다는 것을 알게되어 기쁘지만 chrooting이 효과가 있었기 때문에 최선의 해결책이라고 생각합니다.
Mahesh

예. 왜 작동하지 않는지 모르겠지만 대답은 훌륭했습니다 (그리고 나는 그것을 찬성했습니다). 너희들은 많은 도움을 주었고 아마도 그 대답은 다른 사람 이이 문제를 극복하는 데 도움이 될 것입니다.
Kelley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.