Как перенести Ubuntu на SSD, но держать дома на HDD?

7

Я хотел бы передать существующую систему Ubuntu Trusty (14.04.1) (включая установленные приложения из PPA) на SSD. Я хочу сохранить существующий домашний каталог на жестком диске). Каков наилучший метод, желательно, который не требует переустановки Ubuntu?

    
задан John Rose 20.08.2014 в 15:52
источник

1 ответ

6

При загрузке с живых медиа это можно разбить на 3 этапа:

  1. Копирование данных операционной системы на новый диск

    Прежде чем начать, сделайте так, чтобы новый диск имел правильную таблицу разделов . GPT (в основном) для EFI и требует специального раздела для загрузчика. Не забудьте отметить новый раздел операционной системы как загрузочный при установке MBR.

    Использование rsync из живых медиа должно быть наиболее практичным решением для копирования файлов:

    sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
    
  2. Установить загрузчик на новый диск

    sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
    

    /dev/sdX следует изменить на фактическое имя устройства нового диска.

    Если у вас есть установка EFI вместо MBR, вы должны убедиться, что загрузили live-носители в режиме EFI, запустили sudo apt-get install grub-efi-amd64 , создали новый системный раздел EFI (ESP) на новом диске и чтобы был установлен ESP до /media/$mountpoint_of_new_drive/boot/efi (или используйте параметр --efi-directory , посмотрите grub-install manpage ).

  3. Обновить конфигурацию

    Вам нужно обновить UUID в /etc/fstab для / . Получите UUID нового раздела операционной системы, выполнив sudo blkid /dev/sdXY , скопируйте UUID без кавычек, запустите sudo nano /media/$mountpoint_of_new_drive/etc/fstab и замените существующий UUID в строке, которая выглядит так:

    # / was on /dev/sda2 during installation
    UUID=a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc    /    ext4    errors=remount-ro    0 1
    

    Но перед заменой строки вы можете сделать ее копию, нажав Ctrl + K и Ctrl + U . Поскольку ваш дом по-прежнему находится на старом диске, старый UUID должен быть правильным, и вам просто нужно обновить точку монтирования до /home/$your_username (замените $your_username на имя домашнего каталога пользователя) и некоторые параметры (обратите внимание на relatime,acl и 2 в конце):

    # Mountpoint for home or user partition
    UUID=063a996a-0303-42b2-b719-af920fd105fa    /home/$your_username  ext4    relatime,acl     0 2
    

    Сохранить с помощью Ctrl + O и выйти с помощью Ctrl + X .

    Вам следует подумать о перемещении отдельных домашних каталогов в отдельный home -partition (это просто раздел с домашними каталогами пользователя, установленный как /home в fstab , вы можете использовать sudo rsync -av снова, чтобы скопировать данные, см. Как переместить мой / домашний каталог в другой раздел, если он уже является частью / раздела? ), так как вам придется создавать новую строку для каждого пользователя таким образом.

    Если на SSD создан новый раздел подкачки , вам также необходимо обновить UUID:

    # SSD swap
    UUID=b7c315cb-cf89-463b-888a-185a1faa8250       none            swap    sw                              0       0
    

    Кроме того, вам необходимо обновить UUID раздела подкачки в /media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume , запустить sudo update-initramfs -k all -u после загрузки с нового диска в первый раз и перезагрузить, чтобы снова работать спящий режим .

    Не забудьте также обновить точку монтирования для ESP в fstab для установки EFI.

    Выглядит сложно, но это просто сделать, просто сложно и подробно описать подробно.

Устранение неполадок

grub-install как-то не удается установить с UEFI

Совет. Вероятно, вы забыли запустить sudo apt-get install grub-efi-amd64 , когда GRUB говорит что-то о i386-pc .

  • Вы скопировали содержимое вашего корневого раздела ( / ), включая /boot , правильно?
  • Вы скопировали содержимое своего ESP? Сделайте это, если у вас нет.

    • Измените EFI/ubuntu/grub.cfg на новом ESP. Замена UUID на UUID нового корневого раздела должна быть достаточной, если не изменить соответственно часть hd0,gpt2 из этого примера. Вот как обычно выглядит содержимое файла:

      search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2
      set prefix=($root)'/boot/grub'
      configfile $prefix/grub.cfg
      
  • Загрузитесь с вашей установки old , запустите sudo update-grub , os-prober должен найти новую установку на другом разделе и добавить запись GRUB.

    • Загрузите эту новую запись.
    • Теперь вы должны загрузиться с SSD, снова запустите sudo update-grub , чтобы обновить и исправить конфигурацию GRUB на SSD.
  • Запустите efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu" , чтобы добавить загрузчик для новой / перенесенной установки в качестве новой опции загрузки в UEFI NVRAM. /dev/sdX - имя устройства нового жесткого диска, Y номер раздела.
ответ дан LiveWireBT 21.08.2014 в 00:46