diff --git a/builder/amazon/ebssurrogate/step_register_ami.go b/builder/amazon/ebssurrogate/step_register_ami.go index 975854b96..c4d8d9480 100644 --- a/builder/amazon/ebssurrogate/step_register_ami.go +++ b/builder/amazon/ebssurrogate/step_register_ami.go @@ -24,15 +24,23 @@ func (s *StepRegisterAMI) Run(state multistep.StateBag) multistep.StepAction { ui.Say("Registering the AMI...") - blockDevices := s.BlockDevices - blockDevices = append(blockDevices, s.RootDevice.createBlockDeviceMapping(snapshotId)) + blockDevicesExcludingRoot := make([]*ec2.BlockDeviceMapping, 0, len(s.BlockDevices)-1) + for _, blockDevice := range s.BlockDevices { + if *blockDevice.DeviceName == s.RootDevice.SourceDeviceName { + continue + } + + blockDevicesExcludingRoot = append(blockDevicesExcludingRoot, blockDevice) + } + + blockDevicesExcludingRoot = append(blockDevicesExcludingRoot, s.RootDevice.createBlockDeviceMapping(snapshotId)) registerOpts := &ec2.RegisterImageInput{ Name: &config.AMIName, Architecture: aws.String(ec2.ArchitectureValuesX8664), RootDeviceName: aws.String(s.RootDevice.DeviceName), VirtualizationType: aws.String(config.AMIVirtType), - BlockDeviceMappings: blockDevices, + BlockDeviceMappings: blockDevicesExcludingRoot, } if config.AMIEnhancedNetworking {