При выполнении простых повседневных вещей хочется избежать глупых ошибок, по этому попробую формализовать весь процесс до тупого набора простых действий.
Итак:
Берем новый комп и подключаем к нему диск со старого компа (который нужно переписать).
Грузимся с флешки или CD-образа.
Разбираемся с дисками (fdisk -l /dev/sda и fdisk -l /dev/sdb нам в помощь). Будем
полагать что sda - новый, а sdb старый диск, так обычно и бывает.
Заводим иерархию (в предположении что у нас на старом диске есть / и /home)
/mnt/old/root и /mnt/old/home.
Монтируем старый диск (это избавит его от случайного повреждения, большинство системных программ предупредит о попытке что-то сделать с примонтированным диском).
mount /dev/sdb1 /mnt/old/root и mount /dev/sdb3 /mnt/old/home.
Разбиваем новый диск. Обычно первый раздел примерно 20-30Г под /, второй swap (2 объема памяти), третий - остатки под /home.
Создаем файловые системы и своп, даем им сразу приличиствующие имена.
mkfs.ext4 -L rootfs /dev/sda1
mkfs.ext4 -L homefs /dev/sda3
mkswap -L swapfs /dev/sda2
mkfs.ext4 -L homefs /dev/sda3
mkswap -L swapfs /dev/sda2
Монтируем новый /
mount /dev/sda1 /mnt/new
Копируем рутовый раздел.
cd /mnt/old/root
tar c . | ( cd /mnt/new ; tar xvf - )
Удаляем в новом разделе /media/* - это нужно, поскольку тут обычно используются расширенные атрибуты (acl) которые мы при копировании перетаскивать не стали, при работе fusefs все что нужно создастся само, если мы не удалим старые каталоги, то fusefs работать не будет (не открываются флешки).
rm -rf /mnt/new/media/*
На всякий случай ревизируем, что там скопировалось в lost+found, если что-то там есть, скорее всего, это нужно стереть и хорошо подумать откуда оно взялось...
Монтируем новый /home.
mount /dev/sda3 /mnt/new/home
И копируем содержимое.
cd /mnt/old/home
tar c . | ( cd /mnt/new/home ; tar xvf - )
Подключаем /dev, /sys и /proc к новой файловой системе.
mount -B /dev /mnt/new/dev
mount -B /proc /mnt/new/proc
mount -B /sys /mnt/new/sys
mount -B /sys /mnt/new/sys
Чрутимся в новую ФС.
chroot /mnt/new
Правим /etc/fstab. Вместо UUID=бла-бла-бла пишем LABEL=rootfs и LABEL=homefs и LABEL=swapfs соответственно. Если грызут сомнения в части дубляжных имен, хорошая идея на будущее rootfs20150730.
И ставим загрузчик
grub-install /dev/sda
update-grub
poweroff и снимаем старый диск. Все!
rsync -aHAX /mnt/old/home/ /mnt/new/home/
Крайне полезно после загрузки с нового диска запустить apt-get update и apt-get upgrade, grub пожалуется на отсутствующий старый диск и позволит выбрать новый (/dev/sda).
Дополнение от 20 сентября 2016
Копирование большого количества файлов, особенно возобновление оного после какой-либо неудачи удобно делать не tar-ом, а rsync-омrsync -aHAX /mnt/old/home/ /mnt/new/home/
Атрибуты сохраняются, в том числе расширенные. Запомнить опять же легко (на великом и могучем), если хочется наглядности - добавить буковку "v". И вот еще что - если копируем огромные объемы (от 2Тб при условии мелких файлов, а не фильмов) нужно иметь или достаточное количество оперативной памяти (8Г - хороший выбор), или подключать swap, иначе имеем шанс после 10 часов ожидания получить выпадение в ошибку, это и tar и rsync примерно одинаково.
Комментариев нет:
Отправить комментарий