Последняя часть трилогии о модернизации бекап-сервера. Напомню, в первой части была выполнена замена хардов на харды большего размера с последующим увеличением доступного пространства. Во второй части нужно было сделать так, чтоб ОС «увидела» рейд-контроллер 3ware вместе с дисками (массив raid1). И в последней, заключительной части рассмотрим как выполнить перенос Linux с рабочего системного харда на новый
Подготовка нового диска
Итак, дисковый массив создан заранее средствами raid-контроллера 3ware. Посмотрим на текущий загрузочный диск
parted /dev/sdb print
Model: ATA WDC WD2502ABYS-1 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:Number Start End Size File system Name Flags
1 1049kB 3146kB 2097kB grub bios_grub
2 3146kB 131MB 128MB ext2 boot boot, esp
3 131MB 10.2GB 10.1GB linux-swap(v1) swap
4 10.2GB 250GB 240GB ext4 rootfs
и на новый диск
parted /dev/sda print
Error: /dev/sda: unrecognised disk label
Model: AMCC 9650SE-2LP DISK (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
Ошибка в выхлопе говорит о том, что на sda нет никакой разметки. Скопируем разметку с рабочего диска на новый
sfdisk -d /dev/sdb | sfdisk /dev/sda
Checking that no-one is using this disk right now … OK
Disk /dev/sda: 931.31 GiB, 999989182464 bytes, 1953103872 sectors
Disk model: 9650SE-2LP DISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: F2677118-36FA-49D4-A81B-3CEE6F2DBE6C).
/dev/sda1: Created a new partition 1 of type ‘BIOS boot’ and of size 2 MiB.
/dev/sda2: Created a new partition 2 of type ‘EFI System’ and of size 122 MiB.
/dev/sda3: Created a new partition 3 of type ‘Linux filesystem’ and of size 9.4 GiB.
/dev/sda4: Created a new partition 4 of type ‘Linux filesystem’ and of size 223.3 GiB.
/dev/sda5: Done.New situation:
Disklabel type: gpt
Disk identifier: F2677118-36FA-49D4-A81B-3CEE6F2DBE6CDevice Start End Sectors Size Type
/dev/sda1 2048 6143 4096 2M BIOS boot
/dev/sda2 6144 255999 249856 122M EFI System
/dev/sda3 256000 20000767 19744768 9.4G Linux filesystem
/dev/sda4 20000768 488280063 468279296 223.3G Linux filesystemThe partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Форматируем разделы. Загрузочный раздел (/dev/sda2) в ext2 и корневой раздел (/dev/sda4) в ext4
mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4
Активируем раздел подкачки
mkswap /dev/sda3
swapon /dev/sda3
Перенос системы
В папке /mnt создадим папки boot и root. Они станут точками монтирования для новосозданных разделов. Примонтируем разделы на эти точки
cd /mnt mkdir boot root mount /dev/sda2 /mnt/boot/ mount /dev/sda4 /mnt/root/
В папке /mnt создаем файл исключений exclude. В этом файле указываем папки содержимое которых переносить не нужно
/dev/*
/mnt/*
/tmp/*
/proc/*
/sys/*
Сам перенос потребует много времени, поэтому рекомендую почистить исходную ОС от старых ядер и старого софта в distfiles. Синхронизируем разделы при помощи rsync. Важно перенести все хозяйство с сохранением прав
rsync -avR /boot/ /mnt/boot/ rsync -avR --exclude-from '/mnt/exclude' / /mnt/root/
Практически готово. Мапим ресурсы текущей системы на новую
mount -t proc proc /mnt/root/proc/ mount --rbind /dev /mnt/root/dev/ mount --rbind /sys /mnt/root/sys/
Переходим в chroot
chroot /mnt/root /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
Мы получили как бы рабочую новую систему
Установка загрузчика
Загрузчику нужно сообщить с какого раздела начинать загрузку. Для этого отредактируем /etc/default/grub, где для параметра GRUB_CMDLINE_LINUX ищем root и указываем имя раздела /dev/sda4
GRUB_CMDLINE_LINUX="net.ifnames=0 root=/dev/sda4 rootfsENGINE=ext4"
либо его UUID, который можно узнать выполнив
blkid /dev/sda4
/dev/sda4: UUID=e51e0b66-67f7-4a00-a1e9-5a0ee0459d37 BLOCK_SIZE=4096 TYPE=ext4
GRUB_CMDLINE_LINUX="net.ifnames=0 root=UUID=e51e0b66-67f7-4a00-a1e9-5a0ee0459d37 rootfsENGINE=ext4"
Последний штрих — установка загрузчика
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
exit
reboot
И без всяких LiveCD, только средствами ОС

- Системный администратор с 2000 года
- Участник Хабр Q&A и cyberforum
- Кейсы