Создаём структуру разделов /dev/sda1 500M, /dev/sda2 56G Таблица разделов: msdos
- Код: выделить все
parted -a optimal /dev/sdа
(parted) unit MiB Настраиваем parted на честные мегабайты (2^n])
(parted) print
(parted) rm ?
(parted) mklabel msdos
(parted) mkpart primary xfs 1 525
(parted) set 1 boot on
(parted) mkpart primary xfs 525 -1
(parted) quit
- Код: выделить все
mkfs.xfs -f -L "BOOT" /dev/sdа1
mkfs.xfs -f -L "ROOT" /dev/sdа2
Особого смысла нет задавать метки томов при создании файловой системы, поскольку xfs_copy копирует файловую систему полностью в том числе и метки томов (если таковые были заданы)
- Код: выделить все
xfs_copy /dev/sdc1 /dev/sda1
xfs_copy /dev/mapper/rfremix-root /dev/sda2
Увеличиваем размер файловой системы до размера раздела
- Код: выделить все
xfs_growfs /dev/sda2
- Код: выделить все
xfs_admin -L "BOOT" /dev/sda1
xfs_admin -L "ROOT" /dev/sda2
xfs_admin -L "RFREMIX-HOME" /dev/mapper/rfremix-home
Метки на FS проставлять на не монтированных томах (если на исходных файловых системах не было заданы)
Установите метку файловой системы. Метки файловой системы XFS могут содержать не более 12 символов; Если метка длиннее 12 символов, xfs_admin усекает ее и распечатает предупреждающее сообщение. Метка файловой системы может быть очищена с использованием специального значения «--» для метки.
- Код: выделить все
lsblk
- Монтируем виртуальную файловую систему proc (необходима для работы ps, lsof и генерации initramfs)
- Рекурсивно пробрасываем интерфейс ядра к устройствам (sysfs) и изолируем изменения в chroot
- Рекурсивно пробрасываем файлы dev (необходимо для обнаружения ZFS-пулов и дисков через dracut)
- Пробрасываем /run (необходимо для работы systemd, временных файлов блокировок, сокетов, LVM/LUKS и импорта пулов ZFS)
- Обязательно монтируем переменные EFI (NVRAM). Без них утилиты grub2-mkconfig, efibootmgr и zfsbootmenu не смогут управлять порядком загрузки и записями в BIOS/материнской плате!
- Монтируем изолированный tmpfs для временных файлов внутри chroot
- Входим в изолированное окружение нашей системы Fedora
- Код: выделить все
mount -t proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --make-rslave /mnt/sys
mount --rbind /dev /mnt/dev
mount --make-rslave /mnt/dev
mount --rbind /run /mnt/run
mount --make-rslave /mnt/run
mount --rbind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
mount --make-rslave /mnt/sys/firmware/efi/efivars
mount -t tmpfs tmpfs /mnt/sys/tmp
chroot /mnt /bin/bash
Приводим UUID в fstab в соответствие.
- Код: выделить все
blkid |grep sda
/dev/sda1: LABEL="BOOT" UUID="f1bb3a3e-d172-4cbc-80c2-d4f60184f38c" TYPE="xfs"
/dev/sda2: LABEL="ROOT" UUID="69060936-aa74-420e-895e-6eb98f193c3c" TYPE="xfs"
- Код: выделить все
e /etc/fstab
При переустановке grub UUID раздела в файле /etc/grub2.cfg меняется на UUID загрузочного раздела
При запуске нужно избавиться от соответствующих параметров запуска ядра связанных с VLM
- Код: выделить все
rd.lvm.lv=rfremix/root rd.lvm.lv=rfremix/swap
теперь они нам не нужны и поэтому редактируем загрузку системы в GRUB. После чего не забываем отредактировать /etc/default/grub удалив эти же параметры. Далее обновляем grub
Если используется SELinux, то перед выходом из chroot нужно в корне создать файл .autorelabel, иначе есть риск не попасть в систему (циклическая авторизация). При смене носителя правила SELinux приходят в несоответствие и их нужно пересоздать.
- Код: выделить все
grub2-install --force /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
touch /.autorelabel
exit
umount /mnt/{boot,home,}
Создаём initramfs и перезапускаемся (--force перезапишет существующий initramfs)
- Код: выделить все
dracut --force /boot/initramfs-$(uname -r).img $(uname -r)
reboot