답변:
chroot가 작동하려면 procfs, sysfs 및 / dev와 같은 커널 파일 시스템을 바인드해야합니다.
이렇게하려면 일반적으로 chrooting 전에 실행합니다.
cd /path/to/chroot/destination
mount -o bind /proc proc
mount -o bind /sys sys
mount -o bind /dev dev
그리고 나서야 당신은로 들어갑니다 /path/to/chroot/destination
.
그러나 이것은 자체 커널이 없기 때문에 VM에서 리눅스를 실행하는 것과는 다릅니다. 사용할 수있는 격리 계층이 두 개 더 있습니다. 하나는 LXC 컨테이너 (자체 커널이 없음)이고 다른 하나는 실제 VM 입니다.
둘 다 libvirt로 관리 할 수 있으며 qemu 드라이버 와 lxc 드라이버를 사용 하여 해당 용도로 libvirt를 살펴 보는 것이 좋습니다 .
libvirt를 사용하면 호스트 파일 시스템을 게스트 파일 시스템으로 마운트 할 수도 있습니다 ( 도메인 구성 ¹ 참조 ). 그러나 일반적으로 전체 파티션을 libvirt에 전달하고 나머지를 수행하게하는 것이 더 현명 할 수 있습니다. VM이 실행되는 동안 호스트 시스템에서 직접 파일에 액세스 할 수 없다는 제한이 있습니다 ².
간단한 구성 예는 다음과 같습니다.
<domain type='qemu'> <!-- if you have kvm, put kvm here instead of qemu -->
<name>my_fancy_vm</name>
<memory unit='KiB'>524288</memory>
<vcpu placement='static'>1</vcpu>
<features>
<acpi/>
<apic/>
</features>
<os>
<type arch='x86_64' machine='pc-i440fx-1.6'>hvm</type>
<boot dev='cdrom' />
<boot dev='hd' />
</os>
<cpu mode='custom'>
<model>kvm64</model>
</cpu>
<pm>
<suspend-to-mem enabled='no' />
<suspend-to-disk enabled='no' />
</pm>
<devices>
<!-- for kvm, you have to put /usr/bin/qemu-kvm here -->
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<!-- to directly use a filesystem here, please see the documentation -->
<disk type='block' device='disk'>
<driver name='qemu' type='raw' />
<target dev='vda' bus='virtio' />
<source dev='/dev/partition_used_by_the_other_linux' />
</disk>
<serial type='pty'>
<target port='0' />
</serial>
<console type='pty'>
<target type='serial' port='0' />
</console>
</devices>
<seclabel type='none' />
</domain>
사용할 파티션이 여러 개인 경우 disk
섹션 을 복제하여 파티션을 여러 개 만듭니다 . 자세한 내용은 도메인 XML 형식 의 설명서를 참조하십시오 . 또한 네트워킹을 설정하는 방법에 대한 정보도 포함되어 있습니다.
도메인을 설정 한 후 다음을 사용하여 libvirt에서 도메인을 정의 할 수 있습니다.
virsh define path/to/domain.xml
그리고 그것을 시작하십시오 :
virsh start my_fancy_vm # that is the name chosen in the xml
xml에 정의 된 가짜 직렬 콘솔에 연결하려면 다음을 사용하십시오.
virsh console my_fancy_vm
아무것도 표시되지 않을 수도 있습니다. 아치 리눅스를 사용하도록 구성해야 할 수도 있습니다. lxc 게스트의 경우 콘솔을 바인딩하여 쉘을 얻는 것보다 쉬운 방법이 있지만 시도하지는 않았습니다. lxc와 함께 libvirt를 사용하기위한 튜토리얼이 있습니다.