LINUX.ORG.RU

Перенос Ubuntu на SSD

 , ,


0

2

как легко перенести систему с жёсткого диска на твердотельник В интернете что-то страшное предлагают с монтированием и т.д. Я могу с помощью загрузочной флешки сделать новую чистую установку именно на ссд(если могу, то как) и восстановить резервную копию(это я умею)? у меня осталась загрузочная флешка Пожалуйста опишите по шагам

Ответ на: комментарий от tz4678_2

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

koshsky
() автор топика

Я могу с помощью загрузочной флешки сделать новую чистую установку именно на ссд(если могу, то как)

Так же, как на ЖД. Чистая установка мало чем отличается в зависимости от типа носителей.

восстановить резервную копию(это я умею)?

А вот тут проблема. Возможно, ты это не знаешь, но на Linux существует очень большое число вариантов снятия резервной копии. Как готовых, так и в ручном режиме. Так что опиши, что именно за инструмент ты используешь.

что-то страшное предлагают с монтированием и т.д.

Для меня, как и для любого опытного это «страшное» — дом родной. Мне как раз непривычно через готовые GUI решения это делать, я это не понимаю!

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от tz4678_2

А если у него BIOS? Или гораздо проще, SSD меньше HDD по размеру? А если на диске есть хотя бы 1 бед-блок?

dd далеко не всегда работает.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Я сделал резервную копию с помощью предустановленной утилиты (убнту 20.04) с иконкой сейфа. с помощью этой же утилиты планирую восстановить все из копии. копия на гугл диске

koshsky
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

А еще «Так же, как на ЖД. Чистая установка мало чем отличается в зависимости от типа носителей.» не совсем понятно для меня. у меня до этого был один диск и я легко установил систему. а если два диска будет, как понять куда установиться система? меня спросят или нет? по русски или по сис-админски?

koshsky
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

то есть такой порядок:

  1. я убираю HDD диск, вставляю только SSD\n
  2. устанавливаю систему с флешки\n
  3. вставляю второй диск\n
  4. в биос ставлю приоритет у SSD выше чем у HDD(верно?)\n
  5. зайдя в систему, я форматирую диск HDD\n
  6. восстанавливаю все из резервной копии\n
koshsky
() автор топика
Ответ на: комментарий от koshsky

Я не знаю. Я же говорю, не работал с GUI инструментами снятия резервной копии. Вот как через chroot и прочее страшное расскажу.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от koshsky

Короче, давай посмотрим, что у тебя за ОС сейчас, мне нужны выводы:

cat /etc/fstab
lsblk
df -hT
sudo fdisk -l
sudo blkid -c /dev/null
sudo efibootmgr -v

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

Команды диагностические, ничего в ОС не меняют, просто показывают как она устроена. Мне такое привычнее читать.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

На данный момент подключен только один жесткий диск Ссд придет через пару дней)

cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=e70dde58-cca2-4b34-8240-69cdb8d79c71 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=2B6B-BE34  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0

lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  55,5M  1 loop /snap/core18/2409
loop2    7:2    0     9M  1 loop /snap/canonical-livepatch/146
loop3    7:3    0  61,9M  1 loop /snap/core20/1328
loop4    7:4    0 113,9M  1 loop /snap/core/13308
loop5    7:5    0  61,9M  1 loop /snap/core20/1518
loop6    7:6    0 254,1M  1 loop /snap/gnome-3-38-2004/106
loop7    7:7    0 248,8M  1 loop /snap/gnome-3-38-2004/99
loop8    7:8    0  65,2M  1 loop /snap/gtk-common-themes/1519
loop9    7:9    0  93,5M  1 loop /snap/mysql-shell/29
loop10   7:10   0  81,3M  1 loop /snap/gtk-common-themes/1534
loop11   7:11   0 565,8M  1 loop /snap/pycharm-community/281
loop12   7:12   0 565,5M  1 loop /snap/pycharm-community/286
loop13   7:13   0  54,2M  1 loop /snap/snap-store/558
loop14   7:14   0  43,6M  1 loop /snap/snapd/14978
loop15   7:15   0    47M  1 loop /snap/snapd/16010
loop16   7:16   0 295,7M  1 loop /snap/vlc/2344
loop17   7:17   0   4,5M  1 loop /snap/winrar/3
sda      8:0    0 298,1G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 297,6G  0 part /
sdb      8:16   1   3,6G  0 disk 
├─sdb1   8:17   1   2,1G  0 part /media/user/Linux Mint 20.3 Cinnamon 64-bit
└─sdb2   8:18   1   3,9M  0 part 
sr0     11:0    1  1024M  0 rom  

df -hT

Файл.система   Тип      Размер Использовано  Дост Использовано% Cмонтировано в
udev           devtmpfs   1,9G            0  1,9G            0% /dev
tmpfs          tmpfs      384M         1,9M  383M            1% /run
/dev/sda5      ext4       292G          46G  232G           17% /
tmpfs          tmpfs      1,9G            0  1,9G            0% /dev/shm
tmpfs          tmpfs      5,0M         4,0K  5,0M            1% /run/lock
tmpfs          tmpfs      1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/loop0     squashfs   128K         128K     0          100% /snap/bare/5
/dev/loop2     squashfs   9,0M         9,0M     0          100% /snap/canonical-livepatch/146
/dev/loop5     squashfs    62M          62M     0          100% /snap/core20/1518
/dev/loop1     squashfs    56M          56M     0          100% /snap/core18/2409
/dev/loop3     squashfs    62M          62M     0          100% /snap/core20/1328
/dev/loop9     squashfs    94M          94M     0          100% /snap/mysql-shell/29
/dev/loop7     squashfs   249M         249M     0          100% /snap/gnome-3-38-2004/99
/dev/loop4     squashfs   114M         114M     0          100% /snap/core/13308
/dev/loop6     squashfs   255M         255M     0          100% /snap/gnome-3-38-2004/106
/dev/loop8     squashfs    66M          66M     0          100% /snap/gtk-common-themes/1519
/dev/loop10    squashfs    82M          82M     0          100% /snap/gtk-common-themes/1534
/dev/loop11    squashfs   566M         566M     0          100% /snap/pycharm-community/281
/dev/loop14    squashfs    44M          44M     0          100% /snap/snapd/14978
/dev/loop13    squashfs    55M          55M     0          100% /snap/snap-store/558
/dev/loop15    squashfs    47M          47M     0          100% /snap/snapd/16010
/dev/loop12    squashfs   566M         566M     0          100% /snap/pycharm-community/286
/dev/loop17    squashfs   4,7M         4,7M     0          100% /snap/winrar/3
/dev/loop16    squashfs   296M         296M     0          100% /snap/vlc/2344
/dev/sda1      vfat       511M         4,0K  511M            1% /boot/efi
tmpfs          tmpfs      384M         108K  384M            1% /run/user/1000
/dev/sdb1      iso9660    2,1G         2,1G     0          100% /media/user/Linux Mint 20.3 Cinnamon 64-bit
koshsky
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Вторая пачка команд (сообщение оказалось слишком большим):

sudo fdisk -l

Диск /dev/loop0: 4 KiB, 4096 байт, 8 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop1: 55,55 MiB, 58232832 байт, 113736 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop2: 8,98 MiB, 9396224 байт, 18352 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop3: 61,93 MiB, 64917504 байт, 126792 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop4: 113,91 MiB, 119418880 байт, 233240 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop5: 61,95 MiB, 64933888 байт, 126824 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop6: 254,1 MiB, 266436608 байт, 520384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop7: 248,78 MiB, 260841472 байт, 509456 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/sda: 298,9 GiB, 320072933376 байт, 625142448 секторов
Disk model: SAMSUNG HM321HI 
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x6d9ec742

Устр-во    Загрузочный  начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *              2048   1050623   1048576   512M             b W95 FAT32
/dev/sda2              1052670 625141759 624089090 297,6G             5 Расширенный
/dev/sda5              1052672 625141759 624089088 297,6G            83 Linux




Диск /dev/loop8: 65,22 MiB, 68378624 байт, 133552 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop9: 93,53 MiB, 98062336 байт, 191528 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop10: 81,27 MiB, 85209088 байт, 166424 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop11: 565,76 MiB, 593219584 байт, 1158632 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop12: 565,49 MiB, 592949248 байт, 1158104 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop13: 54,24 MiB, 56872960 байт, 111080 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop14: 43,6 MiB, 45703168 байт, 89264 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop15: 46,98 MiB, 49233920 байт, 96160 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop16: 295,73 MiB, 310079488 байт, 605624 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop17: 4,54 MiB, 4743168 байт, 9264 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/sdb: 3,64 GiB, 3892314112 байт, 7602176 секторов
Disk model: USB DISK 2.0    
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x2d7faf9b

Устр-во    Загрузочный начало   Конец Секторы Размер Идентификатор Тип
/dev/sdb1  *                0 4397759 4397760   2,1G             0 Пустой
/dev/sdb2                 640    8639    8000   3,9M            ef EFI (FAT-12/16/32)

sudo blkid -c /dev/null

/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/sda1: UUID="2B6B-BE34" TYPE="vfat" PARTUUID="6d9ec742-01"
/dev/sda5: UUID="e70dde58-cca2-4b34-8240-69cdb8d79c71" TYPE="ext4" PARTUUID="6d9ec742-05"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/loop11: TYPE="squashfs"
/dev/loop12: TYPE="squashfs"
/dev/loop13: TYPE="squashfs"
/dev/loop14: TYPE="squashfs"
/dev/loop15: TYPE="squashfs"
/dev/loop16: TYPE="squashfs"
/dev/loop17: TYPE="squashfs"
/dev/sdb1: UUID="2022-01-04-15-01-47-00" LABEL="Linux Mint 20.3 Cinnamon 64-bit" TYPE="iso9660" PTUUID="2d7faf9b" PTTYPE="dos" PARTUUID="2d7faf9b-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="54C5-9C6C" TYPE="vfat" PARTUUID="2d7faf9b-02"

sudo efibootmgr -v (я выполнил установку efibootmgr)

EFI variables are not supported on this system.
koshsky
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

с БД работаю и на Pyhton программирую, но не шиша не понимаю в железе и и как что куда делать, чтобы систему перенести с одного диска на другой и ничего случайно не сломать

koshsky
() автор топика
Ответ на: комментарий от koshsky

Ладно, короче сейчас скачаю я образ Ubuntu 20.04 и посмотрю, что и как сохраняет утилита для бекапа. Может с её помощью и можно перенести ОС, но я так никогда не делал.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от koshsky

По умолчанию эта утилита делает бекап только домашней директории без корзины и Загрузок, так что если ты не менял это, то ОС так точно не перенести.

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

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)

Часть 1

Пример переноса Ubuntu 20.04.4 с диска на диск.

В данном случае начальный расклад такой: мы загружены с .iso Ubuntu 20.04.4, установленная ОС в BIOS режиме на /dev/sda, перенос будет на /dev/sdb, что меньше по объему:

ubuntu@ubuntu:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   2.1G  1 loop /rofs
loop1    7:1    0     4K  1 loop /snap/bare/5
loop2    7:2    0 248.8M  1 loop /snap/gnome-3-38-2004/99
loop3    7:3    0  65.2M  1 loop /snap/gtk-common-themes/1519
loop4    7:4    0  54.2M  1 loop /snap/snap-store/558
loop5    7:5    0  61.9M  1 loop /snap/core20/1328
loop6    7:6    0  43.6M  1 loop /snap/snapd/14978
sda      8:0    0   128G  0 disk 
├─sda1   8:1    0   512M  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 127.5G  0 part 
sdb      8:16   0    64G  0 disk 
sr0     11:0    1   3.2G  0 rom  /cdrom
ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda /dev/sdb
Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6035deab

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048   1050623   1048576   512M  b W95 FAT32
/dev/sda2       1052670 268433407 267380738 127.5G  5 Extended
/dev/sda5       1052672 268433407 267380736 127.5G 83 Linux


Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
ubuntu@ubuntu:~$ 
Vsevolod-linuxoid ★★★★★
()

Часть 2

Для начала, посмотрим, что за ФС и какие у них UUID у нас сейчас:

/dev/sda1: UUID="4CE1-DD12" TYPE="vfat" PARTUUID="6035deab-01"
/dev/sda5: UUID="0d78b849-a05a-4c0a-a8c9-64d071ff3aba" TYPE="ext4" PARTUUID="6035deab-05"
ubuntu@ubuntu:~$ 

Как видим, у нас один раздел с FAT (EFI раздел), и второй с ext4 (/ нашей ОС).

Создадим подобную разметку на /dev/sdb:

ubuntu@ubuntu:~$ sudo parted /dev/sdb
GNU Parted 3.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos                                                    
(parted) mkpart primary fat32 1MiB 512MiB
(parted) mkpart primary ext4 512MiB 100%                       
(parted) set 1 boot on                                                    
(parted) quit                                                             
Information: You may need to update /etc/fstab.

ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda /dev/sdb                         
Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6035deab

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048   1050623   1048576   512M  b W95 FAT32
/dev/sda2       1052670 268433407 267380738 127.5G  5 Extended
/dev/sda5       1052672 268433407 267380736 127.5G 83 Linux


Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe19cf1df

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sdb1  *       2048   1048575   1046528  511M  c W95 FAT32 (LBA)
/dev/sdb2       1048576 134217727 133169152 63.5G 83 Linux
ubuntu@ubuntu:~$ 

В данном случае у нас чуть-чуть отличается размер EFI раздела и / переехал с расширенного раздела на основной, но на работоспособность это никак не повлияет.

Vsevolod-linuxoid ★★★★★
()

Часть 3

Теперь отформатируем оба раздела в нужные нам ФС:

ubuntu@ubuntu:~$ sudo mkfs.vfat -F32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
ubuntu@ubuntu:~$ sudo mkfs.ext4 /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 16646144 4k blocks and 4161536 inodes
Filesystem UUID: 3ab9125d-2733-4f64-88c6-b67d8a2b9f19
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done   

ubuntu@ubuntu:~$ 

Теперь можно приступать к переносу ОС с /dev/sda на /dev/sdb, для начала создадим точки монтирования для раздлов старой и новой ОС в /mnt, что будем клонировать примонтируем в RO, чтобы не повредить ненароком:

ubuntu@ubuntu:~$ cd /mnt
ubuntu@ubuntu:/mnt$ sudo mkdir old old-efi new new-efi
ubuntu@ubuntu:/mnt$ sudo mount -o ro /dev/sda5 old
ubuntu@ubuntu:/mnt$ sudo mount -o ro /dev/sda1 old-efi
ubuntu@ubuntu:/mnt$ sudo mount /dev/sdb2 new
ubuntu@ubuntu:/mnt$ sudo mount /dev/sdb1 new-efi
ubuntu@ubuntu:/mnt$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   2.1G  1 loop /rofs
loop1    7:1    0     4K  1 loop /snap/bare/5
loop2    7:2    0 248.8M  1 loop /snap/gnome-3-38-2004/99
loop3    7:3    0  65.2M  1 loop /snap/gtk-common-themes/1519
loop4    7:4    0  54.2M  1 loop /snap/snap-store/558
loop5    7:5    0  61.9M  1 loop /snap/core20/1328
loop6    7:6    0  43.6M  1 loop /snap/snapd/14978
sda      8:0    0   128G  0 disk 
├─sda1   8:1    0   512M  0 part /mnt/old-efi
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 127.5G  0 part /mnt/old
sdb      8:16   0    64G  0 disk 
├─sdb1   8:17   0   511M  0 part /mnt/new-efi
└─sdb2   8:18   0  63.5G  0 part /mnt/new
sr0     11:0    1   3.2G  0 rom  /cdrom
ubuntu@ubuntu:/mnt$ 

Теперь можно собственно банально скопировать файлы (в моем случае EFI раздел был пустым, так команда верная):

ubuntu@ubuntu:/mnt$ sudo cp -a old-efi/* new-efi/
cp: cannot stat 'old-efi/*': No such file or directory
ubuntu@ubuntu:/mnt$ sudo cp -a old/* new/
ubuntu@ubuntu:/mnt$ 
Vsevolod-linuxoid ★★★★★
()

Часть 4

Теперь нужно поправить fstab на перенесенной ОС, так как он всё ещё содержит старые UUID:

ubuntu@ubuntu:/mnt$ cat new/etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=0d78b849-a05a-4c0a-a8c9-64d071ff3aba /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=4CE1-DD12  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
ubuntu@ubuntu:/mnt$ sudo blkid -c /dev/null | grep sd
/dev/sda1: UUID="4CE1-DD12" TYPE="vfat" PARTUUID="6035deab-01"
/dev/sda5: UUID="0d78b849-a05a-4c0a-a8c9-64d071ff3aba" TYPE="ext4" PARTUUID="6035deab-05"
/dev/sdb1: UUID="355D-2090" TYPE="vfat" PARTUUID="e19cf1df-01"
/dev/sdb2: UUID="3ab9125d-2733-4f64-88c6-b67d8a2b9f19" TYPE="ext4" PARTUUID="e19cf1df-02"
ubuntu@ubuntu:/mnt$ 

Соответсвенно, нас нужно сменить UUID=4CE1-DD12 на UUID=355D-2090, а UUID=0d78b849-a05a-4c0a-a8c9-64d071ff3aba на UUID=3ab9125d-2733-4f64-88c6-b67d8a2b9f19, проще всего это через sed сделать:

ubuntu@ubuntu:/mnt$ sudo sed -i 's/UUID=4CE1-DD12/UUID=355D-2090/' new/etc/fstabubuntu@ubuntu:/mnt$ sudo sed -i 's/UUID=0d78b849-a05a-4c0a-a8c9-64d071ff3aba/UUID=3ab9125d-2733-4f64-88c6-b67d8a2b9f19/' new/etc/fstab
ubuntu@ubuntu:/mnt$ cat new/etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=3ab9125d-2733-4f64-88c6-b67d8a2b9f19 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=355D-2090  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
ubuntu@ubuntu:/mnt$ 
Vsevolod-linuxoid ★★★★★
()

Часть 5

Теперь нужно перемонтировать новый раздел EFI в /mnt/new/boot/efi, и можно уже отмонтировать старую ОС:

ubuntu@ubuntu:/mnt$ sudo umount old*
ubuntu@ubuntu:/mnt$ sudo umount new-efi 
ubuntu@ubuntu:/mnt$ sudo mount /dev/sdb1 new/boot/efi/
ubuntu@ubuntu:/mnt$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   2.1G  1 loop /rofs
loop1    7:1    0     4K  1 loop /snap/bare/5
loop2    7:2    0 248.8M  1 loop /snap/gnome-3-38-2004/99
loop3    7:3    0  65.2M  1 loop /snap/gtk-common-themes/1519
loop4    7:4    0  54.2M  1 loop /snap/snap-store/558
loop5    7:5    0  61.9M  1 loop /snap/core20/1328
loop6    7:6    0  43.6M  1 loop /snap/snapd/14978
sda      8:0    0   128G  0 disk 
├─sda1   8:1    0   512M  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 127.5G  0 part 
sdb      8:16   0    64G  0 disk 
├─sdb1   8:17   0   511M  0 part /mnt/new/boot/efi
└─sdb2   8:18   0  63.5G  0 part /mnt/new
sr0     11:0    1   3.2G  0 rom  /cdrom
ubuntu@ubuntu:/mnt$ 

Теперь нужно собрать chroot для дальнейшей переустановки загрузчика на /dev/sdb:

ubuntu@ubuntu:/mnt$ sudo mount --bind /dev /mnt/new/dev
ubuntu@ubuntu:/mnt$ sudo mount --bind /proc /mnt/new/proc
ubuntu@ubuntu:/mnt$ sudo mount --bind /sys  /mnt/new/sys
ubuntu@ubuntu:/mnt$ mount | grep mnt
nsfs on /run/snapd/ns/snap-store.mnt type nsfs (rw)
/dev/sdb2 on /mnt/new type ext4 (rw,relatime)
/dev/sdb1 on /mnt/new/boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
udev on /mnt/new/dev type devtmpfs (rw,nosuid,noexec,relatime,size=4013460k,nr_inodes=1003365,mode=755,inode64)
proc on /mnt/new/proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /mnt/new/sys type sysfs (rw,nosuid,nodev,noexec,relatime)
ubuntu@ubuntu:/mnt$ 
Vsevolod-linuxoid ★★★★★
()

Часть 6

Теперь входим в chroot и переустанавливаем загрузчик:

ubuntu@ubuntu:~$ sudo chroot /mnt/new
root@ubuntu:/# grub-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@ubuntu:/# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.13.0-51-generic
Found initrd image: /boot/initrd.img-5.13.0-51-generic
Found linux image: /boot/vmlinuz-5.13.0-30-generic
Found initrd image: /boot/initrd.img-5.13.0-30-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Ubuntu 20.04.4 LTS (20.04) on /dev/sda5
done
root@ubuntu:/# 

Строчка Found Ubuntu 20.04.4 LTS (20.04) on /dev/sda5 говорит о том, что os-prober нашел нашу старую ОС и добавил её дополнительным пунктом. Это нестрашно, работе не помешает.

Теперь выходим из chroot, отмонтируем всё, что примонтировали и выключаем ОС:

root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount /mnt/new/dev
ubuntu@ubuntu:~$ sudo umount /mnt/new/proc
ubuntu@ubuntu:~$ sudo umount /mnt/new/sys
ubuntu@ubuntu:~$ sudo umount /dev/sdb1
ubuntu@ubuntu:~$ sudo umount /dev/sdb2
ubuntu@ubuntu:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   2.1G  1 loop /rofs
loop1    7:1    0     4K  1 loop /snap/bare/5
loop2    7:2    0 248.8M  1 loop /snap/gnome-3-38-2004/99
loop3    7:3    0  65.2M  1 loop /snap/gtk-common-themes/1519
loop4    7:4    0  54.2M  1 loop /snap/snap-store/558
loop5    7:5    0  61.9M  1 loop /snap/core20/1328
loop6    7:6    0  43.6M  1 loop /snap/snapd/14978
sda      8:0    0   128G  0 disk 
├─sda1   8:1    0   512M  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 127.5G  0 part 
sdb      8:16   0    64G  0 disk 
├─sdb1   8:17   0   511M  0 part 
└─sdb2   8:18   0  63.5G  0 part 
sr0     11:0    1   3.2G  0 rom  /cdrom
ubuntu@ubuntu:~$ sudo poweroff
Vsevolod-linuxoid ★★★★★
()

Часть 7

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

user@ubuntu20:~$ sudo fdisk -l /dev/sda
Диск /dev/sda: 64 GiB, 68719476736 байт, 134217728 секторов
Disk model: VBOX HARDDISK   
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xe19cf1df

Устр-во    Загрузочный  начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *              2048   1048575   1046528   511M             c W95 FAT32 (LBA)
/dev/sda2              1048576 134217727 133169152  63,5G            83 Linux
user@ubuntu20:~$ lsblk | grep -v loop
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    64G  0 disk 
├─sda1   8:1    0   511M  0 part /boot/efi
└─sda2   8:2    0  63,5G  0 part /
sr0     11:0    1  1024M  0 rom  
user@ubuntu20:~$ df -hT | grep sda
/dev/sda2      ext4        63G         9,1G   51G           16% /
/dev/sda1      vfat       510M         4,0K  510M            1% /boot/efi
user@ubuntu20:~$ 

Таким образом, наша ОС переехала на новый диск и загрузилась. Правда, в меню GRUB2 есть пункт со старой ОС, но его легко убрать:

user@ubuntu20:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Генерируется файл настройки grub …
Найден образ linux: /boot/vmlinuz-5.13.0-51-generic
Найден образ initrd: /boot/initrd.img-5.13.0-51-generic
Найден образ linux: /boot/vmlinuz-5.13.0-30-generic
Найден образ initrd: /boot/initrd.img-5.13.0-30-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
завершено
user@ubuntu20:~$ 

И всё!

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от koshsky

В 7 частях тут выложил пример, как я по-настоящему переносил Ubuntu 20.04 с диска на диск в VirtualBox. Разумеется, у тебя может быть иная нумерация дисков и UUID, это лишь пример.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от koshsky

Запускаешь Gparted сжимаешь размер раздела, до размера занимаемого им данных. Через dd копируешь раздел… Либо если он последний то опять же можно все раздела скрипровать с помощью dd, например:

# Копируем 128 гигабайт
dd if=/dev/sdX of=/dev/sdY bs=1M count=128k conv=fdatasync oflag=direct
tz4678_2
()