/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_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 усекает ее и распечатает предупреждающее сообщение. Метка файловой системы может быть очищена с использованием специального значения «--» для метки.
- Монтируем виртуальную файловую систему 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"
При переустановке 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