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