dd-format images fail to deploy
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
High
|
Blake Rouse | ||
1.7 |
Fix Released
|
High
|
Blake Rouse |
Bug Description
I'm using MAAS from the experimental PPA, version is 1.7.0~rc3+
I'm trying to deploy a ddtgz format image, but the image is never sent to the node, which then appears as "failed deployment" in the MAAS UI.
The image is based on an OEM version of Ubuntu (though as you'll see below, I think this would happen with any other dd-format image). To create my image, I installed this in a VM, then shut the VM down, connected the qcow image and did "dd if=/dev/nbd0 of=myimage.dd". Finally, I tarred the dd file and uploaded to MAAS like this:
time maas roadmr boot-resources create name=my-image-dd title='roadmr dd image' architecture=
maas boot-resource read shows this:
roadmr@thinkpad:~$ maas roadmr boot-resource read 22
{
"name": "my-image-dd",
"title": "roadmr dd image",
"sets": {
"20141118": {
}
},
"size": 1890612863
}
},
"architecture": "amd64/generic",
"subarches": "generic",
"type": "Uploaded",
"id": 22,
"resource_uri": "/MAAS/
}
then in the UI, I "acquire and start" the node, which boots the installer, then barks something at me, then reboots and gets stuck at the "boot:" prompt. On the UI I see "Failed deployment" and this is in the install log:
--2014-11-18 21:47:33-- http://
Connecting to 10.10.10.1:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2014-11-18 21:47:33 ERROR 404: Not Found.
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Unexpected error while running command.
Command: ['sh', '-cf', 'wget "$1" --progress=dot:mega -O - |tar -C "$2" --xattrs --xattrs-include=* -Sxpzf - --numeric-owner', '--', 'http://
Exit code: 2
Reason: -
Stdout: ''
Stderr: ''
Installation failed with exception: Unexpected error while running command.
Command: ['curtin', 'extract']
Exit code: 3
Reason: -
Stdout: '--2014-11-18 21:47:33-- http://
Stderr: ''
So curtin (under maas's instructions, I presume) is trying to fetch root-tgz instead of root-dd (which I confirmed exists in /var/lib/
Related branches
- Gavin Panella (community): Approve
-
Diff: 80 lines (+41/-0)2 files modifiedsrc/provisioningserver/drivers/osystem/custom.py (+12/-0)
src/provisioningserver/drivers/osystem/tests/test_custom.py (+29/-0)
- Andres Rodriguez (community): Approve
-
Diff: 80 lines (+41/-0)2 files modifiedsrc/provisioningserver/drivers/osystem/custom.py (+12/-0)
src/provisioningserver/drivers/osystem/tests/test_custom.py (+29/-0)
Changed in maas: | |
milestone: | none → 1.7.1 |
Changed in maas: | |
status: | Triaged → In Progress |
milestone: | 1.7.1 → next |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Changed in maas: | |
milestone: | next → none |
So the issue is that the OS driver determines the filetype, and the custom OS driver is not checking the file to determine the correct path.
This only occurs for custom images that are dd.