Mac에서 uefi 펌웨어를 사용하여 qemu의 DVD에서 Centos 7을 부팅합니다.

Mac에서 uefi 펌웨어를 사용하여 qemu의 DVD에서 Centos 7을 부팅합니다.

그래서 저는 Google이 보호된 이미지라고 부르는 것을 만들려고 합니다. 기본적으로 UEFI 부팅 프로세스에 키를 제공하고 서명합니다. 첫 번째 부분은 BIOS 대신 UEFI를 사용하여 부팅되는 이미지를 구축하는 것입니다.

저는 표준 BIOS를 사용하여 이미지를 구축하는 데 완벽하게 작동하는 스크립트를 적용하고 이를 다음과 같이 줄였습니다.

/usr/local/bin/qemu-system-x86_64 -display cocoa \
-name disk.raw \
-drive file=output_centos/disk.raw,if=virtio,cache=writeback,discard=ignore,format=raw \
-L ./bios \
-bios bios.bin \
-cdrom /Users/ron.jarrell/newwork/infra-centos/packer_cache/5a03ac2db9b9f47812a1c314ada462d469e94d91.iso \
-netdev user,id=user.0 \
-device virtio-net,netdev=user.0 \
-boot once=d 

tianocore uefi bios가 제대로 로드되고 DVD가 부팅되지만 설치하려고 하면 "오류: 커널을 할당할 수 없습니다" 및 "오류: 먼저 커널을 로드해야 합니다"라는 메시지가 나타납니다.

결국 이것은 테스트를 위해 이 명령을 제거한 패커로 롤백될 것입니다.

원래 구성에는 "-machine type=pc,accel=hvf"도 포함되어 있어 시작이 중지되었습니다.

"QEMU 플래시: FFE00010에서 플래시를 감지하는 중"

그리고 거기 영원히 머물러라.

답변1

플래시는 분명히 주의를 돌리려는 의도로 만들어졌습니다. 패키지 파일입니다~ 할 것이다centos7 DVD를 성공적으로 가져왔고 GCP가 이를 "차폐"로 표시하고 "vtpm"을 활성화할 수 있는 것으로 인식하는 방식으로 로드했습니다. 보안과 기밀 유지를 위해 더 많은 작업이 필요합니다.

{
  "builders": [
    {
      "accelerator": "hvf",
      "boot_command": [
        "<tab> console=ttyS0,115200n8 nomodeset text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/centos7.ks<enter><wait>"
      ],
      "boot_key_interval": "10ms",
      "boot_wait": "1s",
      "communicator": "none",
      "disk_interface": "virtio",
      "disk_size": "4000",
      "format": "raw",
      "cpus": 4,
      "memory": 8192,
      "headless": false,
      "http_directory": "http",
      "iso_checksum": "sha256:101bc813d2af9ccf534d112cbe8670e6d900425b297d1a4d2529c5ad5f226372",
      "iso_url": "http://Your Mirror Here/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-2003.iso",
      "net_device": "virtio-net",
      "output_directory": "output_centos_tdhtest",
      "qemu_binary": "/usr/local/bin/qemu-system-x86_64",
      "qemuargs": [
        ["-L", "./bios.bin"],
        ["-chardev", "file,id=pts,path=serial.log"],
        ["-device", "isa-serial,chardev=pts"],
        ["-m", "8G"],
        ["-smp", "cpus=4"],
        ["-display", "cocoa"]
      ],
      "shutdown_command": "",
      "shutdown_timeout": "20m",
      "skip_compaction": true,
      "type": "qemu",
      "vm_name": "disk.raw"
    }
  ],
  "post-processors": [
    [
      {
        "output": "disk.raw.tar.gz",
        "type": "compress"
      },
      {
        "bucket": "{{user `env_name`}}-os-images",
        "image_description": "CentOS 7 Server",
        "image_family": "centos-7",
        "image_name": "b1-centos7-server-{{timestamp}}",
        "image_guest_os_features": "UEFI_COMPATIBLE",
        "project_id": "{{user `gcp_project`}}",
        "type": "googlecompute-import"
      }
    ]
  ]
}

자신만의 킥스타터 파일을 제공하세요.

관련 정보