디스크 이미지 대신 루트 파일 시스템 디렉터리를 사용하여 QEMU 실행

디스크 이미지 대신 루트 파일 시스템 디렉터리를 사용하여 QEMU 실행

루트 파일 시스템을 테스트하려면 생성된 디스크 이미지를 루트 파일 시스템으로 사용하여 QEMU를 실행해야 합니다. QEMU는 루트 파일 시스템 내부에 배포하지 않고 커널을 직접 지정하는 데 사용할 수 있는 -kernel을 허용하지만 루트와 같은 기능이 필요합니다. 디스크 이미지를 생성하고 이를 -hda 또는 -usbdisk 옵션과 함께 사용하는 대신 추출된 루트 파일 시스템에 대한 경로를 지정하려면 파일 시스템을 사용하십시오.

QEMU만 단독으로 사용할 수 있나요? ! 또는 타사 도구(예: 가상 디스크 이미지 에뮬레이터)를 사용하세요.

내 목표는 디스크 이미지를 생성하지 않고 루트 파일 시스템의 tar 아카이브를 테스트하는 것입니다.

답변1

rootfs가 너무 크지 않으면 initd를 사용할 수 있습니다. -initrdqemu 옵션을 사용 하고 rootfs와 함께 (압축된) cpio 파일을 제공합니다. 따라서 tar 파일이 있으면 압축을 풀고 cpio를 생성해야 합니다. cpio 형식을 사용해야 합니다 -H newc. 예;

mkdir /tmp/rootfs
cd /tmp/rootfs
tar xf /path/to/rootfs.tar
find | cpio --quiet -o -H newc | bzip2 -c > /tmp/rootfs.cpio

한 가지 좋은 점은 이 작업을 수행하는 데 루트나 sudo가 필요하지 않다는 것입니다.

답변2

파일 시스템을 USB 드라이브에 쓴 다음 이를 QEMU 가상 머신에 연결할 수 있습니다.

그런 다음 GRUB의 커널 옵션을 사용하여 루트 파일 시스템으로 마운트합니다.

  1. 가상 머신에서 부팅 메뉴 활성화
  2. 커널이 포함된 파일 시스템이 있는 외부 드라이브를 연결합니다.
  3. 파일 시스템에 커널과 grub이 있으면 문제가 없습니다. 또한 모든 Linux Live CD를 가상 머신에 연결할 수 있습니다. GRUB 명령줄을 편집하고 커널과 루트 파일 시스템을 사용하십시오.

펜 드라이브가 /dev/sdB(하드 드라이브 이미지도 연결되어 있다는 점, 즉 /dev/sdA어쨌든 찾을 수 있다는 점을 고려하면) grub 명령은 다음과 같아야 합니다.

kernel (hd1,gpt0)/location_of-kernel root=/dev/sdB
initramfs mention_if_you_have
boot

gpt0올바른 파티션과 /dev/sdB올바른 문자 로 교체하십시오 /dev/sdb1. 또는 /dev/sdb(USB에 파티션이 없는 경우)

관련 정보