전제
Windows에서는 Linux용 Windows 하위 시스템(저는 WSL 2를 사용하지만 이는 WSL 1에도 적용되는 것으로 알고 있습니다)을 사용하면 게스트 Linux 인스턴스의 파일 시스템을 9p, 특히 9p2000.L을 통해 Windows 호스트에서 사용할 수 있습니다. VirtualBox 게스트 OS와 호스트 OS 간에 비슷한 작업을 수행할 수 있는 방법이 있습니까? 다음을 포함하여 여러 호스트 OS에 대해 이에 관심이 있습니다.
- 맥 OS
- 윈도우
다음을 포함한 여러 게스트 OS
- 맥 OS
- FreeBSD
- 리눅스
- 나중에 좀 더 용감해지고 그들과 어울릴 준비가 되었을 때:
-
(대부분/부분적으로 제쳐두고: 예, 대부분 프로젝트가 중단된 것처럼 보이지만 웹사이트는 오래되었습니다. 현재 대부분의 활동은 프로젝트의 Discord 서버에서 이루어집니다. 최근 기억에 가장 흥미로운 일은 다음과 같습니다.베셀만 그는 Apple에 포함된 XNU 커널을 소스에서 만든 커널로 교체한 후 macOS를 부팅했습니다., 하지만 그건 2022년 중반이었습니다.)
라비노스(웹사이트,GitHub 저장소)
(ravynOS는 FreeBSD를 기반으로 하므로 이에 대한 대답은 현재로서는 효과가 있을 수 있습니다. ravynOS의 macOS 호환성은루옹멀리 떨어져 있으므로 macOS 답변은 아직 ravynOS에서 작동하지 않습니다.)
-
(더 잘 알려지고 잘 관리되는 항목에 자유롭게 초점을 맞추십시오. 여기서 과도한 노력을 요구하는 것은 아닙니다.)
제가 알고 있는 몇 가지 잠재적인 조사 방법은 다음과 같습니다.
앞에서 언급한 대로 WSL2에서 사용되는 9p입니다.
비르티오
(메모:
- 맥 OSmacOS Mojave 10.14부터 몇 가지 기본적인 virtio 기능이 있었습니다.virtio 지원 9p kext를 포함합니다. 하지만 마지막이 서버인지, 클라이언트인지, 아니면 둘 다인지는 확실하지 않습니다.)
VirtFS
아니다 미덕, 가장 눈에 띄는 문서에 따르면 내가 원하는 방식이 아닌 호스트 OS에서 게스트 OS로 파일을 공유하기 위한 것입니다.
Virt-manager, 아마도...?
SSHFS
(답변은 다루는 솔루션으로 이들 중 하나 이상을 사용하는 것 중에서 선택할 수 있습니다.) 또한 QEMU/KVM이 virito/9p를 지원한다는 것을 알고 있지만 일종의 파일 공유 배열이 있는지 알고 싶습니다. 제가 찾고 있는 것은 VirtualBox로 가능합니다. 나는 그것에 익숙하며 적어도 원시 구성 파일을 수정하거나 CLI 명령을 실행할 필요가 없다는 점에서 설정하기가 더 쉽습니다.
배경적 근거
VM 게스트 OS의 파일 시스템 내용을 호스트 OS와 공유하는 방법을 알고 싶은 이유는 다음과 같습니다.
을 위한:
- 커널 및 OS 개발
- 향후 커널 확장 개발 가능성
성능 오버헤드가 작용하는 곳은 다음과 같습니다.
- 호스트 OS가 게스트 OS의 파일 시스템에 있는 파일에 액세스할 때,
- 게스트 OS가 빌드 및 기타 프로젝트 파일에 액세스해야 할 때마다 그런 것은 아닙니다.
호스트 OS 파일 시스템 위치 어딘가에 빌드/프로젝트 파일을 저장하여 게스트 OS가 사용 중인 파일 공유 메커니즘을 통해 왕복해야 하는 성능 오버헤드와 비용을 겪게 하고 싶지 않습니다. 포함된 VM 디스크 이미지 내의 파일 시스템 위치에 대한 게스트 OS 액세스는 기본/원시 성능에 가깝거나 최소한 기본에 가깝거나 더 높은 성능을 얻어야 합니다.
답변1
9p에 대해 들어본 적이 없지만 찾아냈습니다.https://wiki.qemu.org/Documentation/9psetup그리고 특히https://wiki.qemu.org/Documentation/9p흥미롭다.
또한 Virsh가 포함된 Qemu는 귀하의 개발 및 디버깅 요구 사항에 더 적합할 수 있다고 생각합니다(그리고 아마도 더 빠를 수도 있습니다). Qemu 및/또는 libvirt는 MacOS 플랫폼에서 지원되며 Windows는 작동할 수 있지만 MS 선택 및 디자인에 따라 더 제한적이라고 생각합니다(HyperV가 그 전부입니다).
Linux 호스트가 아닌 이유는 무엇입니까? 하지만 귀하의 광범위한 질문에 대한 답변은 계속하겠습니다. 배경 근거를 참고하여 필요할 때 가상 하드 디스크를 마운트해 보는 것은 어떨까요? libguestfs 또는 제가 가장 좋아하는 qemu-nbd를 사용하면 필요할 때 마운트할 수 있습니다. qemu-ndb는 과거에 mac, xbox, ntfs(windows)를 포함한 여러 종류의 클라이언트 OS에서 작동했습니다.
QEMU에서 네트워킹 없이 호스트와 디렉토리를 공유하는 방법은 무엇입니까?어쩌면 귀하의 질문에 부분적으로 대답하는 것 같습니까? Qemu의 시스템 및 커널 디버깅 기능도 도구 상자에 많은 것을 추가합니다. Virsh의 프런트 엔드는 약간 어색할 수 있지만 어떤 면에서는 더 자동화되어 있습니다.
답변2
VirtualBox에는 게스트 OS에 게스트 추가 기능을 설치할 때 사용할 수 있는 공유 폴더 기능이 있습니다(4장. 게스트 추가).
공유 폴더에 대한 경험이 없지만 마우스 포인터 통합 지원을 위해 일부 VM에 게스트 추가를 설치했습니다.
편집: 위의 링크를 정독하다가 게스트 제어 파일 관리자(4.8. 게스트 제어 파일 관리자) 공유 폴더보다 더 친숙할 수 있습니다.