
Недавно я установил 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/sdb5
assigns 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
автоматизирует шаги, которые описывает принятый ответ. Меню предоставляется для того, чтобы сделать новый раздел легко находимым:
Перейдите по ссылке выше, чтобы получить копию сценария и важные моменты для рассмотрения, такие как:
rsync
используется для клонирования загрузочного раздела, а системные виртуальные каталоги корректно пропускаются./etc/fstab
целевого клона обновляется с использованием корректных UUID для загрузки./etc/grub/grub.cfg
обновлен для бесперебойной загрузки grub.