Переместить установку на новый диск

10

В настоящее время у меня есть один hd с этими разделами:

/dev/sdb1    /
/dev/sdb2    swap
/dev/sdb3    /home

Я подумываю о покупке ssd для моего раздела / .

Теперь мой вопрос: возможно ли переместить / преобразовать мою текущую конфигурацию в новую (два диска, / home остается)? Предварительно изнутри запущенной системы?

    
задан Chris 07.01.2011 в 13:56
источник

3 ответа

11

Я рекомендую не использовать dd . Он просто делает немой сектор по секторам, что означает, что он потерпит неудачу, если целевой раздел будет меньше, и тратит много времени на копирование свободного места, а если целевой раздел больше, дополнительное пространство будет недоступно до тех пор, пока вы не запустите resize2fs , чтобы развернуть файловую систему.

Лучше всего сделать это с живого CD, потому что, если вы копируете файлы во время их изменения, вы получите коррумпированные результаты.

Отформатируйте ssd и получите как новый раздел ssd, так и исходный корневой раздел, а затем запустите sudo cp -ax /media/old-partition/* /media/new-partition , где старые разделы и новый раздел заменяются фактическими точками монтирования. Это скопирует все файлы, сохранив права собственности, разрешения и метки времени.

Затем запустите sudo grub-install --root-directory=/media/new-partition /dev/SSD_DEVICE , заменив правильные значения для нового раздела и SSD_DEVICE. Это установит grub, сделав диск загрузочным.

Как только вы перезагрузитесь (убедитесь, что ваш биос настроен для загрузки с ssd вместо старого диска), убедитесь, что вы работаете с ssd, а не со старого диска, проверяя вывод df и / или mount , и вы должны хорошо удалять старый раздел.

О, и вы захотите отредактировать файл /etc/fstab в новом разделе после копирования и обновления UUID корневого раздела в соответствии с UUID нового раздела SSD вместо старого. Вы можете найти этот UUID, запустив sudo blkid .

Изменить: добавлено / * в копию выше, но требуется изменить, чтобы быть более 6 символов. Теперь это 101 символ!

    
ответ дан psusi 07.01.2011 в 15:18
источник
1

Эта команда:

dd if=/dev/sdb1 of=DEVICE_PATH_OF_SSD_DRIVE

должен работать для клонирования раздела / на накопителе SSD.

EDIT: это будет работать, только если ваш раздел имеет тот же размер, что и диск. Если они не одного размера, вы можете использовать Partimage :

partimage -z0 -d save /dev/sdb1 clone.partimg
partimage restore DEVICE_PATH_OF_SSD_DRIVE clone.partimg
rm clone.partimg

Предостережение этому методу состоит в том, что вам нужно достаточно места на диске для изображения, содержащего все содержимое / . Вы должны быть в порядке, если у вас есть > 10GB бесплатно. В противном случае вы можете использовать -z1 вместо -z0 для сжатия изображения. Для еще большего сжатия используйте -z2 . Кроме того, partimage не поддерживает файловую систему ext4 .

Как только вы это сделаете, вы должны установить SSD и проверить, правильно ли скопированы ваши данные:

$ mkdir /tmp/ssd
$ sudo mount -t ext4 DEVICE_PATH_OF_SSD_DRIVE /tmp/ssd
$ ls /tmp/ssd
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old

Замените ext4 файловой системой, которую вы использовали для / .

Вам, вероятно, потребуется установить загрузчик GRUB на этом диске:

sudo grub-install DEVICE_PATH_OF_SSD_DRIVE

Затем вам нужно будет отредактировать файл /etc/fstab , чтобы заменить /dev/sdb1 на путь устройства вашего SSD-диска в записи, которая монтируется в / . ( sudo $EDITOR /etc/fstab )

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

    
ответ дан dv3500ea 07.01.2011 в 14:24
0

Сначала прочитайте, как перенести, Есть ли простой способ переноса ОС с одного жесткого диска на другой? .

Загрузите с вашего SSD и добавьте следующую строку в /etc/fstab (это только привязка):

/media/slowhd/home /home none rw,bind 0 0

Начните mount -a , чтобы сделать изменения активными.

Совет . Не используйте mount /dev/yourhd /home , потому что вы теряете гибкость для перемещения дополнительных каталогов на ваш старый hd.

Более технические решения заключались бы в использовании LVM (менеджер логических томов) .

    
ответ дан Raphael Bossek 07.01.2011 в 22:35