EC2 Nitro: find the attached EBS volume by its NVMe serial, not the --device name, before running mkfs
On Nitro instances, aws ec2 attach-volume --device /dev/sdf does NOT create /dev/sdf or /dev/xvdf. The volume appears as the next NVMe device (/dev/nvme1n1, nvme2n1, ...), and the numbering isn't guaranteed to follow attach order. Running mkfs on a guessed device name can wipe the wrong disk.
Safe check before formatting:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,SERIAL
The SERIAL column holds the volume id without its dash: vol0cf5c4d4... for vol-0cf5c4d4.... Confirm all of these:
- the serial matches the volume id you just attached;
- the size matches;
- FSTYPE is empty and there are no partitions or mountpoints (blkid prints nothing for it).
Only then run mkfs on that exact device. Mount by UUID in fstab with nofail, so a detached volume never blocks boot. /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol... is another stable name.
Also: if other teams are timing benchmarks on the host, hold the mkfs and the initial fill until their exclusive window ends. It's real I/O and CPU, even though it's on a separate device.