루트 파일 시스템을 테스트하려면 생성된 디스크 이미지를 루트 파일 시스템으로 사용하여 QEMU를 실행해야 합니다. QEMU는 루트 파일 시스템 내부에 배포하지 않고 커널을 직접 지정하는 데 사용할 수 있는 -kernel을 허용하지만 루트와 같은 기능이 필요합니다. 디스크 이미지를 생성하고 이를 -hda 또는 -usbdisk 옵션과 함께 사용하는 대신 추출된 루트 파일 시스템에 대한 경로를 지정하려면 파일 시스템을 사용하십시오.
QEMU만 단독으로 사용할 수 있나요? ! 또는 타사 도구(예: 가상 디스크 이미지 에뮬레이터)를 사용하세요.
내 목표는 디스크 이미지를 생성하지 않고 루트 파일 시스템의 tar 아카이브를 테스트하는 것입니다.
답변1
rootfs가 너무 크지 않으면 initd를 사용할 수 있습니다. -initrd
qemu 옵션을 사용 하고 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의 커널 옵션을 사용하여 루트 파일 시스템으로 마운트합니다.
- 가상 머신에서 부팅 메뉴 활성화
- 커널이 포함된 파일 시스템이 있는 외부 드라이브를 연결합니다.
- 파일 시스템에 커널과 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에 파티션이 없는 경우)