Знание должно быть доступно!

Путь /ОС/Linux

Исходные:

Подготовка

  1. Грузимся с арча.
  2. pacman -Sy mdadm vim parted
  3. lsblk -o NAME,SIZE,MODEL
  4. fdisk -l

Проверка скорости (опционально)

  1. dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=4096 oflag=direct status=progress
  2. dd if=/dev/zero of=/dev/nvme1n1 bs=1M count=4096 oflag=direct status=progress

Очистка дисков (Сотрёт всё нафиг)

  1. sgdisk --zap-all /dev/nvme0n1
  2. sgdisk --zap-all /dev/nvme1n1
  3. parted -s /dev/nvme0n1 mklabel gpt
  4. parted -s /dev/nvme1n1 mklabel gpt

Разметка

// EFI 512M, SWAP 16G, остальное под систему

  1. parted -a optimal /dev/nvme0n1 mkpart ESP fat32 1MiB 513MiB

  2. parted -a optimal /dev/nvme0n1 set 1 esp on

  3. parted -a optimal /dev/nvme0n1 mkpart primary linux-swap 513MiB 16897MiB

  4. parted -a optimal /dev/nvme0n1 mkpart primary ext4 16897MiB 100%

  5. parted -a optimal /dev/nvme1n1 mkpart ESP fat32 1MiB 513MiB

  6. parted -a optimal /dev/nvme1n1 set 1 esp on

  7. parted -a optimal /dev/nvme1n1 mkpart primary linux-swap 513MiB 16897MiB

  8. parted -a optimal /dev/nvme1n1 mkpart primary ext4 16897MiB 100%

RAID1 для системы

  • mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme0n1p3 /dev/nvme1n1p3 //отвечай "y" на "bitmap question"
  • watch cat /proc/mdstat //глянь UU, есть ли синхронизация, можешь не дожидаться окончания, ставь дальше если UU
  • mdadm --detail --scan >> /etc/mdadm.conf

Файловые системы

  • mkfs.ext4 /dev/md0
  • mkfs.fat -F32 /dev/nvme0n1p1 //для EFI
  • mkfs.fat -F32 /dev/nvme1n1p1 //для EFI
  • mkswap /dev/nvme0n1p2 //swap
  • mkswap /dev/nvme1n1p2 //swap

Монтирование

  • mount /dev/md0 /mnt
  • mkdir -p /mnt/boot
  • mount /dev/nvme0n1p1 /mnt/boot

Установка системы

  • pacstrap -K /mnt base linux linux-firmware mdadm networkmanager grub efibootmgr vim sudo openssh //-K чтобы ключи тоже перенеслись

Настройка fstab

  • genfstab -U /mnt >> /mnt/etc/fstab
  • cat /mnt/etc/fstab

должно быть примерно:

/dev/md0              /       ext4   rw,relatime  0 1
/dev/nvme0n1p1        /boot   vfat   rw,relatime,fmask=0022,dmask=0022,utf8,errors=remount-ro 0 2
/dev/nvme0n1p2        none    swap   defaults 0 0
/dev/nvme1n1p2        none    swap   defaults 0 0

chroot

  • arch-chroot /mnt
  • mdadm --detail --scan >> /etc/mdadm.conf

//добавить mdadm_udev в HOOKS перед filesystems vim /etc/mkinitcpio.conf //и добавляем mdadm_udev именно после block и перед filesystems:

HOOKS=(base udev autodetect modconf block mdadm_udev filesystems keyboard fsck)

//Дальше выполни: mkinitcpio -P

Загрузчик

  • grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck
  • mkdir -p /boot2
  • mount /dev/nvme1n1p1 /boot2
  • grub-install --target=x86_64-efi --efi-directory=/boot2 --bootloader-id=Arch --recheck
  • grub-mkconfig -o /boot/grub/grub.cfg

Сеть и SSH

  • systemctl enable NetworkManager
  • systemctl enable sshd

Пользователи

  • passwd
  • useradd -m -G wheel -s /bin/bash user
  • passwd user

Группа

Изменить default(основную) группу для пользователя

sudo usermod -g developers userName

Просто добавить пользователя в группу:

sudo usermod -aG developers userName

Выход и перезагрузка

  • exit
  • umount -R /mnt
  • reboot

После загрузки

  • cat /proc/mdstat
  • lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
  • swapon --show

Если один диск отвалится:

  • mdadm --detail /dev/md0
  • mdadm --add /dev/md0 /dev/nvme1n1p3

Примечания

  • RAID1 зеркалит root. /boot - на первом EFI, дублируется вручную.
  • swap на обоих дисках, ядро балансирует автоматически.
  • bitmap=y при создании ускоряет ресинк.
  • UUID в fstab обязателен при финальной настройке.
  • mdadm.conf должен быть в initramfs.
  • Убедись, что UEFI загружается с nvme0n1, а второй EFI держи синхронным.
  • Можно скопировать загрузчик вручную: mount /dev/nvme1n1p1 /mnt2 cp -r /boot/* /mnt2/ umount /mnt2