다른 컴퓨터에서 복원 한 후 Grub에서 UUID를 수정하는 방법은 무엇입니까? 모든 사용자 정의, 문서, 설치된 소프트웨어

모든 사용자 정의, 문서, 설치된 소프트웨어 등을 사용하여 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의 응답은이를 복구하는 상당히 간단한 방법이 있기를 바랍니다.



답변

현재 문제를 해결하려면 “/ 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를 사용하여 이전 컴퓨터를 새 컴퓨터에 복제하는 것을 고려할 수 있습니다.


답변

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


답변

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 서버를 한 호스트에서 다른 호스트로 옮겼습니다.