![복제된 VM, OpenSUSE, VirtualBox를 사용할 수 없습니다.](https://rvso.com/image/1317142/%EB%B3%B5%EC%A0%9C%EB%90%9C%20VM%2C%20OpenSUSE%2C%20VirtualBox%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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이 부팅 디스크를 찾을 수 없습니다. 나는 이것을 고칠 수 있었다영구적으로에 의해:
파일 시스템을 마운트할 수 있는 다른 머신에 디스크를 보조 드라이브로 추가합니다. 저는 /media/hd2에 마운트했습니다.
/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
./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로 교체하여 해결했습니다.
- 대체 질문에 'n'을 누르세요.
- 다음을 실행하여 새 ID를 받으세요.
hdparm -i /dev/sda
- 허용된 솔루션에 표시된 대로 모든 디스크의 이름을 바꾸고 게스트를 부팅합니다.
- 루트로 터미널을 열고
vi etc/fstab
이전 ID가 표시되는 곳마다 새 ID로 바꿉니다. 저장하고 닫습니다. vi boot/grub/menu.lst
표시되는 모든 위치에서 이전 ID를 새 ID로 바꿉니다. 저장하고 닫습니다.- 재부팅합니다.
허용된 솔루션은 한 번만 작동하지만 이는영구 수정. 도움이 되길 바랍니다!
답변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
- 이 파일에서도 똑같이 하세요