Arch Linux Install with 2 NVMe's in RAID 0

My hardware consisted of an Asus Extreme MB and 2 Samsung 500G 970 Evo plus NVMe drives.
Download the newest Arch Linux iso from https://www.archlinux.org/download/ and make a bootable usb. Boot from the usb and at the command line enter the following setup. Consult your motherboard manufacture for RAID setup.

ping -c 3 google.com
timedatectl set-ntp true
fdisk -l  {Note my drives show as nvme0n1 and nvme1n1}
cfdisk /dev/nvme0n1 {Note use gpt}
create 550M
create 5G
create 455G
create 5G
write and exit
cfdisk /dev/nvme1n1
create 5G
create 455G
create 5G
write and exit
fdsik -l

mdadm --create --verbose --level=0 --metadata=1.2 --chunk=128 --raid-devices=2 /dev/md0 /dev/nvme0n1p2 /dev/nvme1n1p1

mdadm --create --verbose --level=0 --metadata=1.2 --chunk=128 --raid-devices=2 /dev/md1 /dev/nvme0n1p3 /dev/nvme1n1p2

mdadm --create --verbose --level=0 --metadata=1.2 --chunk=128 --raid-devices=2 /dev/md2 /dev/nvme0n1p4 /dev/nvme1n1p3

lvmdiskscan

pvcreate /dev/md0
pvcreate /dev/md1
pvcreate /dev/md2

vgcreate vg_swap /dev/md0
vgcreate vg_main /dev/md1
vgcreate vg_tmp /dev/md2
vgscan

lvcreate -l +100%FREE vg_swap -n swap
lvcreate -L 60GiB vg_main -n rootfs
lvcreate -l +100%FREE vg_main -n homefs
lvcreate -l +100%FREE vg_tmp -n tmpfs
lvscan

mkswap /dev/mapper/vg_swap-swap
mkfs.ext4 /dev/mapper/vg_main-rootfs
mkfs.ext4 /dev/mapper/vg_main-homefs
mkfs.ext4 /dev/mapper/vg_tmp-tmpfs
swapon /dev/mapper/vg_swap-swap
mkfs.fat -F32 /dev/nvme0n1p1

mount /dev/mapper/vg_main-rootfs /mnt
mkdir /mnt/home
mkdir /mnt/tmp

mount /dev/mapper/vg_main-homefs /mnt/home
mount /dev/mapper/vg_tmp-tmpfs /mnt/tmp

pacstrap -i /mnt base base-devel
genfstab -U -p  /mnt > > /mnt/etc/fstab
arch-chroot /mnt /bin/bash
nano /etc/locale.gen {uncomment [en_US.UTF-8 UTF-8] ctrl o {enter} ctrl x  {Note this is my local}
locale-gen
ln -sf /usr/share/zoneinfo/America/Los_Angeles  /etc/localtime
hwclock --systohc --utc
nano /etc/mkinitcpio.conf
MODULES="dm_mod"  {Note add dm_mod between the ""}
HOOKS="base...block mdadm_udev lvm2 filesystems ctrl o ctrl x {Note last line in hooks add mdadm_udev lvm2 between block & filesystems}

mkinitcpio -p linux
pacman -S grub efibootmgr
mkdir /boot/efi
mount /dev/nvme0n1p1 /boot/efi
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
mkdir /boot/efi/EFI/BOOT
cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
nano /boot/efi/startup.nsh
 bcf boot add 1 fs0:\EFI\GRUB\grubx64.efi "My GRUB bootloader"{Note 
 the back slashes}
 exit
 ctrl o {enter} ctrl x

pacman -S networkmanager
systemctl enable NetworkManager

echo computername > /etc/hostname  {NOTE: Your computername}
nano /etc/hosts
 127.0.1.1 localhost.localdomain computername ctrl o {enter} ctrl x
passwd   {NOTE: This is the Root Password}
exit
umount -R /mnt
reboot  {Note remove Flash drive and enter bios on startup, turn bios nvme raid on}

login: root
nano /etc/pacman.conf  {uncomment multilib}
pacman -Syyu

pacman -S xorg xorg-server xorg-xinit xterm
useradd -m -g users -G wheel -s /bin/bash username  {NOTE: Your username}
EDITOR=nano visudo
uncomment %wheel ALL=(ALL) ALL ctrl o {enter} ctrl x
passwd username {NOTE: Your username}
exit
login: username
sudo pacman -S konsole dolphin firefox kate

{NOTE: Add your own desktop}
The easiest way I have found to install desktops is Arcolinuxd scrips.

A HUGE THANKS TO:
Wendell @ Level1techs
Erik Dubios @ www.arcolinux.com
Derek @ Distro Tube on Youtube
and https://averagelinuxuser.com

You guys have made learning Linux a Blast.
My very best regards,
Gollenda

5 Likes

Huh, it all looks correct, but Boy are you living dangerously!
Arch, on Raid0?

My hat is off to you sir, and your huge pair of…

4 Likes

I have all my stuff backed up on spinning rust.

2 Likes

I added another 500 gig NVMe. It runs like a dream.

Hello.
My first post ever :slight_smile:
I was struggling with this for 3 days. I have the same drives and Asus Crosshair VII MB. (had to secure erase the drives in bios for it to work)

My read speed is 6,8GB/s. But write speed is only 1,3GB/s.
Is this OK? How are yours speeds? What can I do to improve my write speed? I tested this with Disks built in benchmark.

In windows I get 6,7GB/s R and 6,4GB/s W (but don’t want to use win as my daily driver)

Did Linux Kernel 5.18 happen to break your MD setup? Apparently according to this post you need to change how devices are partitioned mdadm.conf if the CONFIG_BLOCK_LEGACY_AUTOLOAD kernel flag is set to ‘y’.

I am not sure how the mdadm.conf should look with the guide above.