QEMU에서 파일 시스템을 마운트하는 방법은?
_____---
Q1. QEMU에서 게스트 OS 내의 파일 시스템을 호스트에서 어떻게 마운트하나요?
답변:
QEMU 이미지 파일(예: `.img`, `.qcow2`)을 호스트에서 직접 마운트하려면, 다음 절차를 따릅니다.
1. 이미지의 파티션 위치 확인
`fdisk` 또는 `parted`를 사용하여 이미지 파일 내 파티션 오프셋을 확인합니다.
```bash
fdisk -l disk.img
```
출력 결과에서 파티션 시작 위치(sector)를 확인합니다.
2. 오프셋 바이트로 변환
예를 들어, 시작 섹터가 2048이고 섹터 크기가 512바이트면 오프셋은 `2048 * 512 = 1048576` 바이트입니다.
3. 마운트 명령 실행
루프 디바이스를 이용하여 오프셋과 함께 이미지 파티션을 마운트합니다.
```bash
sudo mount -o loop,offset=1048576 disk.img /mnt
```
4. 마운트 해제
```bash
sudo umount /mnt
```
---
Q2. QEMU 내부 게스트에서 파일 시스템을 마운트하려면 어떻게 하나요?
답변:
게스트 운영체제에서 일반적인 리눅스 마운트 명령 사용과 같습니다.
1. 디스크 확인
```bash
lsblk
```
또는
```bash
fdisk -l
```
필요한 파티션 이름 확인 (`/dev/vda1`, `/dev/sda1` 등)
2. 마운트 디렉터리 생성
```bash
sudo mkdir /mnt/mydisk
```
3. 마운트 실행
```bash
sudo mount /dev/vda1 /mnt/mydisk
```
4. 파일 접근
마운트 된 경로에서 파일 시스템 내용 이용 가능.
---
Q3. QEMU에 ISO 파일을 연결하고 마운트하려면?
답변:
QEMU 실행 시 CD-ROM 드라이브에 ISO 파일을 연결할 수 있습니다.
```bash
qemu-system-x86_64 -cdrom ubuntu.iso -boot d -m 2048
```
게스트 내에서는 아래와 같이 마운트 합니다.
```bash
sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
```
---
Q4. QEMU에서 9p 공유 파일 시스템으로 호스트 파일을 게스트에 마운트하는 방법은?
답변:
9p 프로토콜을 이용해 호스트 디렉터리를 게스트에 공유할 수 있습니다.
1. QEMU 실행 시 옵션 추가
```bash
qemu-system-x86_64 \
-virtfs local,id=shared,path=/host/path,security_model=passthrough,mount_tag=hostshare
```
2. 게스트에서 마운트
```bash
sudo mkdir /mnt/shared
sudo mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/shared
```
---
Q5. QEMU에서 네트워크 파일 시스템(NFS)를 마운트하나요?
답변:
NFS는 네트워크 프로토콜이므로, 게스트 OS가 네트워크를 통해 NFS 서버에 접근할 수 있어야 합니다.
1. 게스트 내에서 NFS 클라이언트 설치 및 설정
2. NFS 서버 IP와 공유 경로를 사용하여 마운트 수행
```bash
sudo mount -t nfs 192.168.x.x:/export/path /mnt/nfs
```
---
Q6. QEMU 이미지 내 특정 파일 또는 디렉터리만 추출하려면?
답변:
`guestfs` 도구 또는 `libguestfs` 기반의 `guestmount`를 사용합니다.
```bash
guestmount -a disk.img -i /mnt
```
마운트 후 원하는 파일을 호스트에서 접근 및 복사 가능.
---
요약
| 방법 | 명령어 예시 | 설명 |
|----------------------|------------------------------------|-------------------------------------|
| 호스트에서 직접 마운트 | `mount -o loop,offset=... disk.img /mnt` | 이미지 파일 내 파티션 마운트 |
| 게스트 내에서 마운트 | `mount /dev/vda1 /mnt/mydisk` | 게스트 OS 내에서 일반 마운트 |
| ISO 연결 및 마운트 | `-cdrom iso파일, mount /dev/cdrom` | QEMU 실행 시 ISO 연결 및 게스트에서 마운트 |
| 9p 공유 마운트 | `-virtfs ..., mount -t 9p ...` | 호스트 디렉터리 9p 프로토콜로 공유 |
| NFS 마운트 | `mount -t nfs server:/path /mnt` | 네트워크 파일 시스템 마운트 |
| guestmount 활용 | `guestmount -a disk.img -i /mnt` | 이미지 파일 직접 마운트 및 파일 추출 |
---
추가 질문이 있으시면 언제든 문의해 주세요!
다음은 QEMU에서 파일 시스템을 마운트하는 기본적인 단계들입니다.
1. QEMU 설치 QEMU가 설치되어 있는지 확인합니다.
설치되지 않았다면, 패키지 관리자를 통해 설치할 수 있습니다.
예를 들어, Ubuntu에서는 다음과 같은 명령어로 설치할 수 있습니다: ```bash sudo apt-get install qemu ```
2. 디스크 이미지 생성 QEMU에서는 가상 디스크를 사용하여 파일 시스템을 마운트합니다.
`qemu-img`를 사용하여 디스크 이미지를 생성할 수 있습니다.
```bash qemu-img create -f qcow2 mydisk.qcow2 10G ``` 위 명령은 10GB 크기의 QCOW2 포맷 가상 디스크 이미지(`mydisk.qcow2`)를 생성합니다.
3. ISO 이미지 준비 (선택 사항) 설치할 운영 체제의 ISO 이미지를 다운로드합니다.
예를 들면, Ubuntu ISO를 사용할 수 있습니다.
4. QEMU 시작 및 파일 시스템 마운트 QEMU를 실행할 때, 생성한 디스크 이미지와 ISO 이미지를 함께 사용하여 가상 머신을 부팅합니다.
```bash qemu-system-x86_64 -hda mydisk.qcow2 -cdrom /path/to/your.iso -boot d -m 1024 ``` 위 명령에서, - `-hda mydisk.qcow2`: 가상 머신의 첫 번째 하드 드라이브로 디스크 이미지를 설정합니다.
- `-cdrom`: 부팅할 ISO 이미지를 지정합니다.
- `-boot d`: CD-ROM에서 부팅하도록 설정합니다.
- `-m 1024`: 메모리 크기를 1024MB로 지정합니다.
가상 머신이 부팅되면, 운영 체제를 설치할 수 있고, 이후에는 해당 파일 시스템을 마운트할 수 있습니다.
5. 파일 시스템 마운트 (가상 머신 내) 운영 체제가 설치된 후, 가상 머신이 실행 중일 때 추가적인 디스크를 연결하려면 아래와 같은 QEMU 명령어를 사용할 수 있습니다.
```bash qemu-system-x86_64 -hda mydisk.qcow2 -hdb additional_disk.img -m 1024 ``` 그런 다음, 가상 머신 내에서 `fdisk` 또는 `lsblk`를 사용하여 디스크를 확인하고, 파일 시스템을 마운트합니다.
```bash sudo mkfs.ext4 /dev/sdb 추가 디스크 포맷 sudo mkdir /mnt/mydisk 마운트 폴더 생성 sudo mount /dev/sdb /mnt/mydisk 마운트 ```
6. 종료 및 추가 설정 가상 머신에서 작업을 마친 후, `umount` 명령어로 마운트를 해제할 수 있으며, QEMU를 종료합니다.
추가 팁 - QEMU는 다양한 옵션을 제공하므로, 사용하려는 기능에 맞게 적절하게 조정해야 합니다.
- 네트워크 파일 시스템(NFS)이나 디렉토리를 공유하여 호스트 OS와 가상 머신 간에 파일을 쉽게 전송하려면 추가적인 설정이 필요합니다.
이러한 단계들을 통해 QEMU에서 파일 시스템을 효과적으로 마운트하고 사용할 수 있습니다.
작성자:
정재원 [비회원]
| 작성일자: 1년 전
2025-03-21 00:21:29
조회수: 245 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 245 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.