среда, 29 июля 2015 г.

Замена HDD или компьютера целиком (перенос на другой диск) Xubuntu 14.04

При выполнении простых повседневных вещей хочется избежать глупых ошибок, по этому попробую формализовать весь процесс до тупого набора простых действий.
   Итак: 


Берем новый комп и подключаем к нему диск со старого компа (который нужно переписать). 


Грузимся с флешки или 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

Монтируем новый /  
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

Чрутимся в новую ФС. 
chroot /mnt/new

Правим /etc/fstab.  Вместо UUID=бла-бла-бла пишем LABEL=rootfs и LABEL=homefs и LABEL=swapfs  соответственно. Если грызут сомнения в части дубляжных имен, хорошая идея на будущее rootfs20150730.  

И ставим загрузчик 
grub-install /dev/sda 
update-grub

poweroff и снимаем старый диск. Все!


Крайне полезно после загрузки с нового диска запустить 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 примерно одинаково.


Комментариев нет:

Отправить комментарий