故障排除

故障排除

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

答案1

从实时媒体启动时,可分为 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,你应该确保在 EFI 模式下启动了实时媒体,运行sudo apt-get install grub-efi-amd64,在新驱动器上创建了 EFI 系统分区 (ESP),并且 ESP 已安装到/media/$mountpoint_of_new_drive/boot/efi(或使用该--efi-directory选项,查看grub-install 手册页)。

  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但在替换该行之前,您可能需要按+KCtrl+复制它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退出。CtrlX

    您应该考虑将各个主目录移动到单独的home-分割(它只是一个安装了用户主目录的分区/homefstab您可以sudo rsync -av再次使用它来复制数据,请参阅如果我的 /home 目录已经是 / 分区的一部分,我该如何将其移动到另一个分区?),因为这样您必须为每个用户创建一个新行。

    如果你创建了一个新的交换分区在 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 的内容吗?如果没有,请复制。

    • 在新的 ESP 上进行编辑EFI/ubuntu/grub.cfg。将 UUID 替换为新根分区的 UUID 就足够了,如果不行的话,hd0,gpt2也请相应地更改此示例中的部分。文件内容通常如下所示:

      search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2
      set prefix=($root)'/boot/grub'
      configfile $prefix/grub.cfg
      
  • 从您的启动老的安装,运行sudo update-grub,os-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分区号。

相关内容