diff --git a/core/profiles/minimal/config/install/system.theme.global.yml b/core/profiles/minimal/config/install/system.theme.global.yml
new file mode 100644
index 0000000000..0fdc4b977e
--- /dev/null
+++ b/core/profiles/minimal/config/install/system.theme.global.yml
@@ -0,0 +1,14 @@
+favicon:
+  mimetype: image/vnd.microsoft.icon
+  path: ''
+  url: ''
+  use_default: true
+features:
+  comment_user_picture: true
+  comment_user_verification: true
+  favicon: true
+  node_user_picture: false
+logo:
+  path: ''
+  url: ''
+  use_default: true
diff --git a/core/profiles/minimal/config/install/user.settings.yml b/core/profiles/minimal/config/install/user.settings.yml
new file mode 100644
index 0000000000..04195552a3
--- /dev/null
+++ b/core/profiles/minimal/config/install/user.settings.yml
@@ -0,0 +1,16 @@
+anonymous: Anonymous
+verify_mail: true
+notify:
+  cancel_confirm: true
+  password_reset: true
+  status_activated: true
+  status_blocked: false
+  status_canceled: false
+  register_admin_created: true
+  register_no_approval_required: true
+  register_pending_approval: true
+register: visitors_admin_approval
+cancel_method: user_cancel_block
+password_reset_timeout: 86400
+password_strength: true
+langcode: en
diff --git a/core/profiles/minimal/minimal.install b/core/profiles/minimal/minimal.install
deleted file mode 100644
index b9aab3c936..0000000000
--- a/core/profiles/minimal/minimal.install
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @file
- * Install, update and uninstall functions for the minimal installation profile.
- */
-
-/**
- * Implements hook_install().
- *
- * Performs actions to set up the site for this profile.
- *
- * @see system_install()
- */
-function minimal_install() {
-  // Disable the user pictures on nodes.
-  \Drupal::configFactory()->getEditable('system.theme.global')->set('features.node_user_picture', FALSE)->save(TRUE);
-
-  // Allow visitor account creation, but with administrative approval.
-  \Drupal::configFactory()->getEditable('user.settings')->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save(TRUE);
-}
diff --git a/core/profiles/minimal/tests/src/Functional/MinimalTest.php b/core/profiles/minimal/tests/src/Functional/MinimalTest.php
index b5f170d48e..b87b33139f 100644
--- a/core/profiles/minimal/tests/src/Functional/MinimalTest.php
+++ b/core/profiles/minimal/tests/src/Functional/MinimalTest.php
@@ -37,6 +37,10 @@ public function testMinimal() {
 
     // Ensure that there are no pending entity updates after installation.
     $this->assertFalse($this->container->get('entity.definition_update_manager')->needsUpdates(), 'After installation, entity schema is up to date.');
+
+    // Ensure special configuration overrides are correct.
+    $this->assertFalse($this->config('system.theme.global')->get('features.node_user_picture'), 'Configuration system.theme.global:features.node_user_picture is FALSE.');
+    $this->assertEquals(USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL, $this->config('user.settings')->get('register'));
   }
 
 }
