Skip to content

Commit d2d19d3

Browse files
authored
vm: fix binfmt not enabled after restart (#1371)
Signed-off-by: Abiola Ibrahim <git@abiosoft.com>
1 parent 6a6da99 commit d2d19d3

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

cmd/start.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ var startCmdArgs struct {
134134
Edit bool
135135
Editor string
136136
ActivateRuntime bool
137+
Binfmt bool
137138
DNSHosts []string
138139
Foreground bool
139140
SaveConfig bool
@@ -200,7 +201,7 @@ func init() {
200201
}
201202

202203
// binfmt
203-
startCmd.Flags().BoolVar(&startCmdArgs.Binfmt, "binfmt", true, binfmtDesc)
204+
startCmd.Flags().BoolVar(&startCmdArgs.Flags.Binfmt, "binfmt", true, binfmtDesc)
204205

205206
// config
206207
startCmd.Flags().BoolVarP(&startCmdArgs.Flags.Edit, "edit", "e", false, "edit the configuration file before starting")
@@ -397,6 +398,7 @@ func prepareConfig(cmd *cobra.Command) {
397398
startCmdArgs.Mounts = mountsFromFlag(startCmdArgs.Flags.Mounts)
398399
startCmdArgs.Network.DNSHosts = dnsHostsFromFlag(startCmdArgs.Flags.DNSHosts)
399400
startCmdArgs.ActivateRuntime = &startCmdArgs.Flags.ActivateRuntime
401+
startCmdArgs.Binfmt = &startCmdArgs.Flags.Binfmt
400402

401403
// handle legacy kubernetes-disable
402404
for _, disable := range startCmdArgs.Flags.LegacyKubernetesDisable {
@@ -489,6 +491,11 @@ func prepareConfig(cmd *cobra.Command) {
489491
startCmdArgs.ActivateRuntime = current.ActivateRuntime
490492
}
491493
}
494+
if !cmd.Flag("binfmt").Changed {
495+
if current.Binfmt != nil {
496+
startCmdArgs.Binfmt = current.Binfmt
497+
}
498+
}
492499
if !cmd.Flag("network-host-addresses").Changed {
493500
startCmdArgs.Network.HostAddresses = current.Network.HostAddresses
494501
}

config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type Config struct {
4646
// VM
4747
VMType string `yaml:"vmType,omitempty"`
4848
VZRosetta bool `yaml:"rosetta,omitempty"`
49-
Binfmt bool `yaml:"binfmt,omitempty"`
49+
Binfmt *bool `yaml:"binfmt,omitempty"`
5050
NestedVirtualization bool `yaml:"nestedVirtualization,omitempty"`
5151
DiskImage string `yaml:"diskImage,omitempty"`
5252

environment/vm/lima/lima.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ func (l *limaVM) addPostStartActions(a *cli.ActiveCommandChain, conf config.Conf
381381
a.Add(func() error {
382382
if !l.limaConf.Rosetta.Enabled {
383383
// use binfmt when rosetta is disabled and emulation is disabled i.e. host arch
384-
if l.conf.Binfmt {
384+
if conf.Binfmt != nil && *conf.Binfmt {
385385
if arch := environment.HostArch(); arch == environment.Arch(conf.Arch).Value() {
386386
if err := core.SetupBinfmt(l.host, l, environment.Arch(conf.Arch)); err != nil {
387387
logrus.Warn(fmt.Errorf("unable to enable qemu %s emulation: %w", arch, err))

0 commit comments

Comments
 (0)