You can change the partitioning of your server during installation or re-installation only. Be aware that all your data will be deleted if you reinstall your server.
How to configure custom disk partitioning on Scaleway Elastic Metal servers
Scaleway Elastic Metal servers come with a default partition layout, suitable for most users and intended to speed up and simplify the installation process of the server. However, if you have specific requirements, you can define custom partitioning of your machine using a JSON configuration during server installation.
Before you start
To complete the actions presented below, you must have:
- A Scaleway account logged into the console
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
- An SSH key
- An Elastic Metal server
Example configuration
During server installation click Advanced JSON configuration in step 5 of the server creation wizard. You can then edit the partition configuration directly in the editor within your browser. The configuration is done via a JSON description of the partitioning. Below is an example of how to define a partitioning schema with RAID and NVMe disks.
- Disk Type Naming: Device names differ based on the disk type. For example, HDD/SSD will use
/dev/sdXXX
, while NVMe devices use/dev/nvmeXXX
. - UEFI Partition: The EFI partition should only exist if the server uses UEFI. If UEFI is not in use, this partition should be omitted.
- ZFS and LVM: ZFS is optional and can be configured if needed, while LVM should not be used for now due to functionality issues.
Refer to the Elastic Metal API documentation for a complete overview of the expected values for file system types, RAID configurations, and other related parameters required for partitioning. For more details, visit the Scaleway Elastic Metal API Documentation – Default Partitioning Schema.
{"partitioning_schema": {"disks": [{"device": "/dev/nvme0n1","partitions": [{"label": "uefi","number": 1,"size": 536870912},{"label": "swap","number": 2,"size": 4294967296},{"label": "boot","number": 3,"size": 536870912},{"label": "root","number": 4,"size": 64424509440},{"label": "data","number": 5,"size": 1850588790784}]},{"device": "/dev/nvme1n1","partitions": [{"label": "swap","number": 1,"size": 4294967296},{"label": "boot","number": 2,"size": 536870912},{"label": "root","number": 3,"size": 64424509440},{"label": "data","number": 4,"size": 1850588790784}]}],"raids": [{"name": "/dev/md0","level": "raid_level_1","devices": ["/dev/nvme0n1p3","/dev/nvme1n1p2"]},{"name": "/dev/md1","level": "raid_level_1","devices": ["/dev/nvme0n1p4","/dev/nvme1n1p3"]}],"filesystems": [{"device": "/dev/nvme0n1p1","format": "fat32","mountpoint": "/boot/efi"},{"device": "/dev/md0","format": "ext4","mountpoint": "/boot"},{"device": "/dev/md1","format": "ext4","mountpoint": "/"}],"lvm": null,"zfs": {"pools": [{"name": "zpve","type": "mirror","devices": ["/dev/nvme0n1p5","/dev/nvme1n1p4"],"options": ["ashift=12"],"filesystem_options": []}]}}}
Explanation of key sections:
-
Disks:
- Each disk is specified with its device path (e.g.,
/dev/nvme0n1
or/dev/nvme1n1
). - Partitions are defined with labels. The default value is
unknown_partition_label
, and possible values are:uefi
,legacy
,root
,boot
,swap
,data
,home
,raid
. Refer to the API documentation for full details. - Each partition has a
number
andsize
in bytes.
- Each disk is specified with its device path (e.g.,
-
RAID (Optional):
- If RAID is required, declare the disks and the desired RAID level. In this example, we are configuring two RAID-1 arrays, one for the boot partition and one for the root partition.
- Devices participating in each RAID array are specified by their partition paths (e.g.,
/dev/nvme0n1p3
for partition 3 of the first NVMe disk).
-
File systems:
- Each partition is assigned a file system type and a mount point.
- For example, the
/boot/efi
partition is formatted withfat32
, while/boot
and/
are formatted withext4
.
-
ZFS (Optional):
- ZFS can be configured if wished. In this example, a ZFS mirror is created using partitions from two NVMe devices.
- ZFS options such as
ashift=12
can be included for performance tuning, but they are optional.
Simple configuration (No RAID or ZFS)
If you prefer a simpler configuration without RAID or ZFS, you can remove the raids
and zfs
sections. For example, if you only need a single disk setup with no RAID, declare just one disk with the partitions and file systems as shown below:
{"partitioning_schema": {"disks": [{"device": "/dev/nvme0n1","partitions": [{"label": "swap","number": 1,"size": 4294967296},{"label": "boot","number": 2,"size": 536870912},{"label": "root","number": 3,"size": 64424509440}]}],"filesystems": [{"device": "/dev/nvme0n1p2","format": "ext4","mountpoint": "/boot"},{"device": "/dev/nvme0n1p3","format": "ext4","mountpoint": "/"}],"raids": [],"zfs": null,"lvm": null}}