디스크 이미지 대신 루트 파일 시스템 디렉터리로 QEMU 실행

디스크 이미지 대신 루트 파일 시스템 디렉터리로 QEMU 실행

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

QEMU만으로 가능할까요?! 또는 타사 도구(예: 가상 디스크 이미지 에뮬레이터) 사용

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

답변1

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

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. 파일 시스템에 커널과 그럽이 있으면 모두 괜찮습니다. 그렇지 않으면 Linux 라이브 CD도 가상 머신에 연결하십시오. GRUB 명령줄을 편집하고 커널과 루트 파일 시스템을 사용하십시오.

귀하의 pendrive가 /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에 파티션이 없는 경우)

관련 정보