VirtualBox Ubuntu Guest를 * 실제 * 하드웨어 상자로 마이그레이션 할 수 있습니까?


13

VirtualBox Guest '어플라이언스'에서 실제 (금속 및 칩) 컴퓨터 로 Ubuntu를 전송하고 싶 습니까?

이 작업을 수행 할 수 있으며 어떤 단계가 관련됩니까?

답변:


7

시도해보십시오 dd(장치 이름과 같은 장치 이름을 바꾸는 것을 잊지 마십시오 sda).

  1. 귀하의 모든 UUID를 ( = destination hd number!) /etc/fstab와 같은 것으로 바꾸십시오 ./dev/sda1sda
  2. update-grub2 && grub-install /dev/sda
  3. VBox 내의 가상 HDD를 파일로 저장하십시오. dd if=/dev/sda /home/user/sda.img
  4. 이미지를 디스크 (외부 hdd, 네트워크 공유, DVD 등)에 복사
  5. 이미지를 대상 드라이브로 복원하십시오. dd if=/media/drive/sda.img of=/dev/sda

가장 큰 문제는 부트 로더 일 수 있습니다 (그러나이 포럼에서도 이에 대한 튜토리얼이 있습니다). 내가 한 번 우분투 (당신이 dd'ed 것과 동일한 것이 바람직하다) 새로 설치를하고 다음으로 부트 로더를 다시 설치 dd, 신선한를 통해 기존의 파티션 (이 경우 설치 한 것뿐만 dd /dev/sda1아니라 /dev/sda, 또한 부트 로더를 포함하고 모든 파티션)


dd를 처리 할 수 ​​있습니다. 나는 그것을 사용하고 if 가 조건 문의 시작이 아닌지 안다 :) ... 어떤 이유로 uuids와 gruble 나를 배플.. 그들은 아마도 매우 간단하지만 다시는 역시 나일지도 모른다. 아마도 새로운 (더미) 설치에서 MBR을 사용하게 될 것입니다. 가장 큰 장애물은 실제로 VM에서 참여자를 파헤치는 것입니다. 어떻게 VM 파티션에서 호스트로 dd 할 수 있습니까?
Peter.O

... 조금 더 (이전에 내 주석으로 편집하려고했지만 편집이 허용되지 않았습니다!? .. 또 다른 사소한 미스터리) :. . . VirtualBox의 공유 폴더는 재부팅이 필요하기 때문에 Live-CD 실행에없는 애드온에 의존하는 것 같습니다.
Peter.O

당신은 네트워크 폴더에 dd 수 있습니다, 나는 지난 주에 이것을했고 30MB / s와 같았습니다. live-cd environment / windows / linux에서 공유 폴더를 설정하고 VM에 브리지 된 네트워크를 활성화하면 이것이 작동합니다.
sBlatt

btw : cp를 사용하여 전체 Linux- 파티션을 복사 할 수 있습니다 (+ 퍼 미소 인을 유지하기위한 몇 가지 인수! 매우 중요합니다. -p 또는 --preserve = all이라고 생각합니다). 파티션 크기를 조정 한 후 이미지를 다시 복사하기 위해이 작업을 한 번 수행했습니다 (dd-Image 파일을 마운트하고 cp 수행)
sBlatt

이것에 대해 너무 멍청하게해서 미안하지만, 매우 간단한 요점을 놓쳐 야합니다 ... 내가 읽은 모든 것은 NAT가 게스트가 호스트를 기본적 으로 액세스 할 수있게한다는 것을 암시하는 것 같습니다 (다른 방향으로의 연결은 브리징이 필요합니다). 나는 세 가지 추측을했다 (30 세 이상!). 게스트 애드온이 설치된 경우 에만 VBox의 공유 폴더에 액세스했습니다 . LiveCD 실행에 이러한 애드온을 설치할 수 없으므로 다시 멈 춥니 다. 게스트에서 NAT 연결 호스트의 파일 시스템에 액세스하려면 어떻게해야합니까 (애드온 없음)? 호스트에서 무언가를해야한다고 생각하지만 그것이 무엇인지 알지 못합니까?
Peter.O

1

이것을 직접 시도 하지는 않았지만 설명은 시도하기에 현실적인 것 같습니다.


당신이 언급 한 기사는 내가 가고 싶은 곳과 비슷한 길에 있습니다. Fedora LVM 문제를 무시하면 내 문제 중 하나 인 VM 환경을 호스트 환경으로 가져 오는 방법이 거의 해결됩니다. 그는 호스트에 원시 VM 디스크 이미지를 마운트 할 수 있는 VirualBox 도구 VBoxManage 를 언급합니다 . 그러나이 문서에는 Windows 호스트와 관련하여 문제가 있습니다. 명령 이름은 괜찮습니다,하지만 인수 중 어느 것도 인식하지 않습니다 ...하지만 나는 같은 리눅스 ...합니까 누군가에 사용할 수있는 구문을 알고 가정?
Peter.O

"VBoxManage internalcommands"를 실행 해보십시오. 일부 사용법 정보가 인쇄됩니다. 충분할 수 있습니다.
Serge Broslavsky

1

1> virtualBox OS의 tar를 수행하십시오.

2> 라이브 배포판으로 시작

3> 대상 파티션에서 virtualBox OS의 압축을 풉니 다 (예 : / dev / sda1).

4> 파티션을 부팅 가능하게 만드십시오 (fdisk가 당신을 도울 수 있습니다) : # fdisk / dev / sda 명령 (도움을 위해 m) : a (a = 부팅 가능한 플래그 토글) 파티션 번호 (1-4) : 1 (1 = / dev / sda1) 명령 (도움을위한 m) : q (q = exit)

5> mbr에 grub 설치 (https://wiki.ubuntu.com/Grub2) # mount / dev / sda1 / mnt / # mount --bind / dev / mnt / dev # mount --bind / proc / mnt / proc # mount --bind / sys / mnt / sys # cd / mnt && chroot. # (chroot) update-grub # (chroot) grub-install / dev / sda (NOT / dev / sda1!) # (chroot) grub-install --recheck / dev / sdX

6> 즐기십시오 ...


1
내 VirtualBox OS 를 타르는 것이 너무 쉽게 들리지만 ... 나에게는 그렇지 않습니다 ... 예를 들어; 어디서 타르를합니까? 파일 시스템 을 tar 하는 적절한 방법 은 파일 시스템을 사용하지 않는 것입니다. 그래서 LiveCD를 통해 VM을 부팅했습니다. 그러면 LiveCD의 / media를 통해 VM의 드라이브에 액세스 할 수있었습니다. VM에서 데이터를 가져 오는 방법. VirtualBox의 공유 폴더에는 재부팅해야하는 GuestAddons가 필요합니다. 재부팅하려면 Live CD를 애드온이없는 상태로 다시 시작해야합니다. 또는 VirtualBox의 공유 폴더 /
Peter에

시스템이 실행 중이더라도 시스템을 직접 tar (동기화) 할 수 있습니다 (이것은 Linux ...) :
daniele

시스템이 실행중인 경우에도 시스템을 직접 tar 할 수 있습니다. 이것은 리눅스 ;-)입니다. 먼저 sshfs ( fuse.sourceforge.net/sshfs.htm ) 패키지를 설치 하고 virtualbox 안에 실제 디렉토리를 마운트하십시오. 예를 들어, 내가 말한 것처럼 virtualbox 내에서 다음과 같은 방법으로 pendrive (마운트, / media / pendrive에 말하겠습니다)를 사용할 수 있습니다. # sshfs root@10.0.2.2 : / media / pendrive / mnt 가상 드라이브를 pendrive로 실행 (Linux는 가능) : # cd / # tar -cvpzf /mnt/backup.tgz --exclude = / proc / --exclude = / lost + found / --exclude = / mnt / --exclude = / sys / /
daniele

1

설치에서 정확히 무엇을 마이그레이션 하시겠습니까? 사용자 데이터와 환경 설정 만 신경 쓰면 VM의 홈 디렉토리에서 VM 외부의 파일 시스템 (예 : 키 드라이브)으로 모든 파일을 복사하고 해당 파일을 새 Ubuntu 설치에 복사 한 다음 VM에 설치 한 모든 프로그램을 다시 설치하십시오. VM 설치를 사용자 정의한 양과 여기에있는 다른 솔루션의 문제 수에 따라 다릅니다.


실제 하드웨어에서 Ubuntu (최초 Linux 사용자)를 사용하고 있습니다. 나는 많은 것을 배우고 있지만 내 시스템은 많은 혼란을 모았습니다. 한 가지 설정을 조정하고 설정 한 위치 등을 잊었습니다. 내 생각은 지금 가지고있는 (최소한) 경험을 사용하고 실수없이 병렬 VM 시스템을 구축 한 다음 기본 하드웨어로 섞는 것입니다. . 나는 그것에 대해 내 시간을 가지고 여전히 현재의 실험을 할 수 있습니다. 그것도 좋은 "학습"프로젝트입니다. 그러나 나는 씹을 수있는 것보다 조금 더 물린 것 같은 느낌이
듭니다

1

시스템을 백업하기 위해 rsync를 사용하고 싶습니다. 이것은 홈 directroy 또는 ect 디렉토리에는 좋지만 완전한 시스템 마이그레이션 측면에서 원하는 것은 아닐 수도 있습니다. rsync를 사용하려면 두 시스템 모두에 우분투를 설치해야합니다. 패키지가 동일하고 동일한 수준이되도록 두 가지를 모두 업데이트하십시오 (필수 사항은 아니지만 작업을 더 쉽게 수행함). 그런 다음 홈 디렉토리를 server1에서 server2로 복사하려면 server1에서 다음을 실행할 수 있습니다.

$rsync -avz /home/username/ username@server2:/home/username/

내가 좋아하는 것은 rsync가 디렉토리 간의 차이를 계산하고 모든 것이 아니라 변경 사항을 전송한다는 것입니다. 이런 방법으로 server2에서 실행하여 (server1에서 백업) 백업을 최신 상태로 유지할 수 있습니다.

$rsync -avz /home/username/ username@server1:/home/username/

hth


고마워, rsync를 사용하여 비 OS 파티션 (예 : 음악 등의 데이터)을 백업했습니다. 나는 rsync가 작동하는 방식도 좋아한다. 매우 효율적입니다. 내 주요 "문제"는 VM에서 동등한 파티션으로의 간단한 파일 복사가 작동하는지 알 수 없다는 것입니다. 예 : Ubuntu는 다른 하드웨어를 어떻게 처리합니까? 자동으로 감지하여 부팅시 조정합니까? Windows는 확실히 그렇지 않습니다! 그리고 마운트 포인트를 처리하는 방법을 아직 잘 모르겠습니다. TeraByte 드라이브를 OS 파티션으로 재 동기화하고 싶지 않습니다. GRUB이 나를 회전시킵니다. 이것들은 내가 아직 잘 모르는 작은 재미있는 것들입니다 ..
Peter.O
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.