빌드된 이미지 실행하기¶
QEMU를 사용한 이미지 실행¶
기본 실행¶
# QEMU에서 이미지 실행
runqemu qemux86-64 core-image-minimal
# 네트워크 포함 실행 (인터넷 연결)
runqemu qemux86-64 core-image-minimal slirp
# 그래픽 없이 터미널에서 실행
runqemu qemux86-64 core-image-minimal nographic
runqemu 옵션들
- slirp: 호스트 네트워크를 통한 인터넷 연결
- nographic: VNC 대신 터미널에서 직접 실행
- kvm: 하드웨어 가상화 활용 (Linux 호스트에서)
- serial: 시리얼 콘솔 활성화
다양한 실행 방법¶
# 1. VNC로 그래픽 인터페이스 실행
runqemu qemux86-64 core-image-minimal
# 2. 터미널에서 직접 실행 (추천)
runqemu qemux86-64 core-image-minimal nographic
# 3. 네트워크와 KVM 가속 활용
runqemu qemux86-64 core-image-minimal slirp kvm
# 4. 메모리 크기 지정
runqemu qemux86-64 core-image-minimal qemuparams="-m 1024"
가상 머신 내부 탐색¶
시스템 정보 확인¶
QEMU가 실행되면 다음을 확인해보세요:
# 시스템 정보 확인
uname -a
cat /etc/os-release
# 커널 정보
cat /proc/version
# CPU 정보
cat /proc/cpuinfo
# 메모리 정보
cat /proc/meminfo
free -h
설치된 패키지 확인¶
# 설치된 패키지 목록
opkg list-installed
# 특정 패키지 검색
opkg list-installed | grep busybox
# 사용 가능한 패키지 (네트워크 연결 시)
opkg update
opkg list
파일시스템 구조 탐색¶
# 디스크 사용량 확인
df -h
# 디렉토리 구조 확인
ls -la /
tree / | head -30
# 시스템 디렉토리들
ls -la /bin /sbin /usr/bin /usr/sbin
# 설정 파일들
ls -la /etc/
프로세스 및 서비스 확인¶
# 실행 중인 프로세스
ps aux
# 시스템 서비스 (systemd 기반)
systemctl status
# 활성화된 서비스만 확인
systemctl list-units --type=service --state=active
# 네트워크 서비스
systemctl status networking
네트워크 및 연결 테스트¶
네트워크 설정 확인¶
# 네트워크 인터페이스 확인
ip addr show
ifconfig
# 라우팅 테이블
ip route show
route -n
# DNS 설정
cat /etc/resolv.conf
인터넷 연결 테스트 (slirp 모드에서)¶
# 기본 연결 테스트
ping -c 3 8.8.8.8
# DNS 해결 테스트
ping -c 3 google.com
# HTTP 테스트 (wget이 있는 경우)
wget -O - http://httpbin.org/ip 2>/dev/null
SSH 접속 설정¶
# SSH 데몬 시작 (이미지에 포함된 경우)
systemctl start ssh
systemctl enable ssh
# SSH 포트 확인
netstat -tlnp | grep :22
호스트에서 SSH 접속:
시스템 로그 및 디버깅¶
시스템 로그 확인¶
# 시스템 부팅 로그
dmesg | head -50
dmesg | tail -20
# systemd 저널 (지원하는 경우)
journalctl -n 50
# 시스템 로그 파일들
ls -la /var/log/
tail /var/log/messages
성능 및 리소스 모니터링¶
애플리케이션 테스트¶
기본 도구들 테스트¶
# 파일 편집 (vi는 거의 항상 있음)
vi /tmp/test.txt
# 네트워크 도구 (busybox 기반)
wget --help
nc --help
# 시스템 유틸리티
which busybox
busybox --help
개발 도구 테스트 (포함된 경우)¶
# 컴파일러 확인
gcc --version
g++ --version
# Python 확인
python3 --version
python3 -c "print('Hello from Yocto!')"
# 패키지 관리
pip3 --version
QEMU 종료 및 관리¶
정상 종료¶
강제 종료¶
# QEMU 모니터 콘솔에서 (Ctrl+Alt+2)
(qemu) quit
# 또는 터미널에서 강제 종료
Ctrl+A, X # nographic 모드에서
# 호스트에서 프로세스 종료
pkill qemu
QEMU 디버깅 모드¶
# 디버그 정보와 함께 실행
runqemu qemux86-64 core-image-minimal nographic qemuparams="-d int,pcall"
# 시리얼 콘솔 로그 저장
runqemu qemux86-64 core-image-minimal nographic qemuparams="-serial file:qemu-console.log"
고급 QEMU 사용법¶
스냅샷 및 백업¶
# QEMU 모니터에서 스냅샷 생성
(qemu) savevm snapshot1
# 스냅샷 복원
(qemu) loadvm snapshot1
# 스냅샷 목록 확인
(qemu) info snapshots
파일 공유¶
# 호스트 디렉토리를 게스트와 공유
runqemu qemux86-64 core-image-minimal qemuparams="-virtfs local,path=/host/share,mount_tag=host0,security_model=passthrough"
# 게스트에서 마운트
mkdir /mnt/host
mount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/host
문제 해결¶
일반적인 문제들¶
QEMU가 시작되지 않는 경우
부팅이 멈추는 경우
네트워크가 작동하지 않는 경우
← 첫 빌드 | 이미지 커스터마이징 →