다른 컴퓨터에서 복원 한 후 Grub에서 UUID를 수정하는 방법은 무엇입니까?


22

모든 사용자 정의, 문서, 설치된 소프트웨어 등을 사용하여 Ubuntu 12.04의 전체 tar 백업을 다른 시스템으로 복원하고 싶습니다.

다음 명령으로 백업을 만들었습니다.

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

새 컴퓨터에서 Ubuntu 12.04를 새로 설치하고 백업 파일을이 파일로 옮긴 다음 다음과 같이 백업 파일로 복원했습니다.

tar xvpfz backup.tgz -C /

예상대로 (이 질문에 대한 Mike Whatever의 답변 : 한 컴퓨터에서 다른 컴퓨터로 모든 설정으로 우분투 배포판을 복사하십시오) 이 문제를 일으켰습니다. 컴퓨터를 켤 때 오류가 발생합니다.

error: no such device: ...

press any key to continue ...

Grub이 손상된 이유는 UUID가 컴퓨터의 하드 드라이브가 아닌 이전 하드 드라이브에서 일치하는 UUID를 찾고 있기 때문입니다.

새 하드 드라이브를 인식하도록 grub을 수정하려면 어떻게해야합니까? 온라인 도움말 "Fix GRUB UUID"를 찾았지만 단계가 오래되었거나 복잡해 보였습니다. 위의 링크 된 Mike의 응답은이를 복구하는 상당히 간단한 방법이 있기를 바랍니다.


1
왜 clonezilla (clonezilla.org)를 사용하여 이전 컴퓨터의 스냅 샷을 만들어 새 컴퓨터에 복원하지 않습니까? 나는 당신이 모든 것을 그대로 유지하고 싶어하기 때문에 실제로 더 쉬울 것이라고 생각합니다. 그렇지 않으면 소프트웨어를 제외하고 백업 (/ home, / etc, / usr / local, / var)을 만들고 데이터 및 사용자 정의를 복원하는 것이 매우 쉽습니다. 현재 문제를 해결하려면 UUID를 변경해야합니다 / etc / fstab 및 /boot/grub/menu.lst에 있습니다. Ubuntu 설치 CD를 사용하여 UUID (gparted 또는 command line)를 가져 와서 변경할 수 있습니다.
Golboth

답변:


19

현재 문제를 해결하려면 "/ etc / fstab"및 "/boot/grub/grub.cfg"에서 UUID를 변경해야합니다 (매우 까다 롭습니다).

Ubuntu 설치 CD를 사용하여 gparted와 함께 UUID를 가져올 수 있습니다 (UUID를 가져올 파티션을 마우스 오른쪽 버튼으로 클릭하고 "정보"를 클릭 한 다음 UUID를 선택하고 CTRL + C) 또는 명령 줄 (sudo blkid ).

그런 다음 gedit, nano 등으로 올바른 볼륨에서 "/ etc / fstab"을 편집해야합니다.

터미널에서 다음을 입력하십시오.

gksudo gedit /etc/fstab

이전 UUID를 새 UUID로 바꿉니다.

중요 : 물론 부트 CD를 사용하여 "/ etc / fstab": "/ media / xxxxx / etc / fstab"앞에 "/ media / xxxxx"를 추가해야합니다. 당신은 또한 사용할 수 있습니다gksudo gedit파일을 하고 열어서 편집 .

경고 : "/boot/grub/grub.cfg"수정은 매우 까다 롭습니다. 일반적으로 다음 명령으로 생성해야합니다sudo update-grub .

터미널에 다음을 입력하여 이전 UUID를 "/boot/grub/grub.cfg"의 새 UUID로 바꾸십시오.

gksudo gedit /boot/grub/grub.cfg

중요 : 물론 부트 CD를 사용하여 "/boot/grub/grub.cfg"전에 "/ media / xxxxx"를 추가해야하는 경우 : "/ media / xxxxx / boot / grub / grub. cfg ". 당신은 또한 사용할 수 있습니다gksudo gedit파일을 하고 열어서 편집 .

까다로운 솔루션을 사용하는 경우 시작하는 것이 좋습니다. sudo update-grub 시스템을 성공적으로 부팅 한 후에 .

깨끗하고 간단하게 그럽을 재구성하는 방법은 "Boot-Repair-Disk"와 같은 부팅 복구 디스크를 사용하는 것입니다 http://sourceforge.net/p/boot-repair-cd/home/Home/

이것이 문제 해결에 도움이되기를 바랍니다.

그러나 내 의견에 표시된 것처럼 Clonezilla를 사용하여 이전 컴퓨터를 새 컴퓨터에 복제하는 것을 고려할 수 있습니다.


감사합니다. 부팅 복구 디스크 사용에 대한 제안을 끝내고 효과가있었습니다.
snowguy

clonezilla가 실제로이 문제를 해결하지 못할 수도 있습니다. 방금 전체 hdd (clolonezilla를 통해)를 SSD에 복사하고 hdd 및 SSD에 대해 동일한 UUID를 가졌으며 ssd에서 수동으로 uuid를 변경 한 다음 ssd에서 위에서 언급 한 파일에서 여전히 대체 hdd를 갖습니다. 가능한 부팅 OS
Dennis Nolte

3

아마도 이것은 grub이 시작되어 Ubuntu로 부팅하는 옵션을 표시하지만 부팅을 선택하면 선택하지 않습니까?

두 가지 옵션이 있습니다.

  1. GRUB 라인 편집기를 사용하여 Linux 부팅 옵션을 수정하여 Linux를 올바르게로드 한 다음 grub-install을 루트로 실행하여 올바른 구성을 영구적으로 설정하십시오.
  2. Ubuntu USB 스틱에서 부팅하고, 우분투 디스크 파티션을 마운트 한 다음 chroot를 넣고 grub-install을 실행하십시오.

첫 번째 경우는 Ubuntu 만 있고 하드 디스크가 하나 뿐인 경우 더 쉽습니다.이 경우 "Ubuntu 복구"옵션을 선택하고 "e"를 눌러 편집하십시오.

항목은 다음과 같아야합니다.

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

"search"행을 제거하고 "linux"행의 "root = UUID = XXXXX"를 "root = / dev / sda1"로 바꾸십시오. 이것을 시도하고 부팅하면 짧은 시간이 지나면 grub 옵션이 있어야하는 gbuntu 복구 메뉴가 제공되므로 grub을 올바르게 다시 설치해야합니다.

그렇지 않으면 또는 grub을 직접 엉망으로 만들지 않으려면 (건강 경고가 표시되어야 함) https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2에 설명 된대로 CD / USB 스틱을 사용 하십시오.


참고로, 시작했을 때 grub 시작 옵션을 보지 못했습니다 (유일한 OS이기 때문에 우분투로 직접 부팅하기 때문일 수 있습니다). 어쨌든 나는 당신의 도움에 감사드립니다. 부팅 복구 디스크를 만들었습니다.
snowguy

고마워요! 어리석게도 fstab의 UUID를 변경하고 Ubuntu를 더 이상 시작할 수 없었을 때 당신의 대답은 나쁜 끝에서 저를 구했습니다.
reexmonkey

0

제 경우에는 grub이 설치 한 UUID가 현재 UUID와 다릅니다 (sudo blkid Windows 파티션에 대한 ) (grub.cfg에서 확인)와 다릅니다. 여러 가지 방법으로 실패했습니다. 마지막으로 파일 관리자로 Windows 파티션을 마운트하고 update-grub다시 실행 했으며 UUID가 grub.cfg에서 성공적으로 업데이트되었습니다.


프로그램이 호출 update-grub되고 호출 되지 않습니다 grub-update. 대부분의 grub 명령이로 시작하기 때문에 분명하지 않습니다 grub-....
Fa11enAngel

0

fstab 및 grub을 편집하는 대신 내가 한 일 :

  1. 우분투를 새로 설치할 때 해당 파일을 백업했습니다. tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg )를
  2. 백업에서 복원 ( tar -xvpf /mnt/remotebk/full.tar)
  3. 복원 된 fstab 파일 복사 ( cp /etc/fstab /somedir/fstab.restored)
  4. 새로 설치 한 부팅 파일을 복원합니다 ( tar -xvpf /somedir/boot.tar -C /).
  5. 재부팅하고 작동했습니다.

나는 vmware 가상 머신을 사용하고 있습니다.이 프로세스를 수행하여 하나의 Linux 서버를 한 호스트에서 다른 호스트로 옮겼습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.