Как клонировать / переместить всю установку Fedora на больший диск с минимальными изменениями в системе?

Вопрос или проблема

Сценарий

В моем компьютере установлен SSD (250GiB), на котором находятся разделы /boot и ///home.

Я хотел бы перенести это на новый диск M.2 NVME, который гораздо больше (1TiB).

Дистрибутив, который я использую – Fedora 37.

Мой /etc/fstab выглядит так:


#
# /etc/fstab
# Создано anaconda во вт Июнь 28 05:26:41 2022
#
# Доступные файловые системы, по ссылке, поддерживаются под '/dev/disk/'.
# Смотрите страницы man fstab(5), findfs(8), mount(8) и/или blkid(8) для получения дополнительной информации.
#
# После редактирования этого файла выполните 'systemctl daemon-reload' для обновления системных 
# единиц, созданных из этого файла.
#
UUID=5ed1bf26-ab2f-4e5a-ab5e-d2d56f5f3803 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=a14f6d42-3a64-4f96-856c-51e0f4344481 /boot                   ext4    defaults        1 2
UUID=5ed1bf26-ab2f-4e5a-ab5e-d2d56f5f3803 /home                   btrfs   subvol=home,compress=zstd:1 0 0

lsblk выглядит так:

NAME   KNAME PATH       TYPE MODEL                     STATE   RO RM HOTPLUG FSTYPE FSVER LABEL                 PTTYPE PARTTYPE PARTTYPENAME PARTLABEL PARTFLAGS   SIZE FSSIZE FSAVAIL
sda    sda   /dev/sda   диск Samsung SSD 850 EVO 250GB работающий  0  0       0                                    dos                                              232.9G        
├─sda1 sda1  /dev/sda1  часть                                   0  0       0 ext4   1.0                         dos    0x83     Linux                  0x80          1G 973.4M  608.1M
└─sda2 sda2  /dev/sda2  часть                                   0  0       0 btrfs        fedora_localhost-live dos    0x83     Linux                            231.9G 231.9G  108.3G
zram0  zram0 /dev/zram0 диск                                   0  0       0                                                                                       7.5G        

Примечание: как /, так и /home/ являются подтомами одного и того же раздела! Они не находятся на отдельных разделах как таковых.

Проблема

Как мне лучше всего это сделать, чтобы минимально прерывать рабочее время? Я думал, что загружу живой дистрибутив с gparted и затем перемещу разделы, но так как UUID раскиданы по всей моей текущей настройке, я думаю, что могу столкнуться с проблемами, также не уверен, что это предпочтительный метод.

В качестве бонуса, мне бы хотелось иметь раздел подкачки на моем жестком диске, который будет больше, чем мой текущий объем оперативной памяти (8GB). В данный момент я использую только ZRAM, но мне хотелось бы иметь раздел подкачки, который будет больше (возможно, в два раза больше) моего текущего объема оперативной памяти, чтобы я мог безопасно перевести компьютер в спящий режим. Кроме того, больше подкачки было бы весьма полезно для моих виртуальных машин, и сейчас мне сложно запускать более двух виртуальных машин.

Вот, как я думаю, что мне следует поступить:

  1. Я думал, что склонирую текущую конфигурацию на мой 1TB диск, однако я не уверен, какой инструмент использовать для этого, оставив большую часть диска незанятой.
  2. Затем я создам раздел подкачки ближе к концу нераспределенного пространства.
  3. И затем увеличу свой раздел /dev/sda2, чтобы я мог использовать весь объем моего диска и т.д.

Пожалуйста, сообщите порядок процедуры (шаг 0 – создать резервную копию, очевидно), а также инструменты, которые я, возможно, должен попробовать и т.д.

Самый простой способ:

  1. Загрузиться с живого ISO, например, gparted
  2. Сделать полную копию 250G SATA SSD на NVMe SSD
  3. Отключить SATA SSD
  4. Загрузиться с NVMe
  5. Проверить, что все работает
  6. Изменить размер раздела на максимум
  7. btrfs filesystem resize max /

Дополнительные, но рекомендуемые шаги:

  1. Перезагрузиться снова с живого ISO
  2. Подключить SSD снова
  3. blkdiscard SATA SSD
  4. Отформатировать SATA SSD чем-то новым

Важные нюансы:

  1. После клонирования не монтируйте файловую систему, пока оба диска подключены. (Загрузка смонтирует файловую систему!)
  2. Не имеет значения, как вы клонируете диск. Вы можете даже использовать cp. Главное, чтобы это была 1:1 копия.
  3. Используйте /dev/disk/by-id/ узлы всякий раз, когда вам нужно ввести диск в CLI. Это делает процесс менее подверженным ошибкам.

или

  1. Добавьте еще один целевой диск, если у вас недостаточно локального пространства для файла клонирования:
sudo mkdir /media/disk
sudo mount /dev/sdb1 /media/disk
sudo chmod ugo+wx /media/disk
  1. Обнулите свободное пространство https://unix.stackexchange.com/a/506097/518235

    затем клонируйте только используемое пространство

 sudo dd if=/dev/xvda bs=16M conv=sparse,noerror | pv | sudo pigz -c > /media/disk/TargetImg.dd.gz

Альтернативный вариант dd, если нет pv: status=progress

  1. Перенесите локально, используя cp / rsync, см. 8) или удаленный Target:
 sshpass -p "xxxxxxxxx" scp TargetImg.dd.gz [email protected]:/home/fedora | pv -lep -s 42
  1. Восстановите (локально или удаленно):
 sudo pigz -cdk TargetImg.dd.gz | pv | sudo dd of=/dev/sdb bs=16M
  1. или, по желанию, преобразуйте формат диска, например, в виртуальную машину на выбор:
 sudo dnf install qemu 
 sudo qemu-img convert -O vmdk TargetImg.dd TargetImg.vmdk -p
  1. Дополнительно измените размер HD, например, на хосте ESXi:
 vmkfstools -X 100G "TargetImg.vmdk"
  1. Локальная синхронизация между 1-м и 2-м или старыми и новыми дисками также возможна:
sudo rsync -aHAXS \
--filter="-x security.selinux" \
--no-compress \
--no-inc-recursive \
--stats \
--numeric-ids \
--info=progress2 \
/media/disk/ \
/

источник: stackoverflow и др

Ответ или решение

Как клонировать и переместить полную установку Fedora на больший диск

Введение

Клонирование и перемещение операционной системы может показаться сложной задачей, особенно когда вас беспокоят вопросы, связанные с идентификаторами файловых систем и настройками загрузки. В этом руководстве мы рассмотрим, как безопасно и эффективно выполнить процедуру перемещения вашей установки Fedora 37 с SSD на новый NVMe-диск объемом 1 ТиБ, с минимальными изменениями в системе.

Предварительная подготовка

Перед тем как начать процесс, рекомендуется создать резервную копию всех важных данных на ваших дисках. Хотя процедуры клонирования, которые мы будем применять, являются надежными, всегда существует вероятность непредвиденных обстоятельств.

Шаги по клонированию

1. Загрузка с Live CD

Скачайте и запишите на флешку любой Live CD с поддержкой gparted, например, GParted Live или другой дистрибутив Linux. Загрузитесь с этого носителя, чтобы осуществить клонирование.

2. Клонирование диска

Используйте команду dd для клонирования содержимого на новый NVMe-диск. Эта команда создаст точную копию вашего диска, включая все UUID.

sudo dd if=/dev/sda of=/dev/nvme0n1 bs=64K conv=noerror,sync
  • if — исходный диск (SSD).
  • of — целевой диск (NVMe).
  • Обратите внимание: используйте команду lsblk, чтобы точно определить файлы устройств, чтобы не перепутать их.

3. Отключение старого диска

После успешного клонирования физически отключите старый диск (SATA SSD), чтобы избежать возможных конфликтов при загрузке.

4. Загрузка с нового диска

Перезагрузите систему и убедитесь, что ваш компьютер загружается с нового NVMe-диска. Проверяйте, что все работает как ожидалось.

5. Изменение размеров файловых систем

После успешной загрузки вы можете расширить файловые системы, чтобы использовать доступное пространство на новом диске. Для этого выполните следующие команды:

sudo btrfs filesystem resize max /
sudo btrfs filesystem resize max /home

Эти команды позволят вашему Btrfs автоматически использовать весь доступный размер.

Дополнительные действия по созданию swap-раздела

Теперь, когда ваша система успешно работает на новом диске, рассмотрим создание swap-раздела для улучшения производительности и обеспечения возможности гибернации:

1. Создание swap-раздела

Используйте gparted или команду fdisk/parted, чтобы создать новый swap-раздел в нераспределённой области на вашем NVMe-диске. Рекомендуется делать его размером не менее 16 ГБ (двукратный объем вашей оперативной памяти в 8 ГБ).

2. Форматирование и активация swap

После создания раздела, отформатируйте его под swap:

sudo mkswap /dev/nvme0n1p2

И активируйте его:

sudo swapon /dev/nvme0n1p2

3. Добавление swap в fstab

Чтобы активировать swap при загрузке, откройте /etc/fstab и добавьте следующую строку:

/dev/nvme0n1p2  none  swap  sw  0  0

Заключение

Следуя этим шагам, вы сможете успешно клонировать и переместить вашу установку Fedora 37 на новый NVMe-диск с минимальными изменениями в системе. Не забудьте проверить, все ли работает правильно, перед тем как уничтожать старый диск. Это не только улучшит производительность вашего компьютера, но и обеспечит более стабильную работу в будущем.

Рекомендации

  • Перед каждым крупным изменением системы всегда сохраняйте резервные копии важных данных.
  • Регулярно проверяйте работоспособность и размеры файловых систем (используйте df -h).
  • Обновляйте вашу систему и инструменты в соответствии с последними версиями Fedora для повышения безопасности и функциональности.
Оцените материал
Добавить комментарий

Капча загружается...