Найти в Дзене

Arch Linux (перенос Linux на другой накопитель)

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция (в основном для собственного пользования) по переносу Arch Linux на другой накопитель, но справедливо и для других дистрибутивов. Условия таковы, Arch Linux установлен с использованием UEFI и на файловую систему BTRFS на чистый накопитель, перенос на другой накопитель. Действия будут происходить на KVM/QEMU для наглядности с пояснениями и все возможными мыслями. План действий таков: И так, приступим... Подготовка нового накопителя. Все действия будут выполнены из под root. Уже всем известной командой(опять же она для наглядности) определимся с накопителями(/dev/vda это исходный по точкам монтирования уже понятно что загрузились с него. На /dev/vdb будем переносить систему, для наглядности /dev/vdb отличается размером от /dev/vda) lsblk Если накопитель /dev/vdb не пуст, то следует его очистить wipefs --all --force /dev/vdb далее подготавливаем /dev/vdb к дальнейшему пер

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция (в основном для собственного пользования) по переносу Arch Linux на другой накопитель, но справедливо и для других дистрибутивов.

Условия таковы, Arch Linux установлен с использованием UEFI и на файловую систему BTRFS на чистый накопитель, перенос на другой накопитель. Действия будут происходить на KVM/QEMU для наглядности с пояснениями и все возможными мыслями.

План действий таков:

  1. Подготовим новый накопитель для переноса Linux. Для этого очистим его, если он использовался после создадим необходимую структуру разделов и отформатируем их. В данном случае Boot-раздел это EFI в fat32, Root-раздел(корень системы) в btrfs, а так же Swap-раздел(раздел подкачки).
  2. Смонтируем Boot-раздел и Swap-раздел, воспользовавшись функциями btrfs создадим подразделы(subvolume) и смонтируем их(то бишь @ и @home).
  3. Копируем систему с разделов накопителя /dev/vda на разделы накопителя /dev/vdb
  4. Отмонтируем все ранее смонтированные разделы нового накопителя и перезагружаем систему
  5. Грузимся в лайф-образ используя установочный образ Linux в данном случае Arch Linux
  6. Смонтируем Boot-раздел, Swap-раздел, подразделы (subvolume) @ и @home
  7. Генерируем fstab и переходим в chroot. Генерируем initramfs и устанавливаем на новый накопитель grub, далее обновив его конфигурацию.
  8. Входим из chroot, от монтировав все ранее при монтированые ранее разделы, подразделы и перезагружаемся в свеже перенесенную систему.

И так, приступим...

Подготовка нового накопителя. Все действия будут выполнены из под root. Уже всем известной командой(опять же она для наглядности) определимся с накопителями(/dev/vda это исходный по точкам монтирования уже понятно что загрузились с него. На /dev/vdb будем переносить систему, для наглядности /dev/vdb отличается размером от /dev/vda)

lsblk

Если накопитель /dev/vdb не пуст, то следует его очистить

wipefs --all --force /dev/vdb

далее подготавливаем /dev/vdb к дальнейшему переносу системы создав на нем структуру разделов

cfdisk /dev/vdb

как видим разметка следующая(аналогична /dev/vdа) разделы создаются в GPT

  • /dev/vdb1 - efi раздел
  • /dev/vdb2 - раздел под систему
  • /dev/vdb3 - раздел swap
-2

Форматирование разделов на новом накопителе. И так переходим к форматированию разделов: efi в fat32, корневой в btrfs, ну и конечно же раздел swap

lsblk
mkfs.vfat -F32 /dev/vdb1
mkfs.btrfs -f /dev/vdb2
mkswap /dev/vdb3

-3

Монтирование разделов нового накопителя. Так как используется файловая система btrfs то воспользуемся подразделами(subvolume) приступим

lsblk

монтируем раздел btrfs в /mnt

mount /dev/vdb2 /mnt

создадим subvolume для корня и home

btrfs su cr /mnt/@
btrfs su cr /mnt/@home

отмонтируем /mnt

umount /mnt

смонтируем корневой subvolume

mount -o noatime,compress=zstd:2,space_cache=v2,discard=async,subvol=@ /dev/vdb2 /mnt

создадим директорию /mnt/home иначе не получится смонтировать @home

mkdir /mnt/home

смонтируем @home

mount -o noatime,compress=zstd:2,space_cache=v2,discard=async,subvol=@home /dev/vdb2 /mnt/home

создадим директорию /mnt/boot/efi

mkdir /mnt/boot/efi

смонтируем boot раздел в /mnt/boot/efi

mount /dev/vdb1 /mnt/boot/efi
lsblk

Копирование системы на новый накопитель. Переходим к важному пункту копируем соответствующие директории, обратите внимание "/" обязательно с точкой "."

cp -rxa /. /mnt
cp -rxa /home/. /mnt/home
cp -rxa /boot/. /mnt/boot

Отмонтирование разделов нового накопителя. размонтируем все что смонтировали и перезагружаем систему

umount /mnt/boot/efi
umount /mnt/home
umount /mnt
reboot
-4

Грузимся с лайф-образа и приступаем к настройке только что перенесенной системы

-5

команда для проверки загрузки через UEFI если появились сомнения

ls /sys/firmware/efi/efivars

должно быть как на скриншоте

-6

Монтируем разделы: коревой subvolume @, @home, boot раздел и swap раздел

lsblk
mount -o noatime,compress=zstd:2,space_cache=v2,discard=async,subvol=@ /dev/vdb2 /mnt
mount -o noatime,compress=zstd:2,space_cache=v2,discard=async,subvol=@home /dev/vdb2 /mnt/home
mount /dev/vdb1 /mnt/boot/efi
swapon /dev/vdb3
lsblk

Генерация fstab. Обновим в fstab все точки монтирования

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

chroot. Переходим в chroot для обновления initramfs и grub

arch-chroot /mnt
-7

обновляем initramfs, я использую ядро linux-zen, если у вас другое соответственно используете свое

mkinitcpio -p linux-zen
-8

Устанавливаем grub на новый накопитель и обновляем конфигурацию. помните grub устанавливаем на устройство а не на раздел!!!

lsblk
grub-install /dev/vdb
grub-mkconfig -o /boot/grub/grub.cfg

Выходим из chroot, отмонтируем разделы и перезапускаемся в перенесенную систему

exit
umount -R /mnt
reboot
-9

В новой системе мы видим запустив следующую всем до боли известную команду

lsblk

из скрина видно, что система запустилась с /dev/vdb судя по смонтированым разделам

-10

-11

За основу взято ArchWiki, так же несколько инструкций от других пользователей и переписаны под себя

За сим откланиваюсь...