Перенос Linux с одного диска на другой Debian 10
Для переноса системы с диска на новый диск или ССД диск потребуется сделать несколько шагов.
Разметка диска MBR.
После подключения нового диска к старой системе Linux на примере старенькой Debian 10 требуется:
Каждый делает это как считает нужным. В данном примере простая ОС Debian 10 amd64 с простой файловой системой и без понтофф.
Коротко о старой разметке диска.
sda1 /boot
sda2 /
sda3 SWAP
sda4 /tmp
Почему так разбито было не знаю или не помню.
В теории это неважно, можно было разбить только на два раздела
/ и SWAP, всё будет работать. Это так называемый тип — всё на одном разделе.
Тут я просто повторю разметку не сильно запариваясь по размеру разделов.
В общем SDA это старый диск, SDB новый.
Можно рассчитывать размер мегабайтами, гигабайтами ну или процентами, как удобно.
если у Вас диск был как-то разбит то через print смотрите номера разделов и трёте например d 1…
Форматирование созданных дисков
Так как раздел boot был на отдельном разделе, пусть так и будет.
Если есть ещё такие разделы например отдельно /home ,/boot/efi то можно так-же перетянуть.
Теперь перенос основной системы из корневой системы.
Можно конечно разные службы типа сервера БД или Апач тормознуть на момент переноса, но вроде и так сойдёт.
В некоторых случаях надо монтировать и /mnt/boot/efi, смотрите по своей разметке и тд.
Смотрим UIID дисков которые надо поменять в файле FSTAB.
Выдаёт что-то типа того
Меняем id на наши новые.
в общем тут всё ясно.?!
Если при установке grub-install возникает ошибка.
Выполняется установка для платформы i386-pc.
grub-install: предупреждение: метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно.
grub-install: предупреждение: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использо
вать…
grub-install: ошибка: не будет продолжена с использованием blocklists.
Проблема в том что диск был размечен как GPT а не MBR.
Вобщем чёто можно попробовать сделать но лучше не переносить систему с мбр в ЖПТ
у меня сходу невышло. но подёргался можно
зайти в parted
print
по очереди 1 2 3 4 5… будут разделы. например наш /dev/sdb1 под номером 5
(parted) set 5 boot on
дальше выходим из parted командой q
!
Разметка диска MBR.
После подключения нового диска к старой системе Linux на примере старенькой Debian 10 требуется:
- Разметить и форматировать новый диск.
- Перенести данные вместе с ОС.
- Перейти через chroot в папку c перенесённой ОС.
- Поменять fstab.
- Установить загрузчик Grub.
- готово.
Каждый делает это как считает нужным. В данном примере простая ОС Debian 10 amd64 с простой файловой системой и без понтофф.
Коротко о старой разметке диска.
sda1 /boot
sda2 /
sda3 SWAP
sda4 /tmp
Почему так разбито было не знаю или не помню.
В теории это неважно, можно было разбить только на два раздела
/ и SWAP, всё будет работать. Это так называемый тип — всё на одном разделе.
Тут я просто повторю разметку не сильно запариваясь по размеру разделов.
В общем SDA это старый диск, SDB новый.
Разметить и форматировать новый диск.
Кто-то делает через fdisk, я делаю разметку чистого диска через parted.Можно рассчитывать размер мегабайтами, гигабайтами ну или процентами, как удобно.
parted /dev/sdb
(parted) mkpart primary ext4 1Mib 2GB
(parted) mkpart primary ext4 2GB 90%
(parted) mkpart primary ext4 90% 95%
(parted) mkpart primary ext4 95% 100%
(parted) print
(parted) q
если у Вас диск был как-то разбит то через print смотрите номера разделов и трёте например d 1…
Форматирование созданных дисков
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb4
mkswap /dev/sdb3
Перенос данных вместе с ОС Linux на новый диск.
Так как раздел boot был на отдельном разделе, пусть так и будет.
mount /dev/sdb1 /mnt
rsync -avAXHP --exclude={"/boot/lost+found"} /boot/* /mnt
umount /mnt
Если есть ещё такие разделы например отдельно /home ,/boot/efi то можно так-же перетянуть.
Теперь перенос основной системы из корневой системы.
Можно конечно разные службы типа сервера БД или Апач тормознуть на момент переноса, но вроде и так сойдёт.
root
mount /dev/sdb2 /mnt
rsync -avAXHP --exclude={"/dev/*","/proc/*","/sys/*","/run/*","/media/*","/lost+found","/var/lib/pacman/sync/*","/var/tmp/*","/boot/*","/mnr/*","/mnt1/*","/mnt/*","/tmp/*","/var/cache/*"} /* /mnt
Перейти через chroot в папку c перенесённой ОС.
mount /dev/sdb1 /mnt/boot
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
chroot /mnt
В некоторых случаях надо монтировать и /mnt/boot/efi, смотрите по своей разметке и тд.
Смотрим UIID дисков которые надо поменять в файле FSTAB.
blkid
Выдаёт что-то типа того
/dev/sdb3: UUID=«cb946050-c72e-4d8c-a268-61e2befbc155» TYPE=«swap» PARTUUID=«b34cb34c-03»открываем на редактирование файл /etc/fstab
/dev/sdb4: UUID=«76fd2c9e-7d46-422a-9bb9-3a54d22840a3» TYPE=«ext4» PARTUUID=«b34cb34c-04»
/dev/sdb1: UUID=«cf5cb8b5-4cc7-4574-ac2e-a888bf8e63bf» TYPE=«ext4» PARTUUID=«b34cb34c-01»
/dev/sdb2: UUID=«1d38ed9a-f2f3-45d1-a4ce-09ed8ee501b0» TYPE=«ext4» PARTUUID=«b34cb34c-02»
nano /etc/fstab
Меняем id на наши новые.
в общем тут всё ясно.?!
Установить загрузчик Grub.
grub-install /dev/sdb
update-grub2
exit
umount -a
systemctl poweroff
Готово.
Если при установке grub-install возникает ошибка.
Выполняется установка для платформы i386-pc.
grub-install: предупреждение: метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно.
grub-install: предупреждение: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использо
вать…
grub-install: ошибка: не будет продолжена с использованием blocklists.
Проблема в том что диск был размечен как GPT а не MBR.
Вобщем чёто можно попробовать сделать но лучше не переносить систему с мбр в ЖПТ
у меня сходу невышло. но подёргался можно
umount /dev/sdb1
mkfs.fat -F32 /dev/sdb1
mkdir /boot/efi
mount /dev/sdb1 /boot/efi
зайти в parted
по очереди 1 2 3 4 5… будут разделы. например наш /dev/sdb1 под номером 5
(parted) set 5 boot on
дальше выходим из parted командой q
apt install grub-efi grub-efi-amd64 efibootmgr
update-grub
grub-install /boot/efi
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
modprobe efivarfs
grub-install --boot-directory=/boot --bootloader-id=Debian --target=x86_64-efi --efi-directory=/boot/efi --recheck
!
0 комментариев