我正在嘗試使用打包程式建立 Ubuntu 19.04 伺服器映像。我讓它啟動並運行安裝似乎很好,經過一個小時和更改後,Qemu 顯示安裝已完成,SIGINT
並且有時SIGKILL
發送了和,並且請求重新啟動,但最終打包程序超時,因為Qemu 從未重新啟動作業系統以讓打包機透過 SSH 連接並完成它的工作。我嘗試了一些方法來讓 Qemu 輸出有關無法重新啟動的原因的資訊:
-serial stdio
-serial mon:stdio
-serial telnet:127.0.0.1:4444,server,nowait
一切都無濟於事。我沒有從 Qemu 得到任何回饋。我還嘗試尋找配置追蹤和-append console=ttyS0
內核的好範例。我是 Qemu 和 Packer 的新手,所以如果我遺漏了一些明顯的東西,請原諒我。我做了很多搜索,試圖找到調試 qemu 的方法,以找出它在重新啟動時掛起的原因。
Ubuntu 19.04 桌面版本:
包裝機:1.4.1
Qemu:3.1.0(易於安裝)
macOS 10.14.5 建置環境:
打包機:1.4.0
Qemu:4.0.0(沖泡安裝)
在這兩種環境中,qemu 似乎都掛在重啟部分。我說似乎是因為雖然我確實-display gtk
在 Ubuntu 桌面上查看了它掛在哪裡,但有一個錯誤(?)並且-display sdl
在 Mac 上損壞了,並且 gtk 無法工作。我也在Mac上嘗試過curses,但這也不起作用。據我所知,兩者都在同一個地方斷裂。如果需要,我可以提供我的 preseed.cfg。
這是我的ubuntu.json
:
{
"builders": [
{
"type": "qemu",
"boot_command": [
"<enter><wait2><esc><wait2><enter>",
"<wait>",
"/install/vmlinuz",
" initrd=/install/initrd.gz quiet",
" vga=788",
" auto=true",
" priority=critical",
" reboot=pci",
" url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg",
" --- <enter>"
],
"qemuargs": [
["-display", "gtk"],
["-serial", "stdio"]
],
"boot_wait": "5s",
"disk_size": 20000,
"headless": false,
"http_directory": "http",
"iso_url": "http://cdimage.ubuntu.com/releases/19.04/release/ubuntu-19.04-server-amd64.iso",
"iso_checksum_type": "sha256",
"iso_checksum_url": "http://cdimage.ubuntu.com/releases/19.04/release/SHA256SUMS",
"communicator": "ssh",
"ssh_username": "ubuntu",
"ssh_password": "ubuntu",
"ssh_port": 22,
"ssh_wait_timeout": "120m",
"shutdown_command": "echo 'ubuntu' | sudo shutdown -P now",
"vm_name": "ubuntu-19.04-amd64.qcow2"
}
]
}
答案1
看來我是受到競爭條件的影響。在 Qemu 4 上建置修復了這個問題,一旦我修復了 macOS 上的設定文件,我就能夠獲得建置。