Помните бросок идеальной миграции системного диска Ubuntu

задняя часть Linux

Скучным днем ​​я писал код, и вдруг система выскочила: "/Места в каталоге недостаточно!!!", небольшая "проверка", оказалось, что это жалкие 20G места, выделенные, когда я впервые изучал Linux, но теперь я больше не хочу открывать винду Теперь, я вздохнул, что пришло время дать линуксу его статус, поэтому я купил 250 ГБ nvme SSD, но я не хотел переустанавливать систему, я хотел мигрировать систему диска без потери ни одного байта, поэтому я начал мучительное путешествие по миграции. ~~~

Описание окружающей среды

Моя экологическая информация выглядит следующим образом:

  • Оригинальный твердотельный накопитель nvme емкостью 250 ГБ устанавливается с двумя системами: 200 ГБ для win10, 20 ГБ для Ubuntu20.
  • 8Gx2 = 16G памяти
  • Ситуация с разделом Ubuntu
    • /: основной раздел корневого каталога 17G
    • /boot: загрузочный раздел 1G логический раздел
    • swap: раздел подкачки логический раздел 2G
    • /home: Хранится на механическом жестком диске, разделенном отдельно: 100G

Заключение перед подробностями

После всей поездки я наступил на много ям, и, наконец, выровнял процесс и идеи!За это время я проверил много знаний Linux, которые раньше не понимал, и это был хороший урожай~在这里插入图片描述

бросить запись

купить SSD, установить SSD

Знания здесь:

  1. Твердотельный накопитель ssd sata лучше или m.2 лучше?
  2. Статья объясняет, что такое NVMe

В настоящее время цена SSD не очень высока.Карта Western Digital nvme на 250 ГБ стоит 308+, чтобы купить ее в определенной компании.Я должен сказать, что сегодняшнее оборудование очень деликатное.Твердотельный накопитель с интерфейсом m.2 маленький и изысканный, подключаемый и играйте.. Конечно, нужен специальный винт, чтобы закрепить его на материнской плате (винт не входит в комплект карты!) Как правило, материнская плата поддерживает несколько слотов m.2 и будет оснащена несколькими, у меня 2 слота .

在这里插入图片描述

Установка завершена в ближайшее время, закройте стекло корпуса, ммм, есть такое удовлетворение от усиления +1, хахаха.

Сделайте загрузочный U-диск Ubuntu, войдите в живую среду

Причина создания загрузочного диска заключается в том, что нам нужна среда песочницы, которая может управлять жестким диском.По сравнению с чистой средой командной строки, такой как grub secure, живая среда Ubuntu по-прежнему очень удобна для тех, кто не настолько опытен.

Я использовал UltraISO для записи загруженного файла образа ubuntu20 на диск U в среде Windows. Здесь давайте посмотрим непосредственно на существующие руководства:Подробное руководство по установке Ubuntu 20.04 LTS Desktop Edition

Отформатируйте разделы нового жесткого диска

Здесь есть много вариантов:

  • fdisk
  • parted
  • Инструмент для работы с дисками, который поставляется с системой Ubuntu.

Я никогда не разбивал жесткий диск на разделы под Linux, поэтому давайте узнаем о fdisk и parted, обе они являются командами управления дисками в Linux, fdisk может работать только с разделами размером менее 2 ТБ, parted — это более новый и мощный инструмент для создания разделов, который поддерживает формат разделов GPT.

Вот предупреждение для того, чтобы наступить на яму!!Если вы хотите перенести системный диск идеально, какой тип раздела, в соответствии с каким типом. Как я былmsdosРаздел, первые последователиgptРаздел, ошибка при восстановлении загрузки grub. . .

Второй подвох в том, что при ручной установке раздела будет выдаваться предупреждение о выравнивании 4к (Zhihu: выравнивание 4K, пусть ваш SSD летит в небо!), кажется, что хранилище на жестком диске не начинается с позиции 0, как мы предполагали - .-

Ну больше ставить не буду, старая утилита идет с разделом инструментов Диски.

在这里插入图片描述

Справочная статья по схеме разбиенияУстановка операционной системы Ubuntu20.04 и главный приоритет: системный раздел Взаимосвязь и различие между основным разделом Linux, дополнительным разделом и логическим разделом Каков рекомендуемый размер раздела Linux /boot?

Подумав, вся карта на 250гб отдана под убунту, у меня схема разделов такая:

在这里插入图片描述

Полная копия данных корневого каталога жесткого диска

Справочная статья:Перенос системы Linux на новый жесткий диск

Первое, что нужно знать: Linux — это все файлы, поэтому копирование системы — это фактически копирование файлов!

тогда используйте здесьddКоманда для выполнения миграции на уровне байтов Раздел, в котором находится мой корневой каталог, — /dev/nvme0n1p5, а новый жесткий диск разделен на /dev/nvme1n1p2.

dd if=/dev/nvme0n1p5 of=/dev/nvme1n1p2

Поскольку команда dd не показывает промежуточный процесс, используйте другую команду, чтобы вывести промежуточный процесс:

watch -n 5 killall -USR1 dd

17G данных могут быть переданы между nvme ssd без какого-либо давления, и они будут переданы быстро

在这里插入图片描述

Здесь следует отметить, что команда dd также скопирует uuid в прошлом, что означает, что uuid нового раздела и старого раздела одинаковы. Изменение информации о монтировании будет упомянуто позже.

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

umount /dev/nvme1n1p2
e2fsck -f /dev/nvme1n1p2
resize2fs /dev/nvme1n1p2

Копия данных загрузочного диска BOOT

такой же/bootЕсли раньше он был разделен отдельно, то теперь его следует скопировать на новый жесткий диск, но здесь есть два способа избежать повторения uuid:

  1. использоватьddСкопируйте, затем измените UUID
  2. После разделения автоматически генерируется новый uuid, используяcpСкопируйте данные загрузочного диска другими способами копирования файлов

Здесь я выбираю последнее. Конечно, в живом окружении приходится учиться пользоваться самомуmountКоманда для монтирования буквы диска для работы.

Обновите новый UUID раздела корневого пути

Справочная статья:Linux изменить UUID раздела

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

Это на самом деле очень просто, просто используйте собственныйuuidgenКоманда генерирует идентификатор, затем обновляет новый раздел в качестве параметра, а затем записывает его в новый корневой путь./etc/fstabдокумент

uuidgen | xargs tune2fs /dev/nvme1n1p2 -U

Выполните команду, чтобы просмотреть uuid последней буквы диска

sudo blkid

在这里插入图片描述Скопируйте uuid последнего корневого каталога и запишите его в новый корневой каталог./etc/fstab, здесь нам все еще нужно сначала смонтировать букву диска.在这里插入图片描述На этом репликация данных завершена.

Изменить загрузку Grub

Напрямую рекомендую к использованиюboot-repairинструменты, установленные следующим образом:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt install -y boot-repair

После установки запуск команды вызовет интерактивный интерфейс

boot-repair

Обратите внимание, что здесь нужно выбрать дополнительные параметры, вручную указать новый загрузочный диск, а затем следовать инструкциям по восстановлению загрузки.

在这里插入图片描述После окончания ремонта перезагружаемся и снова заходим, система ничуть не изменилась, но емкость стала комфортной 184G!在这里插入图片描述

постскриптум

Мне потребовался прекрасный воскресный день, чтобы спуститься в яму, и мне потребовался вечер, чтобы написать статью, но кто назвал нас кодерами, изучил много аппаратного обеспечения, связанного с жесткими дисками, и знания Linux, и, наконец, успешно обновился, просто обожаю бросить ~ ~

Наконец, после того, как оборудование было усилено, вы можете снова радостно писать код, спешить!

在这里插入图片描述