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


25

Live CD에 들어가서 터미널을 활성화했습니다. 그런 다음 gksu nautilus루트 디렉토리에 임시로 액세스하도록 입력 했습니다. 관리자 창이 열리면 파일 시스템을 클릭하고 /etc/default/grub디렉토리로 이동했습니다 . 그런 다음 Grub 파일을 두 번 클릭하여 TIMEOUT및 을 변경했습니다 TIMEOUT_QUIET.

변경 후 파일을 저장했습니다. 그런 다음 터미널 모드로 돌아가서 다음을 입력했습니다.

gksu update-grub

내가 얻은 오류 메시지는 다음과 같습니다.

/에 대한 장치를 찾을 수 없습니다 (/ dev가 마운트되어 있습니까?)

이 시점에서 어떻게해야할지 모르겠습니다. update-grub변경 사항을 업데이트하기 위해 어떻게 실행할 수 있습니까? 도움을 주셔서 감사합니다. 이 환경에 완전히 익숙하지 않으므로 귀하의 답변에 매우 상세하고 구체적으로 설명하십시오.

답변:


24

1 단계-참고 : 라이브 CD를 사용하지 마십시오.

  • 우분투에서 터미널을 엽니 다 ( Ctrl+ Alt+ T를 동시에 누름 )
  • 유형 gedit admin:///etc/default/grub
    텍스트 편집기 gedit를 실행합니다. 다른 것을 사용하는 경우 대신 이름을 입력하십시오 gedit.
  • 변경하고 싶은 내용을 저장하십시오.
  • gedit를 닫습니다.
    터미널은 여전히 ​​열려 있어야합니다.
  • 터미널 유형 sudo update-grub에서 업데이트가 완료 될 때까지 기다리십시오.
  • 컴퓨터를 재부팅하십시오.

2 단계-시스템에 로그인 한 후

  • 터미널을 다시 엽니 다 ( Ctrl+ Alt+ T).
  • 터미널에 입력 gksu gedit /etc/default/grub
  • 부팅시 grub-menu를 보려면
    다음 줄을 주석으로 처리하거나 제거하십시오.GRUB_HIDDEN_TIMEOUT=0
    • #이 줄의 시작 부분에 주석을 추가 하면 결과는 다음과 같습니다.#GRUB_HIDDEN_TIMEOUT=0
  • 파일을 저장하십시오.
  • 다시 터미널에서 실행 sudo update-grub합니다.

부팅 할 때 grub 메뉴를 보는 것이 파일에 대한 이전 변경 사항을 취소해야하는 유일한 경우입니다.


답변 주셔서 감사합니다. 내가 해결하려는 원래 문제는 그럽 메뉴를 열 수 없다는 것입니다. 따라서 라이브 CD를 사용하여 grub 구성 파일에 액세스하고 변경해야한다고 생각했습니다. TIMEOUT을 10으로 변경하고 TIMEOUT_QUIT를 true로 변경하면 Grub 메뉴에 액세스 할 수 있습니다. 시스템을 부팅 할 때 Shift 키를 누르고 있습니다. GRUB MENU라는 단어가 잠시만 나타납니다. 따라서 Live CD를 사용하여 터미널에 액세스 할 수 없으면 GRUB 구성 파일을 수정하는 방법에 대한 손실이 있습니다. 이것을 달성하는 방법에 대한 제안?
newbietoubu

jeroen이 직접 대답했다고 생각합니다. 아마도 grub에있는 동안 grub 메뉴를 수정하려고합니까 ???
pfeiffep

2
개선 된 답변을 참조하십시오.
jeroen

6

Live CD는 쓰기 가능한 파일 시스템을 마운트하지 않기 때문에 해당 메시지가 나타납니다. 우분투를 시험해 보거나 손상된 시스템을 구출하기 위해서만 사용됩니다. 실행 sudo update-grub은 기본 GRUB 파일에 대한 쓰기 액세스 권한이있는 설치된 Ubuntu 버전에서만 작동하며 Live CD에서는 작동하지 않습니다.


4
좋은 정보뿐만 아니라 같은은 그가에서 원하는 변화 할 수있는 방법을 알 수있는 것 OP /etc/default/grub다음과 update-grub.
chaskes

2

설치된 Ubuntu Distro의 라이브 CD에서 update-grub을 수행 할 수 있습니다 ([debian-based?] linux distro와 함께 작동한다고 가정하지만 "필수"입니다 (다른 방법이있을 수 있지만이 방법을 알고 있음). 드라이브를 복제하고 컴퓨터에 이미 새 드라이브를 설치 한 경우 전혀 신경 쓰지 않습니다. 업데이트 그루브 단계가 하위 세트이며 접근 방식이 동일하기 때문에 여기에서 광범위하게 복제를 언급합니다. 이 방법은 복제 컨텍스트에서 검색을 통해 발견되었으며, 복제하지 않을 경우 필요한 정보를 얻을 수 있으며 프로세스가 단순화됩니다.

나는 여기에 자격이 있어야합니다; 단순히 update-grub을 수행하는 것이 아니라 복제를 위해 중요합니다. BIOS 시스템에서만이 작업을 수행했습니다. UEFI 시스템에서 시도하지 않았습니다. UEFI 시스템에는 부팅 로딩을위한 FAT 파티션이 필요하며 복제 복사 단계에서이 파티션을 가져와야하는지 테스트하지 않았습니다. 라이브 세션 중 기본 그럽 환경을 합성하는 필수 [바인드] 마운트에 영향을 미칠 것으로 예상됩니다 ...

자세한 내용은 http://frugaltech.happystoic.com/ssdlinux 페이지를 참조 하십시오 . 이 방법을 여러 번 사용했으며이를 사용하여 ad-infinitum 주위의 하드 드라이브를 교체 할 수 있습니다. 물리적 인 하드 드라이브 교환은 이런 식으로 너무나 사소 해 져서, 그것을 스스로 취미로 만들거나 다른 사람들의 엉망인 컴퓨터를 고치려고합니다.

다음은 여기서 찾을 수있는 유용한 설명입니다.

  1. CtrlBash 터미널의 경우 + Alt+ T를 사용 sudo -s하고 라이브 세션 중에 수퍼 유저 셸 ( )을 입력하십시오 .

  2. 전체 설치 드라이브 파티션 (또는 영구 Linux 파일 시스템 루트 디렉토리가 됨)을 마운트하십시오.

    2a. 하드 드라이브에 전체 설치가 이미 존재하면 (2)로 건너 뜁니다. 정리중인 경우 : [이 경우 완전히 새로 설치되므로 새로 설치하지 않는다는 가정을 기반으로] 전체 설치가이 파티션에없는 경우 이제 간단하게 할 시간입니다.

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [이 마운트 지점은 순전히 라이브 세션 환경과 관련이 있습니다. 우분투에서는 일반적으로 "/ media / ubuntu / ???"형식으로 새 드라이브 [파티션]에 있습니다.

    2b. 다른 운영 체제 전체 설치는 여기에서 같은 방식으로 처리 할 수 ​​있습니다. 나는 일반적으로 Windows 기반 리소스를 사용하여 미리 Windows 파티션을 새 드라이브에 대량 복사하지만 rsync를 사용했으며 Win XP에서도 작동했습니다 (ntfs와 같은 올바른 파티션 형식을 지원한다고 가정합니다). 라이브 세션 미디어는 일반적으로 대체 형식 지원을 포함합니다. /대상의 이름을 완전히 지정하는 경우 철자를 조심 하고 소스 디렉토리에서 후행 을 사용하십시오 .

  3. live /dev, /proc/sys디렉토리를 사용하려는 [마운트 된] 영구 전체 설치 파티션의 해당 디렉토리에 바인드 마운트하십시오 . 위의 링크에 자세히 설명 된 스크립트는 "for"문으로이를 매우 우아하게 수행합니다. 또한 제공된 스크립트는 스크립트 자체로 실행될 필요가 없습니다. bash 프롬프트에서 한 줄씩 입력 할 수 있습니다.

  4. chroot영구적 인 전체 설치 파티션에. (3) 및 (4)를 수행 한 후 시스템은 이제 "최종 파일 시스템"에 "가상적으로 상주"하고 GRUB은 동종 적으로 작동합니다. 이 단계가 없으면 grub은 시스템이 단순히 라이브 세션이라고 가정하며,이 경우 어떤 일을하는지 구체적으로 알지 못하지만이 스레드에서 위에서 언급 한 결과는 충분하지 않습니다.

  5. /dev/sdX영구 설치 (또는 다중 드라이브 [, 다중 부팅] 시스템 인 경우 GRUB를 호스팅 할 드라이브)에 해당하는 (마운트 지점이 아닌 드라이브) 에서 grub-install을 실행 하십시오. 유연성은 빈티지와 BIOS에 따라 달라질 수 있습니다. 내가 아는 한 "grub-install"을 실행하는 것은 필요하지 않은 경우 해로운 것이 없으므로이 라이브 세션 방법을 사용하는 경우 항상 수행합니다.

  6. update-grub을 실행하면 실행중인 시스템이 미래의 영구 파티션에 중첩되어 사용 가능한 모든 커널과 부팅 가능한 OS를 발견하는 것처럼 작동합니다.

  7. 물리적으로 하드 드라이브를 변경하지 않은 경우 (5)로 건너 뜁니다. 그렇지 않으면 /new/linux/filesystem/live-mount-point/etc/fstab파일을 편집하거나 확인 하여 [새로운] 환경에 맞는 파일 시스템 구조를 확보하십시오. 이 레벨에 있으면 blkid fstab에 UUID를 수확 하는 데 사용 하는 방법 에 대해 이미 알고 있습니다.

    IMHO : 자체 범위에서 UUID 값을 문자 그대로 업데이트해야하는 정도 (예 : at 언젠가는 / home 디렉토리 등에 추가 HDD를 설치해야합니다.) 이는 가장 기본적이고 강력하며 변하지 않는 접근 방식입니다.

  8. chroot 종료, supershell 종료, bash 종료, 종료 및 라이브 매체없이 시스템을 시작하십시오. 이제 원하는 위치에 있어야합니다.

    중요 참고 : mountchroot에 대한 인수 는 라이브 세션에 해당하는 디렉토리 (일반적으로 /mnt/??또는 같은 마운트 포인트 /media/??)입니다. 대부분의 경우 전체 설치가 자체 파티션에 상주하므로 여기서 "디렉토리"및 "마운트 포인트"라는 용어는 본질적으로 동의어입니다. grub-install에 대한 인수는 물리 드라이브입니다. 일반적으로 /dev/sdX"X"는 시스템의 드라이브, sda, sdb 등에 해당하는 문자이므로 세션에 의존해서는 안됩니다.

이제 끝났습니다. 이 방법을 사용하여 Ubuntu 및 Puppy와 함께 다양한 순열에서 Windows (XP 및 7)를 동시에 복제했으며 실패하지 않았습니다. 나는 그들이 사용하려는 GRUB 버전을 제공하는 한 다른 배포판의 라이브 매체를 사용할 수 있다고 생각합니다 (그러나 다른 우분투 풍미와 민트 만 사용했습니다). 이를 사용하여 파티션을 이동하고, 드라이브를 교체하고, 다른 OS 설치를 결합하고, SSD로 또는 SSD에서 복제 할 수 있습니다. 그러나 같은 기계에서만 작동한다고 말할 수 있습니다. 다른 컴퓨터에 필요할 수있는 드라이버를 이전 전체 설치 중에 건너 뛴 것으로 가정합니다. 경험상 컴퓨터에서 드라이브를 전환하려면이 방법이 필요하지만 드라이브가있는 컴퓨터를 전환하려면 전체를 다시 설치해야합니다.

아마 누군가가이 문제를 해결할 수 있을까요?


1
Ask Ubuntu에 오신 것을 환영합니다! :-) 훌륭한 첫 답변! +1
Fabby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.