Merge pull request #475 from sjoerdsimons/msdos-fixes

Fix accidental application of msdos quirks to gpt
This commit is contained in:
Christopher Obbard
2024-01-20 20:03:59 +00:00
committed by GitHub
3 changed files with 122 additions and 36 deletions

View File

@@ -480,9 +480,7 @@ func (i ImagePartitionAction) Run(context *debos.DebosContext) error {
}
var name string
if i.PartitionType == "gpt" {
name = p.PartLabel
} else {
if i.PartitionType == "msdos" {
if len(i.Partitions) <= 4 {
name = "primary"
} else {
@@ -494,6 +492,8 @@ func (i ImagePartitionAction) Run(context *debos.DebosContext) error {
name = "logical"
}
}
} else {
name = p.PartLabel
}
command := []string{"parted", "-a", "none", "-s", "--", context.Image, "mkpart", name}
@@ -671,30 +671,32 @@ func (i ImagePartitionAction) PostMachineCleanup(context *debos.DebosContext) er
func (i *ImagePartitionAction) Verify(context *debos.DebosContext) error {
for idx, _ := range i.Partitions {
p := &i.Partitions[idx]
if i.PartitionType == "msdos" {
for idx, _ := range i.Partitions {
p := &i.Partitions[idx]
if idx == 3 && len(i.Partitions) > 4 {
var name string
var part Partition
if idx == 3 && len(i.Partitions) > 4 {
var name string
var part Partition
name = "extended"
part.number = idx+1
part.Name = name
part.Start = p.Start
tmp_n := len(i.Partitions)-1
tmp := &i.Partitions[tmp_n]
part.End = tmp.End
part.FS = "none"
name = "extended"
part.number = idx + 1
part.Name = name
part.Start = p.Start
tmp_n := len(i.Partitions) - 1
tmp := &i.Partitions[tmp_n]
part.End = tmp.End
part.FS = "none"
i.Partitions = append(i.Partitions[:idx+1], i.Partitions[idx:]...)
i.Partitions[idx] = part
i.Partitions = append(i.Partitions[:idx+1], i.Partitions[idx:]...)
i.Partitions[idx] = part
num := 1
for idx, _ := range i.Partitions {
p := &i.Partitions[idx]
p.number = num
num++
num := 1
for idx, _ := range i.Partitions {
p := &i.Partitions[idx]
p.number = num
num++
}
}
}
}

View File

@@ -1,14 +1,70 @@
{
"partitiontable": {
"label":"gpt",
"id":"12345678-1234-1234-1234-123456789012",
"device":"test.img",
"unit":"sectors",
"firstlba":34,
"lastlba":7812466,
"sectorsize":512,
"label": "gpt",
"id": "12345678-1234-1234-1234-123456789012",
"device": "test.img",
"unit": "sectors",
"firstlba": 34,
"lastlba": 15624966,
"sectorsize": 512,
"partitions": [
{"node":"test.img1", "start":34, "size":7812433, "type":"0FC63DAF-8483-4772-8E79-3D69D8477DE4", "uuid":"87654321-1234-5678-9012-345678901234", "name":"system"}
{
"node": "test.img1",
"start": 34,
"size": 499967,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "7BA1B99D-7942-450A-921B-F394A0A065AF",
"name": "boot"
},{
"node": "test.img2",
"start": 500001,
"size": 3406250,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "87654321-1234-5678-9012-345678901234",
"name": "system"
},{
"node": "test.img3",
"start": 3906251,
"size": 1953125,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "713CA942-5DB4-41F8-A365-E8F1CA967D7A",
"name": "data0"
},{
"node": "test.img4",
"start": 5859376,
"size": 1953125,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "05D13CA0-7EA3-48D2-9824-8C94263E5692",
"name": "data1"
},{
"node": "test.img5",
"start": 7812501,
"size": 1953125,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "C86924DB-49D2-47D8-BBB7-BB56426A8934",
"name": "data2"
},{
"node": "test.img6",
"start": 9765626,
"size": 1953125,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "B0F4D633-B66A-44B6-933A-E77A0144B275",
"name": "data3"
},{
"node": "test.img7",
"start": 11718751,
"size": 1953125,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "8BDAE85E-E473-4D77-B09D-43E1D6F741DA",
"name": "data4"
},{
"node": "test.img8",
"start": 13671876,
"size": 1953091,
"type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
"uuid": "F9272482-3F7E-44E3-8D99-C24023EB3317",
"name": "data5"
}
]
}
}

View File

@@ -4,18 +4,46 @@ actions:
- action: image-partition
description: Partition the image
imagename: test.img
imagesize: 4G
imagesize: 8G
partitiontype: gpt
diskid: 12345678-1234-1234-1234-123456789012
mountpoints:
- mounpoint: /
partition: system
partitions:
- name: system
partuuid: 87654321-1234-5678-9012-345678901234
fs: ext4
- name: boot
fs: ext2
start: 0%
end: 100%
end: 256M
- name: system
fs: ext4
start: 256m
end: 2G
partuuid: 87654321-1234-5678-9012-345678901234
- name: data0
fs: ext4
start: 2G
end: 3G
- name: data1
fs: ext4
start: 3G
end: 4G
- name: data2
fs: ext4
start: 4G
end: 5G
- name: data3
fs: ext4
start: 5G
end: 6G
- name: data4
fs: ext4
start: 6G
end: 7G
- name: data5
fs: ext4
start: 7G
end: 8G
- action: run
chroot: false