перенос Linux между носителями

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

перенос Linux между носителями

Непрочитанное сообщение Olej » 21 фев 2023, 15:36

Такой вопрос задают периодически из года в год (и е один год уже :-D ): как перенести работающую инсталляцию Linux с одного носителя (диска) на другой? (Например, заполнился диск, приближается к переполнению - хотим перенести на новый больший ... или с HDD на SSD.)

Предлагают разные замысловатые способы + разные (часто проприетарные) приложения - для решения такой задачи.
Но самый простой способ это простое побайтное копирование диск в диск.
Например так:

Код: Выделить всё

# dd if=/dev/sda of=/dev/sdb bs=4M conv=fsync status=progress
А то даже и так:

Код: Выделить всё

# cp /dev/sda /dev/sdb
Смысл в том, что в UNIX/Linux любое блочное устройство представляется как сырой поток байт, типа /dev/sdx, а потом над ним делается форматирование в ту или иную фаловую систему командами вида:

Код: Выделить всё

olej@R420:~$ ls /sbin/mk*
/sbin/mkdosfs  /sbin/mkfs.bfs     /sbin/mkfs.exfat  /sbin/mkfs.ext4  /sbin/mkfs.hfsplus  /sbin/mkfs.msdos     /sbin/mkfs.vfat         /sbin/mkinitramfs   /sbin/mkreiserfs
/sbin/mke2fs   /sbin/mkfs.btrfs   /sbin/mkfs.ext2   /sbin/mkfs.fat   /sbin/mkfs.jfs      /sbin/mkfs.ntfs      /sbin/mkfs.xfs          /sbin/mklost+found  /sbin/mkswap
/sbin/mkfs     /sbin/mkfs.cramfs  /sbin/mkfs.ext3   /sbin/mkfs.hfs   /sbin/mkfs.minix    /sbin/mkfs.reiserfs  /sbin/mkhomedir_helper  /sbin/mkntfs
А потом, после создания полной копии диска, новую копию, если диск куда копировали больше оригинала, нужно расширить на всё дисковое пространство - утилитами parted, gparted или подобными.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

перенос Linux между носителями

Непрочитанное сообщение Olej » 21 фев 2023, 15:44

Olej писал(а):
21 фев 2023, 15:36
Смысл в том, что в UNIX/Linux любое блочное устройство представляется как сырой поток байт, типа /dev/sdx, а потом над ним делается форматирование в ту или иную фаловую систему
Я делал это много раз и на самых разных операционных системах - важно чтобы это были UNIX/POSIX системы. То на чём реально это проделывалось: Linux, QNX, Solaris, Minix 3 ...

То как копируются дисковые носители систем, не раз упоминалось в разных темах, типа:
Перенос ОС linux с SD карты на микросхему eMMC

То как увеличивается потом размер под размер нового носителя, тоже много раз упоминалось, например:
Orange Pi

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

перенос Linux между носителями

Непрочитанное сообщение Olej » 21 фев 2023, 15:59

Olej писал(а):
21 фев 2023, 15:36
простое побайтное копирование диск в диск.
При создании дубликата диска очень важно вот что:
Olej писал(а):
05 сен 2019, 12:14
При копировании утилитой dd образа диска разделы копируются со старыми UUID. При этом при одновременном присутствии SD и eMMC при загрузке у вас возникают дубликаты UUID в одной системе, что совершенно недопустимо, система при ссылках на устройства по UUID и по имени (/dev/mmcblk) просто сойдёт с ума!
Т.е. UUID копируемого диска сохранится у дубликата.
В этом есть и положительное и отрицательное обстоятельства...

Положительное: когда вы переставите на компьютер дубликат, то не нарушится его загрузка, потому что UUID разделов прописанные в /etc/fstab сохранятся.

Отрицательное: дубликат нельзя ставить в одну железку с оригиналом - у них одинаковые UUID и система начнёт сходить с ума... Если нужно - меняйте UUID диска. Это делается несложно: Как изменить UUID раздела и его метку.

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя