복제된 VM, OpenSUSE, VirtualBox를 사용할 수 없습니다.

복제된 VM, OpenSUSE, VirtualBox를 사용할 수 없습니다.

VM을 복제했는데 이제 부팅하는 동안 다음 메시지가 표시됩니다.

Trying manual resume from /dev/sda1
Invoking userspace resume from /dev/sda1
resume: libgcrypt version: 1.5.0
Trying manual resume from /dev/sda1
invoking in-kernel resume from /dev/sda1
Waiting for device /dev/disk/by-id/ata-VBOX_HARDDISK_.....-part2 to appear: ...
Could not find /dev/disk/...-part2
Want me to fall back to /dev/disk/...-part2 (Y/n)

'Y'를 누르면 실패하고 다시 부팅을 시도한 다음 /bin/sh로 종료됩니다. 'n'을 누르면 즉시 /bin/sh로 종료됩니다.

여기에서 해결책을 읽었습니다.http://diggerpage.blogspot.com/2011/11/cannot-boot-opensuse-12-after-cloning.html하지만 편집하기 위해 디스크의 파일 에 액세스하는 방법을 이해하지 못합니다 /etc/fstab./boot/grub/menu.lst

답변1

다음을 수행하여 시스템을 부팅할 수 있었습니다.

1) 시스템이 찾을 수 없는 장치를 기록해 두십시오.

2) 해당 질문에 "n"으로 답하세요. 명령 프롬프트로 이동해야 합니다.

3) 다음 명령을 실행합니다.cd /dev/disk/by-id

4) 다음 명령을 실행합니다.ls

5) 이 폴더에 있는 모든 파일의 이름을 현재 이름을 1단계에서 기록한 장치 이름으로 바꿉니다. 예.mv ata-VBOX_OLDNAME....-part2 ata-VBOX_HARDDISK....-part2

6) 이 작업을 완료한 후 다음 명령을 입력합니다.exit

7) 시스템이 정상적으로 부팅되어야 합니다.

저는 OpenSUSE 11.4에서 이런 일이 어떻게 발생하는지 계속 연구하고 있습니다.

답변2

이 문제는 기본적으로 SUSE가 레이블이나 경로가 아닌 이름으로 디스크를 찾도록 Grub을 구성하기 때문에 발생합니다. 어플라이언스에서 VM을 생성할 때 VirtualBox는 새 이름으로 새 디스크를 생성한 다음 Grub이 부팅 디스크를 찾을 수 없습니다. 나는 이것을 고칠 수 있었다영구적으로에 의해:

  1. 파일 시스템을 마운트할 수 있는 다른 머신에 디스크를 보조 드라이브로 추가합니다. 저는 /media/hd2에 마운트했습니다.

  2. /media/hd2/boot/grub/device.map을 편집하고 하드 드라이브의 이름별 경로를 /dev/disk/by-name/ata-VBOX....경로별 경로로 바꿉니다 /dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0.

  3. /media/hd2/boot/grub/menu.lst를 편집하고 이름별 경로를 경로별 경로로 바꿉니다. 내 경우에는 모든 파트 1 경로를 로 /dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part1, 파트 2 경로를 /dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part2.

내가 사용한 경로는 첫 번째 하드 디스크를 지정합니다. 다른 하드 디스크(또는 다른 디스크 유형)로 부팅하려면 SUSE가 경로를 매핑하는 방법을 파악해야 합니다. SUSE가 두 번째 하드 드라이브를 pci-0000:00:0d.0-scsi-1:0:0:0.

하드 드라이브 경로를 지정하는 것이 어떤 경우에는 이상적이지 않을 수도 있지만 제가 원했던 빠른 수정에는 완벽하게 작동했습니다.

답변3

이 오류가 발생했으며 etc/fstab 및 boot/grub/menu.lst에서 디스크의 이전 ID를 새 ID로 교체하여 해결했습니다.

  1. 대체 질문에 'n'을 누르세요.
  2. 다음을 실행하여 새 ID를 받으세요.hdparm -i /dev/sda
  3. 허용된 솔루션에 표시된 대로 모든 디스크의 이름을 바꾸고 게스트를 부팅합니다.
  4. 루트로 터미널을 열고 vi etc/fstab이전 ID가 표시되는 곳마다 새 ID로 바꿉니다. 저장하고 닫습니다.
  5. vi boot/grub/menu.lst표시되는 모든 위치에서 이전 ID를 새 ID로 바꿉니다. 저장하고 닫습니다.
  6. 재부팅합니다.

허용된 솔루션은 한 번만 작동하지만 이는영구 수정. 도움이 되길 바랍니다!

답변4

나는 다른 솔루션을 혼합하여 이 문제를 해결했습니다.

그냥 부팅용내가 한 시스템 :

  • 부팅 오류 메시지가 보고되면 부팅 절차에서 요청한 파티션 ID(예: ID1)를 기록해 두고 다음을 입력하세요.n
  • cd /dev/disks
  • ls -l디스크 및 파티션에 대한 링크 이름의 현재 ID(예: ID2)가 무엇인지 확인합니다.
  • 위에 필요한 ID로 복사본의 이름을 변경하여 여기에서 각 링크의 복사본을 만듭니다.

    mv ID2 ID1
    mv ID2-part1 ID1-part1
    ...
    

    예를 들어

    mv scsi-12345676890abcdefgh0987654321 scsi-0987654321hgfedcba1234567890
    mv scsi-12345676890abcdefgh0987654321-part1 scsi-0987654321hgfedcba1234567890-part1
    ...
    
  • exit

시스템이 부팅됩니다.

이제 설정을 변경할 수 있습니다이 문제가 다시 발생하지 않도록:

  • 터미널을 열고 루트 세션에 들어가십시오.sudo su
  • vi /etc/fstab
  • ID( )에 의한 디스크 및 파티션에 대한 모든 참조를 (예 : ...) /dev/disks/by-id/...에 대한 참조로 바꿉니다./dev/.../dev/sda/dev/sda1
  • vi /boot/grub/menu.lst
  • 이 파일에서도 똑같이 하세요

관련 정보