diff --git a/cmd/coordinator/buildongce/create.go b/cmd/coordinator/buildongce/create.go
index d9de48f..c9a1ff8 100644
--- a/cmd/coordinator/buildongce/create.go
+++ b/cmd/coordinator/buildongce/create.go
@@ -26,7 +26,6 @@
 
 var (
 	makeClusters = flag.String("make-clusters", "go,buildlets", "comma-separated list of clusters to create. Empty means none.")
-	makeDisks    = flag.Bool("make-basepin", false, "Create the basepin disk images for all builders, then stop. Does not create the VM.")
 	makeMetrics  = flag.Bool("make-metrics", false, "Create the Stackdriver metrics for buildlet monitoring.")
 )
 
@@ -83,13 +82,6 @@
 		log.Fatalf("could not create client: %v", err)
 	}
 
-	if *makeDisks {
-		if err := bgc.MakeBasepinDisks(ctx); err != nil {
-			log.Fatalf("could not create basepin disks: %v", err)
-		}
-		return
-	}
-
 	for _, c := range []*buildenv.KubeConfig{&buildEnv.KubeBuild, &buildEnv.KubeTools} {
 		err := createCluster(bgc, c)
 		if err != nil {
diff --git a/cmd/coordinator/gce.go b/cmd/coordinator/gce.go
index 49692ad..c16d779 100644
--- a/cmd/coordinator/gce.go
+++ b/cmd/coordinator/gce.go
@@ -36,6 +36,7 @@
 	"golang.org/x/build/cmd/coordinator/spanlog"
 	"golang.org/x/build/dashboard"
 	"golang.org/x/build/gerrit"
+	"golang.org/x/build/internal/buildgo"
 	"golang.org/x/build/internal/buildstats"
 	"golang.org/x/build/internal/lru"
 	"golang.org/x/oauth2"
@@ -190,6 +191,7 @@
 	}
 
 	go gcePool.pollQuotaLoop()
+	go createBasepinDisks()
 	return nil
 }
 
@@ -698,3 +700,30 @@
 		<-ticker.C
 	}
 }
+
+// createBasepinDisks runs in the background on start-up and does a
+// best effort creation of zone-local copies of VM disk images, to
+// speed up VM creations in the future.
+//
+// Other than a list call, this a no-op unless new VM images were
+// added or updated recently.
+func createBasepinDisks() {
+	if !metadata.OnGCE() || (buildEnv != buildenv.Production && buildEnv != buildenv.Staging) {
+		return
+	}
+	t0 := time.Now()
+	ctx := context.Background()
+	bgc, err := buildgo.NewClient(ctx, buildEnv)
+	if err != nil {
+		log.Printf("basepin: NewClient: %v", err)
+		return
+	}
+	log.Printf("basepin: creating basepin disks...")
+	err = bgc.MakeBasepinDisks(ctx)
+	d := time.Since(t0).Round(time.Second) / 10
+	if err != nil {
+		log.Printf("basepin: error creating basepin disks, after %v: %v", d, err)
+		return
+	}
+	log.Printf("basepin: created basepin disks after %v", d)
+}
