Клонировать внутренний HDD на новый SSD

Клонировать внутренний HDD на новый SSD

Недавно я установил SSD в свою машину. Сама машина — Lenovo thinkpad W520, и раньше у нее был внутренний HDD. Я переместил внутренний HDD в отсек расширения (заменив CD-ROM), а новый SSD вставил во внутренний отсек.

Проблема в том, что у меня конфигурация Ubuntu ТОЧНО такая, как я хочу - изначально я потратил много часов на ее настройку, чтобы она стала такой, какая она есть сейчас. Я бы предпочел не делать этого снова. Но мне бы также хотелось получить выигрыш в загрузке, который я получу от ОС, размещенной на SSD.

Итак, я хочу клонировать раздел Ubuntu на SSD. Проблема в том, что стандартный HDD значительно больше SSD. И на нем есть раздел Windows, который мне не нужен на SSD (я никогда не использую Windows, так что если он загружается с другого жесткого диска, это нормально). Структура моих жестких дисков следующая:

/dev/sda (SSD): Модель: ATA M4-CT256M4SSD2 (scsi) Диск /dev/sda: 256 ГБ Размер сектора (логический/физический): 512 Б/512 Б Таблица разделов: msdos

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  147GB  147GB  primary  ext4         boot

/dev/sdb (HDD): Модель: ATA ST9500420AS (scsi) Диск /dev/sdb: 500 ГБ Размер сектора (логический/физический): 512 Б/512 Б Таблица разделов: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1259MB  1258MB  primary   ntfs            boot
 2      1259MB  269GB   268GB   primary   ntfs
 4      269GB   483GB   214GB   extended
 5      269GB   416GB   147GB   logical   ext4
 7      416GB   475GB   58.9GB  logical   linux-swap(v1)
 6      475GB   483GB   8470MB  logical
 3      483GB   500GB   16.8GB  primary   ntfs

Что я уже попробовал:

1) Измените размеры разделов /dev/sdb5 и /dev/sda1, чтобы они были одинаковыми. 2) Загрузите Ubuntu 11.04 (с /dev/sdb5) и выполните dd if=/dev/sdb5 of=/dev/sda1 (конечно, это вызывает проблемы с загрузкой, поэтому мне пришлось переустановить grub. Я могу заставить его загрузиться, но тогда у меня возникают проблемы с initrd, который не находит некоторые файлы... вероятно, он не может загрузить некоторые разделы, я думаю).

Теперь я думаю, что эти два шага — неправильный подход, потому что он клонирует /dev/sdb5 ТОЧНО — включая ссылки в fstab, которые указывают на неправильный жесткий диск. Я не уверен, как именно это исправить. Я мог бы установить Ubuntu 11.04 на SSD, а затем попытаться скопировать все свои конфигурации, но я обеспокоен тем, что я что-то потеряю или что я собираюсь перезаписать что-то вроде fstab, которое указывает на исходный жесткий диск.

Обратите внимание, что в настоящее время я все еще могу загружаться с жесткого диска, поэтому мне не обязательно разбираться с этим прямо сейчас, но я хочу, чтобы все было именно так, как есть сейчас, чтобы я мог поддерживать свой текущий уровень производительности (это рабочий ноутбук).

Какие у меня есть предложения, как мне преодолеть эту трудность?

Заранее спасибо!

решение1

Существует несколько способов перенести старую систему на новый диск, но вы на самом деле спрашивали не об этом, а о том, как клонировать систему.

Я бы просто использовал gparted, сам, с live CD, чтобы ни один раздел не был смонтирован. Вы можете сжать исходный раздел до нужного вам размера на SSD, а затем скопировать и вставить раздел на новый диск. Если я правильно помню, это повторно использует тот же UUID, но вы можете изменить его на одном или другом разделе впоследствии. Команда для этого — sudo tune2fs -U random /dev/sdb5assigns UUID for sdb5.

Если вы не хотите менять старую систему, и хотите оставить ее смонтированной на некоторое время, вы можете изменить UUID для раздела SSD и отредактировать fstab. На самом деле это совсем несложно, и вам стоит об этом узнать. Это довольно очевидно для человека с теми знаниями, которые у вас уже есть. После того, как вы назначите новый UUID, вы сможете увидеть их все с помощью этой команды: sudo blkid -c /dev/null- параметр -c указывает файл кэша, а /dev/null означает не использовать кэш, поэтому вы всегда сразу получаете любые изменения. Я всегда использую эту форму и не вижу никаких недостатков, если у вас нетмногоперегородок.

Получив UUID, вы можете скопировать его и вставить поверх старого в /etc/fstab, используя gedit или любой другой текстовый редактор, который вам нравится.

Лично я, однако, вместо того, чтобы тратить время на изменение размера раздела, просто скопировал бы старую установку на новый диск. Если вы не знаете, как установить GRUB в mbr, вы можете сначала установить базовую Ubuntu, затем сделать резервную копию /etc/fstab, скопировать старую установку поверх нее, а затем скопировать fstab из новой установки, чтобы в ней были только правильные записи.

решение2

Загрузитесь с livecd, смонтируйте оба диска, затем просто скопируйте файлы с помощью sudo cp -ax /media/source /media/dest. Отредактируйте /etc/fstab в месте назначения, чтобы он указывал на правильный UUID (найдите с помощью blkid), и переустановите grub.

решение3

Я бы рекомендовал избегать использования, dd if=/dev/sdb5 of=/dev/sda1если ваша система работает сама из /dev/sdb5себя (и, предположительно, не смонтирована в режиме только для чтения).

Другой способ копирования разделов — загрузиться с Live CD (или USB) и запустить GParted. Вы можете использовать Ctrl+C/Ctrl+V для копирования разделов с одного диска на другой.

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

sudo mount /dev/sda1 /mnt

Затем отредактируйте /mnt/etc/fstab, чтобы указать правильные местоположения.

решение4

Скрипт bashclone-ubuntu.shавтоматизирует шаги, которые описывает принятый ответ. Меню предоставляется для того, чтобы сделать новый раздел легко находимым:

клон-ubuntu.png

Перейдите по ссылке выше, чтобы получить копию сценария и важные моменты для рассмотрения, такие как:

  • rsyncиспользуется для клонирования загрузочного раздела, а системные виртуальные каталоги корректно пропускаются.
  • /etc/fstabцелевого клона обновляется с использованием корректных UUID для загрузки.
  • /etc/grub/grub.cfgобновлен для бесперебойной загрузки grub.

Связанный контент