如何将 Ubuntu 转移到 SSD,但保留在 HDD 上?

Joh*_*ose 7 ssd 14.04

我想将我现有的 Ubuntu Trusty (14.04.1) 系统(包括从 PPA 安装的应用程序)转移到 SSD。我想在硬盘上保留我现有的主目录)。最好的方法是什么,最好是不涉及重新安装 Ubuntu 的方法?

Liv*_*eBT 6

从实时媒体启动时,这可以分为 3 个步骤:

  1. 将操作系统数据复制到新驱动器

    在开始之前,请确保新驱动器具有正确的分区表。GPT(主要)用于 EFI,并且需要一个特殊的分区用于引导加载程序。不要忘记在 MBR 安装时将新的操作系统分区标记为可引导。

    从实时媒体使用 rsync 应该是复制文件的最实用的解决方案:

    sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将引导加载程序安装到新驱动器

    sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
    
    Run Code Online (Sandbox Code Playgroud)

    /dev/sdX 应更改为新驱动器的实际设备名称。

    如果您安装的是 EFI 而不是 MBR,则应确保以 EFI 模式启动实时媒体,运行sudo apt-get install grub-efi-amd64,在新驱动器上创建 EFI 系统分区 (ESP) 并且 ESP 已安装到/media/$mountpoint_of_new_drive/boot/efi(或使用--efi-directory选项,请查看grub-install 联机帮助页)。

  3. 更新配置

    您需要在/etc/fstabfor 中更新 UUID /。通过执行获取新操作系统分区sudo blkid /dev/sdXY的 UUID,复制不带引号的 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
    
    Run Code Online (Sandbox Code Playgroud)

    但是在替换该行之前,您可能希望通过按Ctrl+KCtrl+来制作它的副本U。当你的家仍然是旧的驱动器上,旧的UUID应该是正确的,你只需要更新的挂载点,以/home/$your_username(取代$your_username你的用户的主目录的名称)和一些选项(注重relatime,acl2末):

    # Mountpoint for home or user partition
    UUID=063a996a-0303-42b2-b719-af920fd105fa    /home/$your_username  ext4    relatime,acl     0 2
    
    Run Code Online (Sandbox Code Playgroud)

    保存有Ctrl+O和退出与Ctrl+ X

    你应该考虑移动个人home目录到一个单独的home-partition(它只是一个与用户的主目录挂载为/homefstab,你可以使用sudo rsync -av再次复制数据,看我如何才能将我的/ home目录到另一个分区,如果它已经/ 分区的一部分?),因为您必须以这种方式为每个用户创建一个新行。

    如果您在SSD 上创建了一个新的交换分区,您也必须为此更新 UUID:

    # SSD swap
    UUID=b7c315cb-cf89-463b-888a-185a1faa8250       none            swap    sw                              0       0
    
    Run Code Online (Sandbox Code Playgroud)

    此外,您需要在 中更新交换分区的 UUID,在第一次从新驱动器启动后/media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume运行sudo update-initramfs -k all -u并重新启动以使休眠再次工作。

    请记住还要为 EFI 安装更新fstab 中ESP的挂载点。

    看起来很复杂,但做起来很简单,只是详细描述起来困难而冗长。


故障排除

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
      
      Run Code Online (Sandbox Code Playgroud)
  • 安装启动,运行sudo update-grubos-prober 应该会在另一个分区上找到新安装并添加一个 GRUB 条目。

    • 启动这个新条目。
    • 您现在应该从 SSD 启动,sudo update-grub再次在此处运行以更新和修复 SSD 上的 GRUB 配置。
  • 运行efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"以将新/转移安装的引导加载程序添加为 UEFI NVRAM 的新引导选项。/dev/sdX是新硬盘的设备名,Y分区号。


归档时间:

查看次数:

9402 次

最近记录:

7 年,5 月 前